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 | 1x 15x | import { Game } from '@uniquegood/realworld-web-interface/lib/models/game'; import { Item } from '@uniquegood/realworld-web-interface/lib/models/game/Item'; import React, { useContext, createContext } from 'react'; const GameItemContext = createContext<{ getItemById: (itemId: string) => Item | undefined; }>({ getItemById: () => { // pass return undefined; } }); export const useGameItemContext = () => useContext(GameItemContext); export function GameItemProvider({ children, game }: { children: React.ReactNode; game: Game }) { const getItemById = React.useCallback( (itemId: string) => game.itemList.find((item) => item.id === itemId), [game] ); const value = React.useMemo(() => ({ getItemById }), [getItemById]); return <GameItemContext.Provider value={value}>{children}</GameItemContext.Provider>; } |