UNPKG

@ark-ui/react

Version:

A collection of unstyled, accessible UI components for React, utilizing state machines for seamless interaction.

30 lines (27 loc) 924 B
'use client'; import * as radio from '@zag-js/radio-group'; import { useMachine, normalizeProps } from '@zag-js/react'; import { useId } from 'react'; import { useEnvironmentContext } from '../../providers/environment/use-environment-context.js'; import { useLocaleContext } from '../../providers/locale/use-locale-context.js'; import { useFieldsetContext } from '../fieldset/use-fieldset-context.js'; const useRadioGroup = (props) => { const fieldset = useFieldsetContext(); const id = useId(); const { getRootNode } = useEnvironmentContext(); const { dir } = useLocaleContext(); const machineProps = { id, ids: { label: fieldset?.ids?.legend }, dir, disabled: fieldset?.disabled, invalid: fieldset?.invalid, getRootNode, ...props }; const service = useMachine(radio.machine, machineProps); return radio.connect(service, normalizeProps); }; export { useRadioGroup };