'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