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;