-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathDispatchContext.tsx
More file actions
53 lines (47 loc) · 2.17 KB
/
DispatchContext.tsx
File metadata and controls
53 lines (47 loc) · 2.17 KB
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
import { createContext, useContext } from 'react';
import type { AssignmentsActions } from '../reducer/actions/AssignmentsActions.js';
import type { CorrelationsActions } from '../reducer/actions/CorrelationsActions.js';
import type { DatabaseActions } from '../reducer/actions/DatabaseActions.js';
import type { DimensionsActions } from '../reducer/actions/DimensionsActions.js';
import type { DomainActions } from '../reducer/actions/DomainActions.js';
import type { FiltersActions } from '../reducer/actions/FiltersActions.js';
import type { InsetsActions } from '../reducer/actions/InsetActions.js';
import type { IntegralsActions } from '../reducer/actions/IntegralsActions.js';
import type { LoadAction } from '../reducer/actions/LoadAction.js';
import type { MoleculeActions } from '../reducer/actions/MoleculeActions.js';
import type { PeaksActions } from '../reducer/actions/PeaksActions.js';
import type { PreferencesActions } from '../reducer/actions/PreferencesActions.js';
import type { RangesActions } from '../reducer/actions/RangesActions.js';
import type { SpectrumActions } from '../reducer/actions/SpectraActions.js';
import type { ToolsActions } from '../reducer/actions/ToolsActions.js';
import type { ZonesActions } from '../reducer/actions/ZonesActions.js';
import type { UnitActions } from '../reducer/actions/unit_actions.ts';
import type { ActionType } from '../reducer/types/ActionType.js';
export type Action =
| ToolsActions
| SpectrumActions
| LoadAction
| IntegralsActions
| RangesActions
| DatabaseActions
| DimensionsActions
| AssignmentsActions
| DomainActions
| PreferencesActions
| PeaksActions
| MoleculeActions
| ZonesActions
| FiltersActions
| CorrelationsActions
| ActionType<'INITIALIZE_NMRIUM'>
| ActionType<'SECRET_THROW_ERROR', { randomNumber: number }>
| InsetsActions
| UnitActions;
// // eslint-disable-next-line @typescript-eslint/ban-types
// | { type: string & {}; payload?: Object };
type Dispatch = (action: Action) => void;
const dispatchContext = createContext<Dispatch>(() => null);
export const DispatchProvider = dispatchContext.Provider;
export function useDispatch(): Dispatch {
return useContext(dispatchContext);
}