diff --git a/package.json b/package.json index 2f488e2b66..6bd1731d33 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "devDependencies": { "@eslint/compat": "^1.4.0", "@eslint/js": "^9.37.0", - "@imagine.dev/web-components": "https://pkg.vc/-/@appwrite/@imagine.dev/web-components@ad8767ea", + "@imagine.dev/web-components": "https://pkg.vc/-/@appwrite/@imagine.dev/web-components@4db67892", "@melt-ui/pp": "^0.3.2", "@melt-ui/svelte": "^0.86.6", "@playwright/test": "^1.56.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 980902897f..ed22cc94bd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,8 +109,8 @@ importers: specifier: ^9.37.0 version: 9.39.1 '@imagine.dev/web-components': - specifier: https://pkg.vc/-/@appwrite/@imagine.dev/web-components@ad8767ea - version: https://pkg.vc/-/@appwrite/@imagine.dev/web-components@ad8767ea(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + specifier: https://pkg.vc/-/@appwrite/@imagine.dev/web-components@4db67892 + version: https://pkg.vc/-/@appwrite/@imagine.dev/web-components@4db67892(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@melt-ui/pp': specifier: ^0.3.2 version: 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.45.6))(svelte@5.45.6) @@ -655,8 +655,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@imagine.dev/web-components@https://pkg.vc/-/@appwrite/@imagine.dev/web-components@ad8767ea': - resolution: {tarball: https://pkg.vc/-/@appwrite/@imagine.dev/web-components@ad8767ea} + '@imagine.dev/web-components@https://pkg.vc/-/@appwrite/@imagine.dev/web-components@4db67892': + resolution: {tarball: https://pkg.vc/-/@appwrite/@imagine.dev/web-components@4db67892} version: 0.0.142 peerDependencies: react: 19.1.0 @@ -4045,7 +4045,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@imagine.dev/web-components@https://pkg.vc/-/@appwrite/@imagine.dev/web-components@ad8767ea(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@imagine.dev/web-components@https://pkg.vc/-/@appwrite/@imagine.dev/web-components@4db67892(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: ndjson-readablestream: 1.4.0 react: 19.2.1 diff --git a/src/lib/studio/domains/manage/table.svelte b/src/lib/studio/domains/manage/table.svelte index bf03bb8a00..aa9ebf5a1d 100644 --- a/src/lib/studio/domains/manage/table.svelte +++ b/src/lib/studio/domains/manage/table.svelte @@ -31,12 +31,14 @@ siteId, region, projectId, - onAddNewDomain = null + onAddNewDomain, + onDomainsChanged }: { siteId: string; region: string; projectId: string; onAddNewDomain?: () => void; + onDomainsChanged?: () => void; } = $props(); let loading = $state(true); @@ -76,6 +78,7 @@ if (wasDeleteOpen || wasRetryOpen) { loadDomains(); + onDomainsChanged?.(); } previousDeleteState = showDelete; @@ -166,7 +169,7 @@ {/if} -{#snippet domainActions(rule: Models.ProxyRule, toggle: () => void)} +{#snippet domainActions(rule, toggle)} Open domain diff --git a/src/lib/studio/domains/manage/view.svelte b/src/lib/studio/domains/manage/view.svelte index 6212318fc1..08116cd3b8 100644 --- a/src/lib/studio/domains/manage/view.svelte +++ b/src/lib/studio/domains/manage/view.svelte @@ -11,7 +11,8 @@ siteId, region, projectId, - onAddNewDomain = null + onAddNewDomain, + onDomainsChanged }: { show: boolean; domain: string; @@ -19,6 +20,7 @@ region: string; projectId: string; onAddNewDomain?: () => void; + onDomainsChanged?: () => void; } = $props(); @@ -42,6 +44,6 @@ - + diff --git a/src/lib/studio/domains/verify/view.svelte b/src/lib/studio/domains/verify/view.svelte index 9c1982d30f..466527141c 100644 --- a/src/lib/studio/domains/verify/view.svelte +++ b/src/lib/studio/domains/verify/view.svelte @@ -28,12 +28,14 @@ rule, domain, onChangeDomain, + onVerified, show = $bindable(false) }: { show: boolean; rule: string; domain: Models.Domain; onChangeDomain: () => void; + onVerified?: () => void; } = $props(); const isSubDomain = $derived.by(() => isASubdomain(domain?.domain)); @@ -50,15 +52,15 @@ .proxy.updateRuleVerification({ ruleId: rule }); verified = ruleData.status === 'verified'; - throw new Error( - 'Domain verification failed. Please check your domain settings or try again later' - ); } else if (isCloud) { const domainData = await sdk.forConsole.domains.get({ domainId: domain.$id }); verified = domainData.nameservers.toLowerCase() === 'appwrite'; + } + + if (!verified) { throw new Error( 'Domain verification failed. Please check your domain settings or try again later' ); @@ -70,6 +72,7 @@ }); show = false; + onVerified?.(); await invalidate(Dependencies.DOMAINS); await invalidate(Dependencies.SITES_DOMAINS); } catch (error) { diff --git a/src/lib/studio/studio-widget.ts b/src/lib/studio/studio-widget.ts index 1afa160436..f0d277b450 100644 --- a/src/lib/studio/studio-widget.ts +++ b/src/lib/studio/studio-widget.ts @@ -280,6 +280,12 @@ export function hideStudio() { component.style.width = ''; restoreBodyScroll(); } + +export async function invalidateSiteInfo(): Promise { + const webComponents = await getWebComponents(); + webComponents.invalidateSiteInfo?.(); +} + export type ErrorParams = { traceId?: string; message: string; diff --git a/src/lib/studio/studio.svelte b/src/lib/studio/studio.svelte index 087d223a72..c59b0bfe1f 100644 --- a/src/lib/studio/studio.svelte +++ b/src/lib/studio/studio.svelte @@ -8,7 +8,12 @@ import { app } from '$lib/stores/app'; import { Dependencies } from '$lib/constants'; import { goto, invalidate } from '$app/navigation'; - import { ensureStudioComponent, initImagine, getWebComponents } from './studio-widget'; + import { + ensureStudioComponent, + initImagine, + getWebComponents, + invalidateSiteInfo + } from './studio-widget'; import AddDomains from './domains/add/view.svelte'; import VerifyDomain from './domains/verify/view.svelte'; import ManageDomains from './domains/manage/view.svelte'; @@ -88,6 +93,7 @@ {siteId} bind:show={showAddDomainsWizard} onDomainAdded={(rule, domain, verified) => { + invalidateSiteInfo(); if (!verified) { ruleIdForVerification = rule; domainForVerification = domain; @@ -98,6 +104,7 @@ { ruleIdForVerification = null; @@ -111,6 +118,7 @@ {projectId} domain={primaryDomainForSite} bind:show={showManageDomainsSheet} + onDomainsChanged={invalidateSiteInfo} onAddNewDomain={() => { showAddDomainsWizard = true; showManageDomainsSheet = false;