@gechiui/components
Version:
UI components for GeChiUI.
52 lines (44 loc) • 1.15 kB
text/typescript
/**
* GeChiUI dependencies
*/
import { useMemo } from '@gechiui/element';
/**
* Internal dependencies
*/
import * as styles from '../styles';
import { useToolsPanelContext } from '../context';
import { useContextSystem, GeChiUIComponentProps } from '../../ui/context';
import { useCx } from '../../utils/hooks/use-cx';
import type { ToolsPanelHeaderProps } from '../types';
export function useToolsPanelHeader(
props: GeChiUIComponentProps< ToolsPanelHeaderProps, 'h2' >
) {
const { className, ...otherProps } = useContextSystem(
props,
'ToolsPanelHeader'
);
const cx = useCx();
const classes = useMemo( () => {
return cx( styles.ToolsPanelHeader, className );
}, [ className ] );
const dropdownMenuClassName = useMemo( () => {
return cx( styles.DropdownMenu );
}, [] );
const headingClassName = useMemo( () => {
return cx( styles.ToolsPanelHeading );
}, [] );
const {
menuItems,
hasMenuItems,
areAllOptionalControlsHidden,
} = useToolsPanelContext();
return {
...otherProps,
areAllOptionalControlsHidden,
dropdownMenuClassName,
hasMenuItems,
headingClassName,
menuItems,
className: classes,
};
}