-
Notifications
You must be signed in to change notification settings - Fork 5
/
context.ts
46 lines (45 loc) · 1.15 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
'use client'
import { createContext } from 'react'
import {
Engine,
NGCEvaluatedNode,
NGCRuleNode,
Rules,
Situation,
} from '../../types'
type SimulationContextType = {
rules: Rules
engine: Engine
pristineEngine: Engine
safeGetRule: (rule: string) => NGCRuleNode | null
safeEvaluate: (rule: string) => NGCEvaluatedNode | null
situation: Situation
updateSituation: (situationToAdd: Situation) => Promise<void>
foldedSteps: string[]
addFoldedStep: (foldedStep: string) => void
everyRules: string[]
everyInactiveRules: string[]
everyQuestions: string[]
everyNotifications: string[]
everyMosaicChildWhoIsReallyInMosaic: string[]
categories: string[]
subcategories: Record<string, string[]>
}
export default createContext<SimulationContextType>({
rules: null,
engine: null,
pristineEngine: null,
safeGetRule: () => null,
safeEvaluate: () => null,
situation: {},
updateSituation: () => Promise.resolve(),
foldedSteps: [],
addFoldedStep: () => '',
everyRules: [],
everyInactiveRules: [],
everyQuestions: [],
everyNotifications: [],
everyMosaicChildWhoIsReallyInMosaic: [],
categories: [],
subcategories: {},
})