Fix SSE for workflow show page (#17582)

- Add SSE to workflow show page. Listens at workflow versions
- Add a tool for creating trigger
- Ensure step id is not used in params
- Make AI adding step linked to the last node by default



https://github.com/user-attachments/assets/41ee1835-9716-450e-82e8-54e1b63bd1ef
This commit is contained in:
Thomas Trompette
2026-01-30 18:22:07 +01:00
committed by GitHub
parent 15b053de46
commit 1fea3f8228
11 changed files with 173 additions and 14 deletions
@@ -2,11 +2,17 @@ import { useTargetRecord } from '@/ui/layout/contexts/useTargetRecord';
import { getWorkflowVisualizerComponentInstanceId } from '@/workflow/utils/getWorkflowVisualizerComponentInstanceId';
import { WorkflowDiagramCanvasEditable } from '@/workflow/workflow-diagram/components/WorkflowDiagramCanvasEditable';
import { WorkflowDiagramEffect } from '@/workflow/workflow-diagram/components/WorkflowDiagramEffect';
import { WorkflowSSESubscribeEffect } from '@/workflow/workflow-diagram/components/WorkflowSSESubscribeEffect';
import { WorkflowVisualizerEffect } from '@/workflow/workflow-diagram/components/WorkflowVisualizerEffect';
import { WorkflowVisualizerComponentInstanceContext } from '@/workflow/workflow-diagram/states/contexts/WorkflowVisualizerComponentInstanceContext';
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
import { FeatureFlagKey } from '~/generated/graphql';
export const WorkflowCard = () => {
const targetRecord = useTargetRecord();
const isSseDbEventsEnabled = useIsFeatureEnabled(
FeatureFlagKey.IS_SSE_DB_EVENTS_ENABLED,
);
return (
<WorkflowVisualizerComponentInstanceContext.Provider
@@ -17,6 +23,9 @@ export const WorkflowCard = () => {
}}
>
<WorkflowVisualizerEffect workflowId={targetRecord.id} />
{isSseDbEventsEnabled && (
<WorkflowSSESubscribeEffect workflowId={targetRecord.id} />
)}
<WorkflowDiagramEffect />
<WorkflowDiagramCanvasEditable />
</WorkflowVisualizerComponentInstanceContext.Provider>
@@ -0,0 +1,24 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useListenToObjectRecordEventsForQuery } from '@/sse-db-event/hooks/useListenToObjectRecordEventsForQuery';
export const WorkflowSSESubscribeEffect = ({
workflowId,
}: {
workflowId: string;
}) => {
const queryId = `workflow-versions-for-workflow-${workflowId}`;
useListenToObjectRecordEventsForQuery({
queryId,
operationSignature: {
objectNameSingular: CoreObjectNameSingular.WorkflowVersion,
variables: {
filter: {
workflowId: { eq: workflowId },
},
},
},
});
return null;
};