-
Notifications
You must be signed in to change notification settings - Fork 678
Open
Description
Is your feature request related to a problem? Please describe.
At the moment, if I would try to use Box with a as='svg' viewBox='0 0 24 24' property, typescript will complain about the fact that viewBox is not a Box property, but that shouldn't be the case, as it is a property of svg. Plus, they should also allow passing and accepting the correct ref property.
The same goes for other components, especially Flex and Text.
I did my own local override implementation of the types taking inspiration from this article, but would be great if this would come directly from theme-ui.
import React from 'react';
import { Box as ThemeUIBox, BoxProps as ThemeUIBoxProps } from 'theme-ui';
import {
PolymorphicComponentPropsWithRef,
PolymorphicRef,
} from '../../../util/types';
export type BoxProps<C extends React.ElementType = 'div'> =
PolymorphicComponentPropsWithRef<C, ThemeUIBoxProps>;
type BoxComponent = <C extends React.ElementType = 'div'>(
props: BoxProps<C>
) => React.ReactElement | null;
export const Box: BoxComponent = React.forwardRef(
<C extends React.ElementType = 'div'>(
props: BoxProps<C>,
ref?: PolymorphicRef<C>
) => <ThemeUIBox ref={ref} {...props} />
);
Thank you
