import React from 'react'; import { Box, IBoxProps, Text, ITextProps, Icon, IIconProps, HStack, IStackProps, } from '../../primitives'; import { useThemeProps } from '../../../hooks'; export const StatLabel = React.memo(({ style, ...props }: ITextProps) => { let newProps = useThemeProps('Stat', props); return ( {props.children} ); }); export const StatNumber = React.memo(({ style, ...props }: ITextProps) => { let newProps = useThemeProps('Stat', props); return ( {props.children} ); }); export const StatHelpText = React.memo(({ style, ...props }: IBoxProps) => { let newProps = useThemeProps('Stat', props); return ( {props.children} ); }); type IStatArrowProps = IIconProps | { type?: 'increase' | 'decrease' }; export const StatArrow = React.memo(({ type, ...props }: IStatArrowProps) => { return ( ); }); export const StatGroup = React.memo( React.forwardRef(({ style, ...props }: IBoxProps, ref: any) => { let newProps = useThemeProps('Stat', props); return ( ); }) ); const StatMain = React.forwardRef( ({ style, ...props }: IBoxProps, ref: any) => { return ; } ); type IStatComponentType = ((props: IBoxProps) => JSX.Element) & { Label: React.MemoExoticComponent<(props: ITextProps) => JSX.Element>; Number: React.MemoExoticComponent<(props: ITextProps) => JSX.Element>; HelpText: React.MemoExoticComponent<(props: IBoxProps) => JSX.Element>; Arrow: React.MemoExoticComponent<(props: IStatArrowProps) => JSX.Element>; Group: React.MemoExoticComponent<(props: IStackProps) => JSX.Element>; }; const StatTemp: any = StatMain; StatTemp.Label = StatLabel; StatTemp.Number = StatNumber; StatTemp.HelpText = StatHelpText; StatTemp.Arrow = StatArrow; StatTemp.Group = StatGroup; const Stat = StatTemp as IStatComponentType; export default Stat;