-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontext.ts
77 lines (66 loc) · 1.58 KB
/
context.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import { createContext } from 'use-context-selector';
export const TOPBAR_HEIGHT = 64;
export const TOPBAR_DROPDOWN_WIDTH = 336;
export const TOPBAR_MENU_MIN_WIDTH_IN_PX = 260;
export const MENU_WIDTH = 248;
export interface LayoutContextType {
layout: {
mode: 'light' | 'dark';
toggle(): void;
};
topbar: {
exists: boolean;
centerPortal: HTMLDivElement | null;
register(): () => void;
registerCenterPortal(container: HTMLDivElement): void;
};
sidebar: {
exists: boolean;
opened: boolean;
register(): () => void;
toogleOpened(): void;
trueOpened(): void;
falseOpened(): void;
};
userMenu: {
exists: boolean;
opened: boolean;
containerPortal: HTMLDivElement | null;
register(): () => void;
registerContainerPortal(container: HTMLDivElement): void;
toogleOpened(): void;
trueOpened(): void;
falseOpened(): void;
};
}
const LayoutContext = createContext<LayoutContextType>({
layout: {
mode: 'light',
toggle: () => null
},
topbar: {
exists: false,
centerPortal: null,
register: () => () => null,
registerCenterPortal: () => null
},
sidebar: {
exists: false,
opened: false,
register: () => () => null,
toogleOpened: () => null,
trueOpened: () => null,
falseOpened: () => null
},
userMenu: {
exists: false,
opened: false,
containerPortal: null,
register: () => () => null,
registerContainerPortal: () => null,
toogleOpened: () => null,
trueOpened: () => null,
falseOpened: () => null
}
});
export default LayoutContext;