UNPKG

@linzjs/step-ag-grid

Version:

[![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release) > Reusable [ag-grid](https://www.ag-grid.com/) component for LINZ / Toitū te whenua.

19 lines (14 loc) 705 B
import { useState } from 'react'; import { ControlledMenuProps, FocusPosition, MenuStateOptions } from '../types'; import { useMenuState } from './useMenuState'; export const useMenuStateAndFocus = ( options: MenuStateOptions, ): [any, (open?: boolean) => void, (position?: FocusPosition, alwaysUpdate?: boolean) => void] => { const [menuProps, toggleMenu] = useMenuState(options); const [menuItemFocus, setMenuItemFocus] = useState<ControlledMenuProps['menuItemFocus']>(); const openMenu = (position?: FocusPosition, alwaysUpdate?: boolean) => { setMenuItemFocus({ position, alwaysUpdate }); toggleMenu(true); }; return [{ menuItemFocus, ...menuProps }, toggleMenu, openMenu]; };