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;