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.

25 lines 758 B
import * as React from 'react'; import { mergeReactProps } from '../../utils/mergeReactProps.js'; import { useEnhancedEffect } from '../../utils/useEnhancedEffect.js'; import { useBaseUiId } from '../../utils/useBaseUiId.js'; export function usePopoverDescription(params) { const { descriptionId, setDescriptionId } = params; const id = useBaseUiId(descriptionId); const getDescriptionProps = React.useCallback((externalProps = {}) => { return mergeReactProps(externalProps, { id }); }, [id]); useEnhancedEffect(() => { setDescriptionId(id); return () => { setDescriptionId(undefined); }; }, [setDescriptionId, id]); return React.useMemo(() => ({ getDescriptionProps }), [getDescriptionProps]); }