import { createContext, useContext } from 'react'; import * as React from 'react'; import { Platform } from 'react-native'; export type PresentMenuParam = { elements: React.ReactNode; x: number; y: number; }; export const OVERFLOW_TOP = 15; const warn = () => { // the noop value will be replaced by HeaderButtonsProvider rendered in app root if (process.env.NODE_ENV !== 'production') { const message = Platform.select({ android: ` - which is the default handler on android - but you forgot to wrap your root component in . Import it like this: "import {HeaderButtonsProvider} from 'react-navigation-header-buttons/HeaderButtonsProvider'.`, ios: `but you forgot to wrap your root component in . Import it like this: "import {HeaderButtonsProviderDropdownMenu} from 'react-navigation-header-buttons/HeaderButtonsProviderDropdownMenu'".`, default: `but you forgot to wrap your root component in . Import it like this: "import {HeaderButtonsProvider} from 'react-navigation-header-buttons/HeaderButtonsProvider'.`, }); console.warn( 'It seems like you tried to open / close the overflow menu using the overflowMenuPressHandlerDropdownMenu, ' + message + '\nPlease check the installation instructions in the react-navigation-header-buttons readme :)' ); } }; export type OverflowMenuContextType = { presentMenu: (params?: PresentMenuParam) => void; closeMenu: () => void; }; export const OverflowMenuContext = createContext({ presentMenu: warn, closeMenu: warn, }); export const useOverflowMenu = () => useContext(OverflowMenuContext);