From c0853eafc9f9bf6d454c6a70800c98c75c9d8ba3 Mon Sep 17 00:00:00 2001 From: Faton Ramadani Date: Fri, 9 Aug 2024 16:48:57 +0200 Subject: [PATCH 01/13] fix(frontend): support plus sign in emails format fields #4223 --- frontend/src/lib/components/StringTypeNarrowing.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/lib/components/StringTypeNarrowing.svelte b/frontend/src/lib/components/StringTypeNarrowing.svelte index 90c24fe2e1..c89bb9dcc8 100644 --- a/frontend/src/lib/components/StringTypeNarrowing.svelte +++ b/frontend/src/lib/components/StringTypeNarrowing.svelte @@ -67,7 +67,7 @@ $: { if (format == 'email') { - pattern = '^[\\w-.]+@([\\w-]+\\.)+[\\w-]{2,4}$' + pattern = '^[\\w-+.]+@([\\w-]+\\.)+[\\w-]{2,4}$' } } From 7115a3577947c52aa72edcc134dcb8e739208df0 Mon Sep 17 00:00:00 2001 From: Faton Ramadani Date: Fri, 9 Aug 2024 16:49:37 +0200 Subject: [PATCH 02/13] fix(frontend): improve default id of the components of the topbar (#4222) --- .../lib/components/apps/editor/appUtils.ts | 17 ++++++---- .../components/details/createAppFromScript.ts | 32 +++++++++---------- .../(root)/(logged)/apps/add/+page.svelte | 6 ++-- 3 files changed, 30 insertions(+), 25 deletions(-) diff --git a/frontend/src/lib/components/apps/editor/appUtils.ts b/frontend/src/lib/components/apps/editor/appUtils.ts index a18d5a7eca..602a5bad0a 100644 --- a/frontend/src/lib/components/apps/editor/appUtils.ts +++ b/frontend/src/lib/components/apps/editor/appUtils.ts @@ -244,10 +244,11 @@ export function createNewGridItem( data: AppComponent, columns?: Record, initialPosition: { x: number; y: number } = { x: 0, y: 0 }, - recOverride?: Record + recOverride?: Record, + fixed?: boolean ): GridItem { const newComponent = { - fixed: false, + fixed: fixed ?? false, x: initialPosition.x, y: initialPosition.y, fullHeight: false @@ -389,7 +390,9 @@ export function insertNewGridItem( columns?: Record, keepId?: string, initialPosition: { x: number; y: number } = { x: 0, y: 0 }, - recOverride?: Record + recOverride?: Record, + keepSubgrids?: boolean, + fixed?: boolean ): string { const id = keepId ?? getNextGridItemId(app) @@ -404,7 +407,7 @@ export function insertNewGridItem( } // We only want to set subgrids when we are not moving - if (!keepId) { + if (!keepId || keepSubgrids) { for (let i = 0; i < (data.numberOfSubgrids ?? 0); i++) { app.subgrids[`${id}-${i}`] = [] } @@ -436,7 +439,7 @@ export function insertNewGridItem( let grid = focusedGrid ? app.subgrids[key!] : app.grid - const newItem = createNewGridItem(grid, id, data, columns, initialPosition, recOverride) + const newItem = createNewGridItem(grid, id, data, columns, initialPosition, recOverride, fixed) grid.push(newItem) return id } @@ -1094,7 +1097,7 @@ export function setUpTopBarComponentContent(id: string, app: App) { subGridIndex: 0 }, undefined, - undefined, + 'title', undefined, { 3: { @@ -1118,7 +1121,7 @@ export function setUpTopBarComponentContent(id: string, app: App) { subGridIndex: 0 }, undefined, - undefined, + 'recomputeall', undefined, { 3: { diff --git a/frontend/src/lib/components/details/createAppFromScript.ts b/frontend/src/lib/components/details/createAppFromScript.ts index 52dd5d9caa..9beaf23f81 100644 --- a/frontend/src/lib/components/details/createAppFromScript.ts +++ b/frontend/src/lib/components/details/createAppFromScript.ts @@ -56,9 +56,9 @@ export function createAppFromScript(path: string, schema: Record | }, actions: [], numberOfSubgrids: 1, - id: 'g' + id: 'topbar' }, - id: 'g' + id: 'topbar' } ], fullscreen: false, @@ -410,7 +410,7 @@ export function createAppFromScript(path: string, schema: Record | id: 'f' } ], - 'g-0': [ + 'topbar-0': [ { '3': { fixed: false, @@ -481,9 +481,9 @@ export function createAppFromScript(path: string, schema: Record | actions: [], horizontalAlignment: 'left', verticalAlignment: 'center', - id: 'h' + id: 'title' }, - id: 'h' + id: 'title' }, { '3': { @@ -515,9 +515,9 @@ export function createAppFromScript(path: string, schema: Record | menuItems: [], horizontalAlignment: 'right', verticalAlignment: 'center', - id: 'i' + id: 'recomputeall' }, - id: 'i' + id: 'recomputeall' } ] } @@ -592,7 +592,7 @@ export function createAppFromFlow(path: string, schema: Record | un }, { '3': { - fixed: false, + fixed: true, x: 0, y: 8, fullHeight: false, @@ -600,7 +600,7 @@ export function createAppFromFlow(path: string, schema: Record | un h: 2 }, '12': { - fixed: false, + fixed: true, x: 0, y: 0, fullHeight: false, @@ -618,9 +618,9 @@ export function createAppFromFlow(path: string, schema: Record | un }, actions: [], numberOfSubgrids: 1, - id: 'g' + id: 'topbar' }, - id: 'g' + id: 'topbar' } ], fullscreen: false, @@ -973,7 +973,7 @@ export function createAppFromFlow(path: string, schema: Record | un id: 'f' } ], - 'g-0': [ + 'topbar-0': [ { '3': { fixed: false, @@ -1044,9 +1044,9 @@ export function createAppFromFlow(path: string, schema: Record | un actions: [], horizontalAlignment: 'left', verticalAlignment: 'center', - id: 'h' + id: 'title' }, - id: 'h' + id: 'title' }, { '3': { @@ -1078,9 +1078,9 @@ export function createAppFromFlow(path: string, schema: Record | un menuItems: [], horizontalAlignment: 'right', verticalAlignment: 'center', - id: 'i' + id: 'recomputeall' }, - id: 'i' + id: 'recomputeall' } ] } diff --git a/frontend/src/routes/(root)/(logged)/apps/add/+page.svelte b/frontend/src/routes/(root)/(logged)/apps/add/+page.svelte index 1906226761..9e5d9ed267 100644 --- a/frontend/src/routes/(root)/(logged)/apps/add/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/apps/add/+page.svelte @@ -130,12 +130,14 @@ }) as (id: string) => AppComponent, undefined, undefined, - undefined, + 'topbar', { x: 0, y: 0 }, { 3: processDimension(preset.dims, 3), 12: processDimension(preset.dims, 12) - } + }, + true, + true ) setUpTopBarComponentContent(id, value) From 6272c9ff41e5359f38ae13e879aa615da0fb0d09 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 9 Aug 2024 23:31:00 +0200 Subject: [PATCH 03/13] fix: allow user resources in app to work within iframes --- .../src/lib/components/AppConnectInner.svelte | 7 +++++-- frontend/src/lib/components/Login.svelte | 3 ++- .../src/lib/components/ResourcePicker.svelte | 2 +- .../components/inputs/AppUserResource.svelte | 17 ++++++++++++++--- .../apps/editor/component/components.ts | 2 +- .../apps/editor/componentsPanel/cssUtils.ts | 12 ++++++++++++ .../oauth/callback/[client_name]/+page.svelte | 2 ++ frontend/vite.config.js | 6 +++--- 8 files changed, 40 insertions(+), 11 deletions(-) diff --git a/frontend/src/lib/components/AppConnectInner.svelte b/frontend/src/lib/components/AppConnectInner.svelte index 848fb69922..c444a47169 100644 --- a/frontend/src/lib/components/AppConnectInner.svelte +++ b/frontend/src/lib/components/AppConnectInner.svelte @@ -161,11 +161,14 @@ } function popupListener(event) { + console.log('popupListener', event.data, event.origin, window.location.origin) let data = event.data - if (event.origin !== window.location.origin) { + if (event.origin == null || event.origin !== window.location.origin) { return } + window.removeEventListener('message', popupListener) + if (data.type === 'error') { sendUserToast(event.data.error, true) step = 2 @@ -212,7 +215,7 @@ // if (!newPageOAuth) { // window.location.href = url.toString() // } else { - window.addEventListener('message', popupListener, { once: true }) + window.addEventListener('message', popupListener) window.open(url.toString(), '_blank', 'popup=true') step += 1 diff --git a/frontend/src/lib/components/Login.svelte b/frontend/src/lib/components/Login.svelte index b515a09b87..6714d52b0f 100644 --- a/frontend/src/lib/components/Login.svelte +++ b/frontend/src/lib/components/Login.svelte @@ -173,6 +173,7 @@ if (data.type === 'error') { sendUserToast(event.data.error, true) } else if (data.type === 'success') { + window.removeEventListener('message', popupListener) dispatch('login') } } @@ -187,7 +188,7 @@ let url = base + '/api/oauth/login/' + provider if (popup) { localStorage.setItem('closeUponLogin', 'true') - window.addEventListener('message', popupListener, { once: true }) + window.addEventListener('message', popupListener) window.open(url, '_blank', 'popup') } else { window.location.href = url diff --git a/frontend/src/lib/components/ResourcePicker.svelte b/frontend/src/lib/components/ResourcePicker.svelte index ed30620270..ba5a7c9db9 100644 --- a/frontend/src/lib/components/ResourcePicker.svelte +++ b/frontend/src/lib/components/ResourcePicker.svelte @@ -39,7 +39,7 @@ let collection = valueSelect ? [valueSelect] : [] export async function askNewResource() { - appConnect?.open?.(resourceType) + appConnect?.open?.(resourceType, expressOAuthSetup) } async function loadResources(resourceType: string | undefined) { diff --git a/frontend/src/lib/components/apps/components/inputs/AppUserResource.svelte b/frontend/src/lib/components/apps/components/inputs/AppUserResource.svelte index f196b11d45..847b1f2e43 100644 --- a/frontend/src/lib/components/apps/components/inputs/AppUserResource.svelte +++ b/frontend/src/lib/components/apps/components/inputs/AppUserResource.svelte @@ -15,6 +15,7 @@ import ResolveConfig from '../helpers/ResolveConfig.svelte' import ResolveStyle from '../helpers/ResolveStyle.svelte' import ResourcePicker from '$lib/components/ResourcePicker.svelte' + import { twMerge } from 'tailwind-merge' export let id: string export let configuration: RichConfigurations @@ -36,6 +37,15 @@ result: undefined as string | undefined }) + let css = initCss($app.css?.['userresourcecomponent'], customCss) + + $: classInput = twMerge( + 'windmillapp w-full px-2', + css?.input?.class ?? '', + 'wm-input', + 'wm-user-resource-select' + ) + let value: string | undefined = outputs.result.peak()?.replace('$res:', '') value && assignValue(outputs.result.peak()) @@ -66,8 +76,6 @@ } } - let css = initCss($app.css?.['userresourcecomponent'], customCss) - let resourcePicker: ResourcePicker | undefined = undefined @@ -93,7 +101,10 @@ {#if render} -
+
Date: Sat, 10 Aug 2024 19:18:22 +0200 Subject: [PATCH 04/13] chore: improve ci to not tag PR result --- .github/workflows/docker-image.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index ec65f9bb7f..22ac93a93f 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -354,6 +354,7 @@ jobs: tag_latest: runs-on: ubicloud needs: [run_integration_test, build] + if: github.event_name != 'pull_request' steps: - uses: actions/checkout@v4 with: @@ -372,6 +373,7 @@ jobs: tag_latest_ee: runs-on: ubicloud needs: [run_integration_test, build_ee] + if: github.event_name != 'pull_request' steps: - uses: actions/checkout@v4 with: From e5e03b5baadb822f615eb94d72ffd7bcb698cb23 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sat, 10 Aug 2024 20:08:23 +0200 Subject: [PATCH 05/13] chore: improve ci to not tag PR result --- .github/workflows/docker-image.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 22ac93a93f..a548a637a5 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,6 +1,6 @@ env: REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} + IMAGE_NAME: ${{ github.event_name != 'pull_request' && github.repository || 'windmill-labs/windmill-test' }} name: Build windmill:main on: @@ -434,6 +434,7 @@ jobs: build_ee_nsjail: needs: [build_ee] runs-on: ubicloud + if: github.event_name != 'pull_request' steps: - uses: actions/checkout@v4 with: @@ -482,6 +483,7 @@ jobs: build_ee_reports_privately: needs: [build_ee_nsjail] runs-on: ubicloud + if: github.event_name != 'pull_request' steps: - uses: actions/checkout@v4 with: From bc512bd307e675c853421591d940f863f303c3cb Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sat, 10 Aug 2024 20:25:53 +0200 Subject: [PATCH 06/13] chore: improve ci to not tag PR result --- .github/workflows/docker-image.yml | 37 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index a548a637a5..0a4b6419c7 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,6 +1,7 @@ env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.event_name != 'pull_request' && github.repository || 'windmill-labs/windmill-test' }} + DEV_SHA: ${{ github.event_name != 'pull_request' && 'dev' || format('pr-{0}', github.event.number) }} name: Build windmill:main on: @@ -75,7 +76,7 @@ jobs: build-args: | features=embedding,parquet,openidconnect,jemalloc tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} ${{ steps.meta-public.outputs.tags }} labels: | ${{ steps.meta-public.outputs.labels }} @@ -137,7 +138,7 @@ jobs: build-args: | features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} ${{ steps.meta-ee-public.outputs.tags }} labels: | ${{ steps.meta-ee-public.outputs.labels }} @@ -250,25 +251,25 @@ jobs: - run: | # pulling docker image with desired arch so that actions-docker-extract doesn't do it - docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev - docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev + docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} + docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} - run: | # Checks the image is in docker prior to running actions-docker-extract. It fails if not # Also useful to visually check that the arch is the right opencontainers - docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev - docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev + docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} + docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} - uses: shrink/actions-docker-extract@v3 id: extract with: - image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev + image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} path: "/usr/src/app/windmill" - uses: shrink/actions-docker-extract@v3 id: extract-ee with: - image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev + image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} path: "/usr/src/app/windmill" - name: Rename binary with corresponding architecture @@ -294,25 +295,25 @@ jobs: # - run: | # # pulling docker image with desired arch so that actions-docker-extract doesn't do it - # docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev - # docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev + # docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} + # docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} # - run: | # # Checks the image is in docker prior to running actions-docker-extract. It fails if not # # Also useful to visually check that the arch is the right opencontainers - # docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev - # docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev + # docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} + # docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} # - uses: shrink/actions-docker-extract@v3 # id: extract # with: - # image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev + # image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} # path: "/usr/src/app/windmill" # - uses: shrink/actions-docker-extract@v3 # id: extract-ee # with: - # image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev + # image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} # path: "/usr/src/app/windmill" # - name: Rename binary with corresponding architecture @@ -367,8 +368,8 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Tag main and latest run: | - docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest - docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:main + docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:main tag_latest_ee: runs-on: ubicloud @@ -386,8 +387,8 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Tag main and latest for ee run: | - docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest - docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:main + docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest + docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:main verify_ee_image_vulnerabilities: runs-on: ubicloud From c03c0f61726e7b6196fe5222c44d4d635e907b20 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sat, 10 Aug 2024 22:49:48 +0200 Subject: [PATCH 07/13] fix(frontend): user resource picker for app use lightweight component --- .github/workflows/docker-image.yml | 9 --- .../src/lib/components/AppConnectInner.svelte | 4 ++ .../LightweightResourcePicker.svelte | 65 ++++++++++++++----- .../components/inputs/AppUserResource.svelte | 6 +- .../src/routes/(root)/(logged)/+layout.svelte | 4 +- .../routes/(root)/embed_connect/+page.svelte | 6 +- 6 files changed, 62 insertions(+), 32 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 0a4b6419c7..cd1bb62cf7 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -63,7 +63,6 @@ jobs: flavor: | latest=false tags: | - type=ref,event=pr type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} @@ -114,7 +113,6 @@ jobs: flavor: | latest=false tags: | - type=ref,event=pr type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} @@ -177,7 +175,6 @@ jobs: flavor: | latest=false tags: | - type=ref,event=pr type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} @@ -455,8 +452,6 @@ jobs: flavor: | latest=false tags: | - type=ref,event=branch - type=ref,event=pr type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=sha,enable=true,priority=100,prefix=,suffix=,format=short @@ -508,8 +503,6 @@ jobs: images: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee-reports tags: | - type=ref,event=branch - type=ref,event=pr type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=sha,enable=true,priority=100,prefix=,suffix=,format=short @@ -594,7 +587,6 @@ jobs: flavor: | latest=false tags: | - type=ref,event=pr type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} @@ -641,7 +633,6 @@ jobs: flavor: | latest=false tags: | - type=ref,event=pr type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} diff --git a/frontend/src/lib/components/AppConnectInner.svelte b/frontend/src/lib/components/AppConnectInner.svelte index c444a47169..b99ad4855c 100644 --- a/frontend/src/lib/components/AppConnectInner.svelte +++ b/frontend/src/lib/components/AppConnectInner.svelte @@ -89,6 +89,10 @@ valueToken = undefined await loadConnects() manual = !connects?.includes(resourceType) + if (manual && expressOAuthSetup) { + dispatch('error', 'Express OAuth setup is not available for non OAuth resource types') + return + } if (rt) { if (!manual && expressOAuthSetup) { await getScopesAndParams() diff --git a/frontend/src/lib/components/LightweightResourcePicker.svelte b/frontend/src/lib/components/LightweightResourcePicker.svelte index b9ea69096b..c5b34f9af9 100644 --- a/frontend/src/lib/components/LightweightResourcePicker.svelte +++ b/frontend/src/lib/components/LightweightResourcePicker.svelte @@ -10,6 +10,7 @@ import { Button, Drawer, DrawerContent } from './common' import { Plus } from 'lucide-svelte' import type { AppViewerContext } from './apps/types' + import { sendUserToast } from '$lib/toast' const dispatch = createEventDispatcher() @@ -17,7 +18,11 @@ export let value: string | undefined = initialValue export let resourceType: string | undefined = undefined export let disablePortal = false + export let expressOAuthSetup = false + export let disabled = false + let open = false + let refreshCount = 0 const appViewerContext = getContext('AppViewerContext') let valueSelect = @@ -56,40 +61,64 @@ let drawer: Drawer | undefined = undefined + export function askNewResource() { + refreshCount += 1 + open = true + } + function processEvent(event: MessageEvent) { if (event.origin !== window.location.origin) { return } + if (event.data.type === 'error') { + sendUserToast(event.data.error, true) + } if (event.data.type === 'refresh') { + window.removeEventListener('message', processEvent) value = event.data.detail valueSelect = { value, label: value } drawer?.closeDrawer?.() + open = false } } - - -