"use client"; import { createContext, useContext } from "react"; export interface IMenuContext { popperRef: React.RefObject; buttonRef: React.RefObject; listElement: HTMLUListElement | null; setListElement: React.Dispatch>; menuId: string; buttonId: string; open: boolean; setOpen: (val: boolean) => void; selected: number; setSelected: React.Dispatch>; typeahead: string; afterSelect: () => void; selectFirstNonDisabled: () => void; handleKey: () => void; closeAndRestoreFocus: () => void; } const MenuContext = createContext({ popperRef: { current: null }, buttonRef: { current: null }, listElement: null as HTMLUListElement | null, setListElement: (val: HTMLUListElement) => {}, menuId: "menu-:r1:", buttonId: "menu-button-:r2:", open: false, setOpen: (val: boolean) => {}, selected: null, setSelected: (val: number) => {}, typeahead: "", afterSelect: () => {}, selectFirstNonDisabled: () => {}, handleKey: () => {}, closeAndRestoreFocus: () => {}, }); export default MenuContext; export const useMenu = () => useContext(MenuContext);