import { createContext, useContext, useContextSelector } from 'use-context-selector' import { useMitt } from '@/hooks/use-mitt' import { noop } from 'lodash-es' type ContextValueType = ReturnType export const MittContext = createContext({ emit: noop, useSubscribe: noop, }) export const MittProvider = ({ children }: { children: React.ReactNode }) => { const mitt = useMitt() return ( {children} ) } export const useMittContext = () => { return useContext(MittContext) } export function useMittContextSelector(selector: (value: ContextValueType) => T): T { return useContextSelector(MittContext, selector) }