- {#if isSubDomain && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && $regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'}
+ {#if showCNAMETab}
(selectedTab = 'cname')}
@@ -142,7 +143,7 @@
CNAME
{/if}
- {#if isCloud}
+ {#if showNSTab}
(selectedTab = 'nameserver')}
@@ -150,7 +151,7 @@
Nameservers
{/if}
- {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'}
+ {#if showATab}
(selectedTab = 'a')}
@@ -158,7 +159,7 @@
A
{/if}
- {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'}
+ {#if showAAAATab}
(selectedTab = 'aaaa')}
@@ -171,13 +172,17 @@
{#if selectedTab === 'nameserver'}
-
+
{:else}
+ domain={rule?.domain}
+ ruleStatus={rule?.status}
+ onNavigateToNameservers={() => (selectedTab = 'nameserver')}
+ onNavigateToA={() => (selectedTab = 'a')}
+ onNavigateToAAAA={() => (selectedTab = 'aaaa')} />
{/if}
diff --git a/src/lib/studio/studio.svelte b/src/lib/studio/studio.svelte
index c59b0bfe1f..1d9279af0f 100644
--- a/src/lib/studio/studio.svelte
+++ b/src/lib/studio/studio.svelte
@@ -33,7 +33,7 @@
userId: string;
} = $props();
- const siteId = `project-${projectId}`;
+ const siteId = $derived(`project-${projectId}`);
const isStage = sdk.forConsole.client.config.endpoint.includes('stage');
let showAddDomainsWizard = $state(false);
let showManageDomainsSheet = $state(false);
@@ -42,7 +42,7 @@
);
let showVerifyDomainsWizard = $state(false);
- let ruleIdForVerification = $state(null);
+ let ruleForVerification = $state(null);
let domainForVerification = $state(null);
onMount(() => {
@@ -94,20 +94,29 @@
bind:show={showAddDomainsWizard}
onDomainAdded={(rule, domain, verified) => {
invalidateSiteInfo();
- if (!verified) {
- ruleIdForVerification = rule;
+ if (verified) {
+ ruleForVerification = null;
+ domainForVerification = null;
+ showManageDomainsSheet = true;
+ } else {
+ ruleForVerification = rule;
domainForVerification = domain;
showVerifyDomainsWizard = true;
}
}} />
{
+ invalidateSiteInfo();
+ ruleForVerification = null;
+ domainForVerification = null;
+ showManageDomainsSheet = true;
+ }}
bind:show={showVerifyDomainsWizard}
onChangeDomain={() => {
- ruleIdForVerification = null;
+ ruleForVerification = null;
domainForVerification = null;
showAddDomainsWizard = true;
}} />
diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte
index 949d8079c9..17933613bb 100644
--- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte
+++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte
@@ -10,7 +10,6 @@
import { Divider, Tabs } from '@appwrite.io/pink-svelte';
import { isCloud } from '$lib/system';
import { page } from '$app/state';
- import { isASubdomain } from '$lib/helpers/tlds';
import NameserverTable from '$lib/components/domains/nameserverTable.svelte';
import RecordTable from '$lib/components/domains/recordTable.svelte';
import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store';
@@ -23,41 +22,50 @@
selectedProxyRule: Models.ProxyRule;
} = $props();
- const isSubDomain = $derived.by(() => isASubdomain(selectedProxyRule?.domain));
-
- let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver');
-
- $effect(() => {
- if ($regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) {
- selectedTab = 'cname';
- } else if (!isCloud && $regionalConsoleVariables._APP_DOMAIN_TARGET_A) {
- selectedTab = 'a';
- } else if (!isCloud && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA) {
- selectedTab = 'aaaa';
- } else {
- selectedTab = 'nameserver';
- }
- });
+ const showCNAMETab = $derived(
+ Boolean($regionalConsoleVariables._APP_DOMAIN_SITES) &&
+ $regionalConsoleVariables._APP_DOMAIN_SITES !== 'localhost'
+ );
+ const showATab = $derived(
+ !isCloud &&
+ Boolean($regionalConsoleVariables._APP_DOMAIN_TARGET_A) &&
+ $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'
+ );
+ const showAAAATab = $derived(
+ !isCloud &&
+ Boolean($regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA) &&
+ $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'
+ );
+ const showNSTab = isCloud;
+ let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>(getDefaultTab());
let error = $state(null);
- let verified = $state(false);
+ let verified: boolean | undefined = $state(undefined);
+
+ function getDefaultTab() {
+ return showCNAMETab ? 'cname' : showATab ? 'a' : showAAAATab ? 'aaaa' : 'nameserver';
+ }
async function retryDomain() {
try {
- const domain = await sdk
+ error = null;
+ const proxyRule = await sdk
.forProject(page.params.region, page.params.project)
.proxy.updateRuleVerification({ ruleId: selectedProxyRule.$id });
- show = false;
- verified = domain.status === 'verified';
+ verified = proxyRule.status !== 'created';
await invalidate(Dependencies.SITES_DOMAINS);
- addNotification({
- type: 'success',
- message: `${selectedProxyRule.domain} has been verified`
- });
+ if (verified) {
+ addNotification({
+ type: 'success',
+ message: `Domain verified successfully`
+ });
+ }
+ show = false;
trackEvent(Submit.DomainUpdateVerification);
} catch (e) {
+ verified = false;
error =
e.message ??
'Domain verification failed. Please check your domain settings or try again later';
@@ -75,7 +83,7 @@
- {#if isSubDomain && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && $regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'}
+ {#if showCNAMETab}
(selectedTab = 'cname')}
@@ -83,7 +91,7 @@
CNAME
{/if}
- {#if isCloud}
+ {#if showNSTab}
(selectedTab = 'nameserver')}
@@ -91,7 +99,7 @@
Nameservers
{/if}
- {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'}
+ {#if showATab}
(selectedTab = 'a')}
@@ -99,7 +107,7 @@
A
{/if}
- {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'}
+ {#if showAAAATab}
(selectedTab = 'aaaa')}
@@ -117,7 +125,11 @@
{verified}
service="sites"
variant={selectedTab}
- domain={selectedProxyRule.domain} />
+ domain={selectedProxyRule.domain}
+ ruleStatus={selectedProxyRule.status}
+ onNavigateToNameservers={() => (selectedTab = 'nameserver')}
+ onNavigateToA={() => (selectedTab = 'a')}
+ onNavigateToAAAA={() => (selectedTab = 'aaaa')} />
{/if}