Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 | 1x 15x | import React from 'react'; import { ActionType } from '@uniquegood/realworld-web-interface/lib/models/game/Action'; import { Expression, ValuableExpressionType } from '@uniquegood/realworld-web-interface/lib/models/game/Expression'; interface ParameterMap { [key: string]: Partial<{ [key in ActionType]: Record<string, Expression<ValuableExpressionType>>; }>; } const GameParameterContext = React.createContext<{ parameterMapRef: React.MutableRefObject<ParameterMap>; resetParameterMap: (key: string) => unknown; }>({ parameterMapRef: { current: {} }, resetParameterMap: () => { // mock } }); interface GameParameterContextProps { children: JSX.Element | JSX.Element[]; } export const useGameParameterContext = () => React.useContext(GameParameterContext); function GameParameterProvider({ children }: GameParameterContextProps): JSX.Element { const parameterMapRef = React.useRef<ParameterMap>({}); const resetParameterMap = React.useCallback((key: string) => { parameterMapRef.current[key] = {}; }, []); const value = React.useMemo( () => ({ parameterMapRef, resetParameterMap }), [resetParameterMap] ); return <GameParameterContext.Provider value={value}>{children}</GameParameterContext.Provider>; } export { GameParameterContext, GameParameterProvider }; |