| 'use client' |
|
|
| import { createContext, useContext } from 'use-context-selector' |
| import { useEventEmitter } from 'ahooks' |
| import type { EventEmitter } from 'ahooks/lib/useEventEmitter' |
|
|
| const EventEmitterContext = createContext<{ eventEmitter: EventEmitter<string> | null }>({ |
| eventEmitter: null, |
| }) |
|
|
| export const useEventEmitterContextContext = () => useContext(EventEmitterContext) |
|
|
| type EventEmitterContextProviderProps = { |
| children: React.ReactNode |
| } |
| export const EventEmitterContextProvider = ({ |
| children, |
| }: EventEmitterContextProviderProps) => { |
| const eventEmitter = useEventEmitter<string>() |
|
|
| return ( |
| <EventEmitterContext.Provider value={{ eventEmitter }}> |
| {children} |
| </EventEmitterContext.Provider> |
| ) |
| } |
|
|
| export default EventEmitterContext |
|
|