From 485b1d5534b55725ed2f93ece47dc78cc86d26a6 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 4 Jun 2023 21:51:20 +0200 Subject: [PATCH] fix react-sdk build --- backend/windmill-api/src/jobs.rs | 8 ++++ .../flows/pickers/PickHubApp.svelte | 3 +- .../flows/pickers/PickHubFlow.svelte | 3 +- .../flows/pickers/PickHubScript.svelte | 3 +- .../src/lib/components/home/ItemsList.svelte | 2 +- .../lib/components/home/ListFilters.svelte | 44 ++++++++++++++++--- .../src/routes/(root)/(logged)/+page.svelte | 6 +-- .../(root)/(logged)/resources/+page.svelte | 2 +- react-sdk/package-lock.json | 42 ++++++++++-------- react-sdk/vite.config.js | 2 +- 10 files changed, 82 insertions(+), 33 deletions(-) diff --git a/backend/windmill-api/src/jobs.rs b/backend/windmill-api/src/jobs.rs index 7984e9fe2e..821e3ab897 100644 --- a/backend/windmill-api/src/jobs.rs +++ b/backend/windmill-api/src/jobs.rs @@ -66,6 +66,14 @@ pub fn workspaced_service() -> Router { "/run_wait_result/f/*script_path", post(run_wait_result_flow_by_path).head(|| async { "" }), ) + .route( + "/openai_sync/p/*script_path", + post(run_wait_result_job_by_path).head(|| async { "" }), + ) + .route( + "/openapi_sync/f/*script_path", + post(run_wait_result_flow_by_path).head(|| async { "" }), + ) .route("/run/h/:hash", post(run_job_by_hash).head(|| async { "" })) .route("/run/preview", post(run_preview_job)) .route("/run/preview_flow", post(run_preview_flow_job)) diff --git a/frontend/src/lib/components/flows/pickers/PickHubApp.svelte b/frontend/src/lib/components/flows/pickers/PickHubApp.svelte index 97c4461cbe..9c8b5dcfc1 100644 --- a/frontend/src/lib/components/flows/pickers/PickHubApp.svelte +++ b/frontend/src/lib/components/flows/pickers/PickHubApp.svelte @@ -8,6 +8,7 @@ import { loadHubApps } from '$lib/hub' export let filter = '' + export let syncQuery = false type Item = { apps: string[]; summary: string; path: string } let hubApps: any[] | undefined = undefined @@ -37,7 +38,7 @@ - + {#if hubApps} {#if filteredItems.length == 0} diff --git a/frontend/src/lib/components/flows/pickers/PickHubFlow.svelte b/frontend/src/lib/components/flows/pickers/PickHubFlow.svelte index e04b035792..ee666540fd 100644 --- a/frontend/src/lib/components/flows/pickers/PickHubFlow.svelte +++ b/frontend/src/lib/components/flows/pickers/PickHubFlow.svelte @@ -8,6 +8,7 @@ import { loadHubFlows } from '$lib/hub' export let filter = '' + export let syncQuery = false type Item = { apps: string[]; summary: string; path: string } let hubFlows: any[] | undefined = undefined @@ -37,7 +38,7 @@ - + {#if hubFlows} {#if filteredItems.length == 0} diff --git a/frontend/src/lib/components/flows/pickers/PickHubScript.svelte b/frontend/src/lib/components/flows/pickers/PickHubScript.svelte index 652b40a589..cf620d338b 100644 --- a/frontend/src/lib/components/flows/pickers/PickHubScript.svelte +++ b/frontend/src/lib/components/flows/pickers/PickHubScript.svelte @@ -12,6 +12,7 @@ export let kind: 'script' | 'trigger' | 'approval' | 'failure' = 'script' export let filter = '' + export let syncQuery = false const dispatch = createEventDispatcher() @@ -35,7 +36,7 @@ - + {#if $hubScripts} {#if filteredItems.length == 0} diff --git a/frontend/src/lib/components/home/ItemsList.svelte b/frontend/src/lib/components/home/ItemsList.svelte index 91de64513c..28b2d2ebaa 100644 --- a/frontend/src/lib/components/home/ItemsList.svelte +++ b/frontend/src/lib/components/home/ItemsList.svelte @@ -342,7 +342,7 @@
- + {#if filteredItems?.length == 0}
{/if} diff --git a/frontend/src/lib/components/home/ListFilters.svelte b/frontend/src/lib/components/home/ListFilters.svelte index 9ed6a9c7aa..45f6eca04e 100644 --- a/frontend/src/lib/components/home/ListFilters.svelte +++ b/frontend/src/lib/components/home/ListFilters.svelte @@ -5,22 +5,54 @@ import { fade } from 'svelte/transition' import { Badge } from '../common' import { APP_TO_ICON_COMPONENT } from '../icons' - import { setQuery } from '$lib/navigation' - import { page } from '$app/stores' + import { onDestroy, onMount } from 'svelte' export let filters: string[] export let selectedFilter: string | undefined = undefined export let resourceType = false export let queryName = 'filter' + export let syncQuery = false - if (selectedFilter == undefined) { - let queryValue = $page.url.searchParams.get(queryName) ?? undefined + const queryChange: (value: URL) => void = (url: URL) => { + if (syncQuery) { + window.history.pushState(history.state, '', `?${url?.searchParams.toString()}`) + } + } + + const eventListener = (e: PopStateEvent) => { + if (syncQuery) { + loadFilterFromUrl() + } + } + + onMount(() => { + window.addEventListener('popstate', eventListener) + }) + + onDestroy(() => { + window.removeEventListener('popstate', (e) => eventListener(e)) + }) + + loadFilterFromUrl() + + function loadFilterFromUrl() { + console.log('LOAD') + let queryValue = new URL(window.location.href).searchParams.get(queryName) ?? undefined selectedFilter = queryValue } function getIconComponent(name: string) { return APP_TO_ICON_COMPONENT[name] || APP_TO_ICON_COMPONENT[name.split('_')[0]] } + export async function setQuery(url: URL, key: string, value: string | undefined): Promise { + if (value != undefined) { + url.searchParams.set(key, value) + } else { + url.searchParams.delete(key) + } + queryChange(url) + } + $: filtersAndSelected = selectedFilter ? filters.includes(selectedFilter) ? filters @@ -40,9 +72,9 @@ on:click={() => { selectedFilter = selectedFilter == filter ? undefined : filter if (selectedFilter) { - setQuery($page.url, queryName, selectedFilter) + setQuery(new URL(window.location.href), queryName, selectedFilter) } else { - setQuery($page.url, queryName, undefined) + setQuery(new URL(window.location.href), queryName, undefined) } }} color={filter === selectedFilter ? 'blue' : 'gray'} diff --git a/frontend/src/routes/(root)/(logged)/+page.svelte b/frontend/src/routes/(root)/(logged)/+page.svelte index cbf5207b83..b687b7c74a 100644 --- a/frontend/src/routes/(root)/(logged)/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/+page.svelte @@ -236,7 +236,7 @@
{#if subtab == 'scripts'} - viewCode(e.detail)} + viewCode(e.detail)} >
- + {#if tab != 'states' && tab != 'cache'}