diff --git a/frontend/src/lib/components/Dev.svelte b/frontend/src/lib/components/Dev.svelte index 878df094b6..a15071d324 100644 --- a/frontend/src/lib/components/Dev.svelte +++ b/frontend/src/lib/components/Dev.svelte @@ -48,7 +48,6 @@ parseTypescriptDeps } from '$lib/relative_imports' import Tooltip from './Tooltip.svelte' - $: token = $page.url.searchParams.get('wm_token') ?? undefined $: workspace = $page.url.searchParams.get('workspace') ?? undefined $: themeDarkRaw = $page.url.searchParams.get('activeColorTheme') @@ -482,10 +481,11 @@ const testStepStore = writable>({}) const selectedIdStore = writable('settings-metadata') const selectedTriggerStore = writable('webhooks') - + const httpTriggersStore = writable(undefined) setContext('FlowEditorContext', { selectedId: selectedIdStore, selectedTrigger: selectedTriggerStore, + httpTriggers: httpTriggersStore, schedule: scheduleStore, previewArgs: previewArgsStore, scriptEditorDrawer, diff --git a/frontend/src/lib/components/FlowBuilder.svelte b/frontend/src/lib/components/FlowBuilder.svelte index 91937f2edd..194264c8a0 100644 --- a/frontend/src/lib/components/FlowBuilder.svelte +++ b/frontend/src/lib/components/FlowBuilder.svelte @@ -400,10 +400,13 @@ selectedTriggerStore.set(selectedTrigger) } + const httpTriggersStore = writable(undefined) + let insertButtonOpen = writable(false) setContext('FlowEditorContext', { selectedId: selectedIdStore, selectedTrigger: selectedTriggerStore, + httpTriggers: httpTriggersStore, schedule: scheduleStore, previewArgs: previewArgsStore, scriptEditorDrawer, diff --git a/frontend/src/lib/components/flows/content/FlowTriggers.svelte b/frontend/src/lib/components/flows/content/FlowTriggers.svelte index da910a672d..b7a30e378b 100644 --- a/frontend/src/lib/components/flows/content/FlowTriggers.svelte +++ b/frontend/src/lib/components/flows/content/FlowTriggers.svelte @@ -5,7 +5,7 @@ import EmailTriggerPanel from '$lib/components/details/EmailTriggerPanel.svelte' import RoutesPanel from '$lib/components/triggers/RoutesPanel.svelte' import RunPageSchedules from '$lib/components/RunPageSchedules.svelte' - import { HttpTriggerService, ScheduleService, type HttpTrigger, type Schedule } from '$lib/gen' + import { ScheduleService, type Schedule } from '$lib/gen' import { canWrite } from '$lib/utils' import { userStore, workspaceStore } from '$lib/stores' import FlowCard from '../common/FlowCard.svelte' @@ -15,7 +15,6 @@ export let noEditor: boolean export let newFlow = false - let triggers: (HttpTrigger & { canWrite: boolean })[] | undefined = undefined let path = '' const { pathStore, selectedTrigger } = getContext('FlowEditorContext') @@ -37,26 +36,9 @@ } } - async function loadTriggers() { - try { - triggers = ( - await HttpTriggerService.listHttpTriggers({ - workspace: $workspaceStore ?? '', - path, - isFlow: true - }) - ).map((x) => { - return { canWrite: canWrite(x.path, x.extra_perms!, $userStore), ...x } - }) - } catch (e) { - console.error('impossible to load http routes') - } - } - onMount(() => { if (!newFlow) { loadSchedules() - loadTriggers() } }) @@ -97,7 +79,7 @@ {#if $selectedTrigger === 'routes'}
- +
{/if} diff --git a/frontend/src/lib/components/flows/types.ts b/frontend/src/lib/components/flows/types.ts index d6ea08a637..fee0dc9506 100644 --- a/frontend/src/lib/components/flows/types.ts +++ b/frontend/src/lib/components/flows/types.ts @@ -5,6 +5,7 @@ import type ScriptEditorDrawer from './content/ScriptEditorDrawer.svelte' import type { FlowState } from './flowState' import type { Schedule } from './scheduleUtils' import type { FlowBuilderWhitelabelCustomUi } from '../custom_ui' +import { type HttpTrigger } from '$lib/gen' export type FlowInput = Record< string, @@ -29,6 +30,7 @@ export type ExtendedOpenFlow = OpenFlow & { export type FlowEditorContext = { selectedId: Writable selectedTrigger: Writable + httpTriggers: Writable<(HttpTrigger & { canWrite: boolean })[] | undefined> moving: Writable<{ module: FlowModule; modules: FlowModule[] } | undefined> schedule: Writable previewArgs: Writable> diff --git a/frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte b/frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte index 824085635c..6d55f99248 100644 --- a/frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte +++ b/frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte @@ -2,7 +2,7 @@ import { Calendar, Mail, Webhook } from 'lucide-svelte' import TriggerButton from './TriggerButton.svelte' import { NODE } from '../../util' - import { HttpTriggerService, ScheduleService, type HttpTrigger, type Schedule } from '$lib/gen' + import { HttpTriggerService, ScheduleService, type Schedule } from '$lib/gen' import { userStore, workspaceStore } from '$lib/stores' import Popover from '$lib/components/Popover.svelte' import TriggerCount from './TriggerCount.svelte' @@ -13,7 +13,6 @@ import type { FlowEditorContext } from '../../../flows/types' let schedules: Schedule[] | undefined = undefined - let triggers: (HttpTrigger & { canWrite: boolean })[] | undefined = undefined export let path: string export let isEditor: boolean @@ -45,7 +44,7 @@ async function loadTriggers() { try { - triggers = ( + $httpTriggers = ( await HttpTriggerService.listHttpTriggers({ workspace: $workspaceStore ?? '', path, @@ -68,6 +67,7 @@ }) const flowEditorContext = getContext('FlowEditorContext') + const httpTriggers = flowEditorContext?.httpTriggers ?? { subscribe: () => () => {} } const selectedId = flowEditorContext?.selectedId ?? { subscribe: () => () => {} } const selectedTrigger = flowEditorContext?.selectedTrigger ?? { subscribe: () => () => {} } @@ -149,7 +149,7 @@ }} disabled={newFlow} > - + diff --git a/frontend/src/lib/components/triggers/RoutesPanel.svelte b/frontend/src/lib/components/triggers/RoutesPanel.svelte index bbbbf71122..a6f525b41f 100644 --- a/frontend/src/lib/components/triggers/RoutesPanel.svelte +++ b/frontend/src/lib/components/triggers/RoutesPanel.svelte @@ -1,8 +1,10 @@ {/if} - {#if triggers} - {#if triggers.length == 0} + {#if $httpTriggers} + {#if $httpTriggers.length == 0}
No http routes
{:else}
- {#each triggers as trigger (trigger.path)} + {#each $httpTriggers as $httpTriggers ($httpTriggers.path)}
-
{trigger.path}
+
{$httpTriggers.path}
- {trigger.http_method.toUpperCase()} /{trigger.route_path} + {$httpTriggers.http_method.toUpperCase()} /{$httpTriggers.route_path}
-