@postenbring/hedwig-react
Version:
React components for [Hedwig Design System](https://github.com/bring/hedwig-design-system).
1 lines • 2.38 kB
Source Map (JSON)
{"version":3,"sources":["../src/form/radio-button/radio-group.tsx"],"sourcesContent":["import {\n type ChangeEventHandler,\n createContext,\n forwardRef,\n type ReactNode,\n useContext,\n} from \"react\";\nimport { Fieldset, type FieldsetProps } from \"../fieldset\";\nimport type { RadioButtonProps } from \"./radio-button\";\n\nexport interface RadioGroupProps extends Omit<FieldsetProps, \"onChange\"> {\n children: ReactNode;\n /** Will be passed to all Radio buttons within the radio group */\n name?: RadioButtonProps[\"name\"];\n /** If you want the group to be controlled, you can pass the selected value here */\n value?: RadioButtonProps[\"value\"];\n /**\n * Error message is passed to the internal Fieldset, and will also give contained Radio buttons\n * error styling and aria to indicate invalid state.\n */\n errorMessage?: ReactNode;\n /** Will be passed to all Radio buttons within the radio group */\n onChange?: ChangeEventHandler<HTMLInputElement> | undefined;\n}\n\ntype RadioGroupContextProps = {\n hasError: boolean;\n} & Pick<RadioGroupProps, \"name\" | \"value\" | \"onChange\">;\n\nconst RadioGroupContext = createContext<RadioGroupContextProps>({\n name: undefined,\n hasError: false,\n onChange: () => {\n return undefined;\n },\n});\n\nexport const useRadioGroupContext = () => useContext(RadioGroupContext);\n\nexport const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(function RadioGroup(\n { name, value, errorMessage, onChange, children, ...rest },\n ref,\n) {\n return (\n <RadioGroupContext.Provider value={{ name, value, hasError: Boolean(errorMessage), onChange }}>\n <Fieldset errorMessage={errorMessage} {...rest} ref={ref}>\n {children}\n </Fieldset>\n </RadioGroupContext.Provider>\n );\n});\n\nRadioGroup.displayName = \"RadioGroup\";\n"],"mappings":";;;;;;;;;;AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AAuCD;AAhBN,IAAM,oBAAoB,cAAsC;AAAA,EAC9D,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU,MAAM;AACd,WAAO;AAAA,EACT;AACF,CAAC;AAEM,IAAM,uBAAuB,MAAM,WAAW,iBAAiB;AAE/D,IAAM,aAAa,WAAiD,SAASA,YAClF,IACA,KACA;AAFA,eAAE,QAAM,OAAO,cAAc,UAAU,SAxCzC,IAwCE,IAAoD,iBAApD,IAAoD,CAAlD,QAAM,SAAO,gBAAc,YAAU;AAGvC,SACE,oBAAC,kBAAkB,UAAlB,EAA2B,OAAO,EAAE,MAAM,OAAO,UAAU,QAAQ,YAAY,GAAG,SAAS,GAC1F,8BAAC,yCAAS,gBAAgC,OAAzC,EAA+C,KAC7C,WACH,GACF;AAEJ,CAAC;AAED,WAAW,cAAc;","names":["RadioGroup"]}