@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
JavaScript
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]);
}