UNPKG

@gluestack-ui/radio

Version:

A universal headless Radio component for React Native, Next.js & React

46 lines (43 loc) 1.19 kB
import { Radio as RadioMain } from './Radio'; import { RadioIcon } from './RadioIcon'; import { RadioIndicator } from './RadioIndicator'; import { RadioLabel } from './RadioLabel'; import { RadioGroup } from './RadioGroup'; import type { IRadioComponentType } from './types'; export const createRadio = < RadioProps, GroupProps, IconProps, IndicatorProps, LabelProps >({ Root, Group, Icon, Indicator, Label, }: { Root: React.ComponentType<RadioProps>; Group: React.ComponentType<GroupProps>; Icon: React.ComponentType<IconProps>; Indicator: React.ComponentType<IndicatorProps>; Label: React.ComponentType<LabelProps>; }) => { const Radio = RadioMain(Root) as any; Radio.Group = RadioGroup(Group); Radio.Label = RadioLabel(Label); Radio.Icon = RadioIcon(Icon); Radio.Indicator = RadioIndicator(Indicator); Radio.displayName = 'Radio'; Radio.Group.displayName = 'Radio.Group'; Radio.Label.displayName = 'Radio.Label'; Radio.Icon.displayName = 'Radio.Icon'; Radio.Indicator.displayName = 'Radio.Indicator'; return Radio as IRadioComponentType< RadioProps, GroupProps, IconProps, IndicatorProps, LabelProps >; };