Cleanup - unused files / unused exports / duplicate exports
[ProtonMail-WebClient.git] / applications / drive / src / app / components / FileBrowser / state / useItemContextMenu.tsx
blob832311cf3687251662e4ebc0412134cea92a2549
1 import type { ReactNode } from 'react';
2 import React, { createContext, useContext } from 'react';
4 import { useContextMenuControls } from '../hooks/useContextMenuControls';
6 interface Controls {
7     isOpen: boolean;
8     handleContextMenu: (e: React.MouseEvent<Element>) => void;
9     handleContextMenuTouch: (e: React.TouchEvent<Element>) => void;
10     open: () => void;
11     close: () => void;
12     position:
13         | {
14               top: number;
15               left: number;
16           }
17         | undefined;
20 const FileBrowserItemContextMenuContext = createContext<Controls | null>(null);
22 interface Props {
23     children: ReactNode;
26 export function FileBrowserItemContextMenuProvider({ children }: Props) {
27     const contextMenuControls = useContextMenuControls();
29     return (
30         <FileBrowserItemContextMenuContext.Provider value={contextMenuControls}>
31             {children}
32         </FileBrowserItemContextMenuContext.Provider>
33     );
36 export function useItemContextMenu() {
37     const state = useContext(FileBrowserItemContextMenuContext);
38     if (!state) {
39         throw new Error('Trying to use uninitialized FileBrowserItemContextMenuProvider');
40     }
41     return state;