npm.io
5.1.0 • Published 7 months ago

@spark-web/utils

Licence
Version
5.1.0
Deps
1
Size
42 kB
Vulns
0
Weekly
0

title: Utilities isExperimentalPackage: true

— Under construction

forwardRefWithAs

A best effort attempt to provide strongly typed polymorphic components that (as the name suggests) forwards the ref onto the underlying element.

Internally this is used for our layout primitives (Box, Columns, Container, Hidden, Inline, Row and Stack), our link components (Link, ButtonLink and TextLink), our typographic components (Heading and Text) and finally VisuallyHidden.

export const PolymorphicComponent = forwardRefWithAs<
  'div',
  PolymorphicComponentProps
>(({ as: Tag = 'div', ...consumerProps }, forwardedRef) => {
  return (
    <Tag
      {...consumerProps}
      ref={forwardedRef}
      // Custom props go here
    />
  );
});