mirror of
https://github.com/langgenius/dify.git
synced 2026-05-04 09:28:04 +08:00
- Updated the function in to safely handle potential undefined values in . - Modified the hook to correctly type the event emitter, enhancing type safety and clarity. - Adjusted the to support a new type for better event handling.
41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
'use client'
|
|
|
|
import type { EventEmitter } from 'ahooks/lib/useEventEmitter'
|
|
import { useEventEmitter } from 'ahooks'
|
|
import { createContext, useContext } from 'use-context-selector'
|
|
|
|
/**
|
|
* Typed event object emitted via the shared EventEmitter.
|
|
* Covers workflow updates, prompt-editor commands, DSL export checks, etc.
|
|
*/
|
|
export type EventEmitterMessage = {
|
|
type: string
|
|
payload?: unknown
|
|
instanceId?: string
|
|
}
|
|
|
|
export type EventEmitterValue = string | EventEmitterMessage
|
|
|
|
const EventEmitterContext = createContext<{ eventEmitter: EventEmitter<EventEmitterValue> | null }>({
|
|
eventEmitter: null,
|
|
})
|
|
|
|
export const useEventEmitterContextContext = () => useContext(EventEmitterContext)
|
|
|
|
type EventEmitterContextProviderProps = {
|
|
children: React.ReactNode
|
|
}
|
|
export const EventEmitterContextProvider = ({
|
|
children,
|
|
}: EventEmitterContextProviderProps) => {
|
|
const eventEmitter = useEventEmitter<EventEmitterValue>()
|
|
|
|
return (
|
|
<EventEmitterContext.Provider value={{ eventEmitter }}>
|
|
{children}
|
|
</EventEmitterContext.Provider>
|
|
)
|
|
}
|
|
|
|
export default EventEmitterContext
|