fix: fix flow viewer renderer outside of flow details and editor context

This commit is contained in:
Ruben Fiszel
2024-10-17 16:59:57 +02:00
parent 64e2334c2c
commit 59a1e67465
10 changed files with 35 additions and 9 deletions

View File

@@ -20,7 +20,7 @@
export let noSide = false
export let download = false
export let noGraph = false
export let triggerNode = false
export let stepDetail: FlowModule | string | undefined = undefined
const dispatch = createEventDispatcher()
@@ -33,6 +33,7 @@
class:overflow-auto={overflowAuto}
>
<FlowGraphV2
{triggerNode}
path={flow?.path}
{download}
minHeight={400}

View File

@@ -945,6 +945,7 @@
</div>
<FlowGraphV2
triggerNode={true}
download={!hideDownloadInGraph}
minHeight={wrapperHeight}
success={jobId != undefined && isSuccess(job?.['success'])}

View File

@@ -1,15 +1,33 @@
<script lang="ts">
import Skeleton from '$lib/components/common/skeleton/Skeleton.svelte'
import FlowGraphViewer from '$lib/components/FlowGraphViewer.svelte'
import { FlowService, type Flow } from '$lib/gen'
import type { ScheduleTrigger, TriggerContext } from '$lib/components/triggers'
import { FlowService, type Flow, type TriggersCount } from '$lib/gen'
import { workspaceStore } from '$lib/stores'
import { setContext } from 'svelte'
import { writable } from 'svelte/store'
export let path: string
export let noSide = false
let flow: Flow | undefined = undefined
const selectedTriggerStore = writable<'webhooks' | 'emails' | 'schedules' | 'cli' | 'routes'>(
'webhooks'
)
const primaryScheduleStore = writable<ScheduleTrigger | undefined | false>(undefined)
const triggersCount = writable<TriggersCount | undefined>(undefined)
setContext<TriggerContext>('TriggerContext', {
primarySchedule: primaryScheduleStore,
selectedTrigger: selectedTriggerStore,
triggersCount: triggersCount
})
async function loadFlow(path: string) {
flow = await FlowService.getFlowByPath({ workspace: $workspaceStore!, path })
triggersCount.set(
await FlowService.getTriggersCountOfFlow({ workspace: $workspaceStore!, path })
)
}
$: path && loadFlow(path)
@@ -17,7 +35,7 @@
<div class="flex flex-col flex-1 h-full overflow-auto">
{#if flow}
<FlowGraphViewer {noSide} {flow} />
<FlowGraphViewer triggerNode={true} {noSide} {flow} />
{:else}
<Skeleton layout={[[40]]} />
{/if}

View File

@@ -14,7 +14,7 @@
<Drawer bind:this={drawer} size="800px">
<DrawerContent title="OpenFlow" on:close={() => drawer?.toggleDrawer()}>
{#if $flowStore}
<FlowViewer flow={cleanInputs($flowStore)} tab="raw" />
<FlowViewer triggerNode={false} flow={cleanInputs($flowStore)} tab="raw" />
{/if}
</DrawerContent>
</Drawer>

View File

@@ -320,6 +320,7 @@
<div class="z-10 flex-auto grow bg-surface-secondary" bind:clientHeight={minHeight}>
<FlowGraphV2
triggerNode={true}
path={$pathStore}
{newFlow}
{disableAi}

View File

@@ -61,6 +61,7 @@
export let flowInputsStore: Writable<FlowInput | undefined> = writable<FlowInput | undefined>(
undefined
)
export let triggerNode = false
let useDataflow: Writable<boolean | undefined> = writable<boolean | undefined>(false)
@@ -178,9 +179,11 @@
$useDataflow,
$selectedId,
moving,
{
path
}
triggerNode
? {
path
}
: undefined
)
const nodes = writable<Node[]>([])

View File

@@ -155,7 +155,7 @@ export default function graphBuilder(
}
}
if (extra.path) {
if (extra.path && triggerProps != undefined) {
const triggerNode: Node = {
id: 'Trigger',
position: { x: -1, y: -1 },

View File

@@ -473,6 +473,7 @@
</div>
<div class="mt-8">
<FlowGraphViewer
triggerNode={true}
download
{flow}
overflowAuto

View File

@@ -287,6 +287,7 @@
<h2 class="mt-10">Flow details</h2>
<div class="border border-gray-700">
<FlowGraphV2
triggerNode={false}
modules={job.raw_flow?.modules}
failureModule={job.raw_flow?.failure_module}
preprocessorModule={job.raw_flow?.preprocessor_module}

View File

@@ -8,7 +8,7 @@
: { modules: [], failureModule: undefined, preprocessorModule: undefined }
</script>
<FlowGraphV2 {modules} {failureModule} {preprocessorModule} />
<FlowGraphV2 triggerNode={false} {modules} {failureModule} {preprocessorModule} />
<a
download="flow.json"
href={'data:text/json;charset=utf-8,' +