2026-03-05 07:54:56 +00:00
|
|
|
'use client'
|
|
|
|
|
|
|
|
|
|
import type { useMitt } from '@/hooks/use-mitt'
|
2025-12-31 03:13:22 +00:00
|
|
|
import { noop } from 'es-toolkit/function'
|
2025-05-30 06:56:32 +00:00
|
|
|
import { createContext, useContext, useContextSelector } from 'use-context-selector'
|
|
|
|
|
|
|
|
|
|
type ContextValueType = ReturnType<typeof useMitt>
|
|
|
|
|
export const MittContext = createContext<ContextValueType>({
|
|
|
|
|
emit: noop,
|
|
|
|
|
useSubscribe: noop,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
export const useMittContext = () => {
|
|
|
|
|
return useContext(MittContext)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function useMittContextSelector<T>(selector: (value: ContextValueType) => T): T {
|
|
|
|
|
return useContextSelector(MittContext, selector)
|
|
|
|
|
}
|