( initialState: IHookStateInitAction<S> )
| 3 | import { IHookStateInitAction, IHookStateSetAction, resolveHookState } from './misc/hookState'; |
| 4 | |
| 5 | export default function useGetSet<S>( |
| 6 | initialState: IHookStateInitAction<S> |
| 7 | ): [get: () => S, set: Dispatch<IHookStateSetAction<S>>] { |
| 8 | const state = useRef(resolveHookState(initialState)); |
| 9 | const update = useUpdate(); |
| 10 | |
| 11 | return useMemo( |
| 12 | () => [ |
| 13 | () => state.current as S, |
| 14 | (newState: IHookStateSetAction<S>) => { |
| 15 | state.current = resolveHookState(newState, state.current); |
| 16 | update(); |
| 17 | }, |
| 18 | ], |
| 19 | [] |
| 20 | ); |
| 21 | } |
searching dependent graphs…