UNPKG

@base-ui-components/react

Version:

Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.

28 lines (27 loc) 816 B
'use client'; import * as React from 'react'; import { mergeReactProps } from '../../utils/mergeReactProps.js'; import { useBaseUiId } from '../../utils/useBaseUiId.js'; import { useEnhancedEffect } from '../../utils/useEnhancedEffect.js'; import { useFieldsetRootContext } from '../root/FieldsetRootContext.js'; export function useFieldsetLegend(params) { const { id: idProp } = params; const { setLegendId } = useFieldsetRootContext(); const id = useBaseUiId(idProp); useEnhancedEffect(() => { setLegendId(id); return () => { setLegendId(undefined); }; }, [setLegendId, id]); const getLegendProps = React.useCallback((externalProps = {}) => mergeReactProps(externalProps, { id }), [id]); return React.useMemo(() => ({ getLegendProps }), [getLegendProps]); }