@spark-web/utils
Version:
--- title: Utilities isExperimentalPackage: true ---
32 lines (26 loc) • 791 B
Markdown
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`.
```jsx
export const PolymorphicComponent = forwardRefWithAs<
'div',
PolymorphicComponentProps
>(({ as: Tag = 'div', ...consumerProps }, forwardedRef) => {
return (
<Tag
{...consumerProps}
ref={forwardedRef}
// Custom props go here
/>
);
});
```