11import React , { ReactElement , useCallback , useEffect , useState } from 'react' ;
22import isEqual from 'react-fast-compare' ;
33import { FlatList , Pressable } from 'react-native' ;
4- import globalHook from 'use-global-hook' ;
4+ import globalHook , { Store } from 'use-global-hook' ;
55
66export interface INode {
77 _internalId : string ;
@@ -31,21 +31,31 @@ export interface IState {
3131 opened : boolean ;
3232}
3333
34+ interface GlobalState {
35+ nodesState : { root : boolean } ;
36+ }
37+
38+ interface NodeActions {
39+ setOpenedNode : ( store : any , { internalId, opened } : any ) => void ;
40+ }
41+
3442const actions = {
35- setOpenedNode : ( store : any , { internalId, opened } : any ) => {
43+ setOpenedNode : (
44+ store : Store < GlobalState , NodeActions > ,
45+ { internalId, opened } : any ,
46+ ) => {
3647 store . setState ( {
3748 nodesState : { ...store . state . nodesState , [ internalId ] : opened } ,
3849 } ) ;
3950 } ,
4051} ;
4152
42- const useGlobal = globalHook (
43- React ,
44- {
45- nodesState : { root : true } ,
46- } ,
47- actions ,
48- ) ;
53+ const initialState : GlobalState = {
54+ nodesState : { root : true } ,
55+ } ;
56+
57+ // @ts -ignore
58+ const useGlobal = globalHook < GlobalState , NodeActions > ( initialState , actions ) ;
4959
5060const NodeView = React . memo (
5161 ( {
@@ -62,8 +72,8 @@ const NodeView = React.memo(
6272 const [ _node , setNode ] : [ INode , any ] = useState ( {
6373 ...node ,
6474 opened :
65- keepOpenedState && globalState . nodesState [ node . _internalId ]
66- ? ! ! globalState . nodesState [ node . _internalId ]
75+ keepOpenedState && globalState ? .nodesState [ node . _internalId ]
76+ ? ! ! globalState ? .nodesState [ node . _internalId ]
6777 : ! ! node . opened ,
6878 } ) ;
6979
@@ -116,7 +126,7 @@ const NodeView = React.memo(
116126 const nodeChildren : [ ] = _node [ nodeChildrenName ] ;
117127
118128 const isNodeOpened =
119- ( keepOpenedState && globalState . nodesState [ node . _internalId ] ) ||
129+ ( keepOpenedState && globalState ? .nodesState [ node . _internalId ] ) ||
120130 _node . opened ;
121131
122132 return (
0 commit comments