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 46 47 | 1x 15x | import React, { createContext } from 'react'; import { AcquireItemModal, useAcquireItemModal } from '@lib/components/ItemModal'; import { Item } from '@uniquegood/realworld-web-interface/lib/models/game/Item'; import { ItemTag } from '@uniquegood/realworld-web-interface/lib/models/game/ItemTag'; interface ItemModalRenderData { item: Item; content: string; } const AcquireItemModalContext = createContext<{ openAcquireItemModal: (nextRenderData: ItemModalRenderData) => Promise<unknown>; }>({ openAcquireItemModal: async () => { // pass } }); export const useAcquireItemModalContext = () => React.useContext(AcquireItemModalContext); export function AcquireItemModalProvider({ children, itemTag }: { children: React.ReactNode; itemTag: ItemTag; }) { const { props: aquireItemModalProps, openAcquireItemModalWithAwait: openAcquireItemModal } = useAcquireItemModal(); const value = React.useMemo(() => ({ openAcquireItemModal }), [openAcquireItemModal]); return ( <AcquireItemModalContext.Provider value={value}> {children} {aquireItemModalProps.item && aquireItemModalProps.content && ( <AcquireItemModal {...aquireItemModalProps} item={aquireItemModalProps.item} content={aquireItemModalProps.content} itemTag={itemTag} /> )} </AcquireItemModalContext.Provider> ); } |