mirror of
https://github.com/langgenius/dify.git
synced 2026-05-05 01:48:04 +08:00
feat: implement trigger-plugin support with real-time status sync (#25326)
This commit is contained in:
41
web/app/components/workflow/store/trigger-status.ts
Normal file
41
web/app/components/workflow/store/trigger-status.ts
Normal file
@ -0,0 +1,41 @@
|
||||
import { create } from 'zustand'
|
||||
import { subscribeWithSelector } from 'zustand/middleware'
|
||||
import type { EntryNodeStatus } from '../nodes/_base/components/entry-node-container'
|
||||
|
||||
type TriggerStatusState = {
|
||||
// Map of nodeId to trigger status
|
||||
triggerStatuses: Record<string, EntryNodeStatus>
|
||||
|
||||
// Actions
|
||||
setTriggerStatus: (nodeId: string, status: EntryNodeStatus) => void
|
||||
setTriggerStatuses: (statuses: Record<string, EntryNodeStatus>) => void
|
||||
getTriggerStatus: (nodeId: string) => EntryNodeStatus
|
||||
clearTriggerStatuses: () => void
|
||||
}
|
||||
|
||||
export const useTriggerStatusStore = create<TriggerStatusState>()(
|
||||
subscribeWithSelector((set, get) => ({
|
||||
triggerStatuses: {},
|
||||
|
||||
setTriggerStatus: (nodeId: string, status: EntryNodeStatus) => {
|
||||
set(state => ({
|
||||
triggerStatuses: {
|
||||
...state.triggerStatuses,
|
||||
[nodeId]: status,
|
||||
},
|
||||
}))
|
||||
},
|
||||
|
||||
setTriggerStatuses: (statuses: Record<string, EntryNodeStatus>) => {
|
||||
set({ triggerStatuses: statuses })
|
||||
},
|
||||
|
||||
getTriggerStatus: (nodeId: string): EntryNodeStatus => {
|
||||
return get().triggerStatuses[nodeId] || 'disabled'
|
||||
},
|
||||
|
||||
clearTriggerStatuses: () => {
|
||||
set({ triggerStatuses: {} })
|
||||
},
|
||||
})),
|
||||
)
|
||||
Reference in New Issue
Block a user