mirror of
https://github.com/langgenius/dify.git
synced 2026-04-23 08:26:28 +08:00
Migrate 172 files from es-toolkit/compat to native es-toolkit. Migrated: - noop → es-toolkit/function - cloneDeep, omit, clone, pick → es-toolkit/object - uniq, intersection → es-toolkit/array - capitalize, camelCase, kebabCase, escape → es-toolkit/string - isEqual → es-toolkit/predicate Kept in compat (API differences): - uniqueId, isEmpty - get, merge, flow, curry, debounce - different APIs - uniqBy, groupBy, intersectionBy - property string support - flatten - undefined handling Benefits: 2-3x faster, smaller bundle Part of #30243 Fixes #30244
28 lines
748 B
TypeScript
28 lines
748 B
TypeScript
import { noop } from 'es-toolkit/function'
|
|
import { createContext, useContext, useContextSelector } from 'use-context-selector'
|
|
import { useMitt } from '@/hooks/use-mitt'
|
|
|
|
type ContextValueType = ReturnType<typeof useMitt>
|
|
export const MittContext = createContext<ContextValueType>({
|
|
emit: noop,
|
|
useSubscribe: noop,
|
|
})
|
|
|
|
export const MittProvider = ({ children }: { children: React.ReactNode }) => {
|
|
const mitt = useMitt()
|
|
|
|
return (
|
|
<MittContext.Provider value={mitt}>
|
|
{children}
|
|
</MittContext.Provider>
|
|
)
|
|
}
|
|
|
|
export const useMittContext = () => {
|
|
return useContext(MittContext)
|
|
}
|
|
|
|
export function useMittContextSelector<T>(selector: (value: ContextValueType) => T): T {
|
|
return useContextSelector(MittContext, selector)
|
|
}
|