mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
1import React from 'react'
2
3import {
4 type ContextType,
5 type ItemContextType,
6 type MenuContextType,
7} from '#/components/ContextMenu/types'
8
9export const Context = React.createContext<ContextType | null>(null)
10
11export const MenuContext = React.createContext<MenuContextType | null>(null)
12
13export const ItemContext = React.createContext<ItemContextType | null>(null)
14
15export function useContextMenuContext() {
16 const context = React.useContext(Context)
17
18 if (!context) {
19 throw new Error(
20 'useContextMenuContext must be used within a Context.Provider',
21 )
22 }
23
24 return context
25}
26
27export function useContextMenuMenuContext() {
28 const context = React.useContext(MenuContext)
29
30 if (!context) {
31 throw new Error(
32 'useContextMenuMenuContext must be used within a Context.Provider',
33 )
34 }
35
36 return context
37}
38
39export function useContextMenuItemContext() {
40 const context = React.useContext(ItemContext)
41
42 if (!context) {
43 throw new Error(
44 'useContextMenuItemContext must be used within a Context.Provider',
45 )
46 }
47
48 return context
49}