You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
The text was updated successfully, but these errors were encountered:
Just FYI, the PR addressing this should attach tsc --diagnostics.
Personally, I think it's a footgun, and its every use case could be instead built with sx prop handled by JSX pragma. TypeScript can handle your JSX pragmas, so this shouldn't be a hard sell.
Radix UI's polymorphic package was pretty good, yet they still deprecated it in favor of asChild prop.
Is your feature request related to a problem? Please describe.
At the moment, if I would try to use
Box
with aas='svg' viewBox='0 0 24 24'
property, typescript will complain about the fact thatviewBox
is not a Box property, but that shouldn't be the case, as it is a property ofsvg
. 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.
Thank you
The text was updated successfully, but these errors were encountered: