diff --git a/src/routes/console/project-[project]/settings/_createDomain.svelte b/src/routes/console/project-[project]/settings/_createDomain.svelte deleted file mode 100644 index 482bba9e9..000000000 --- a/src/routes/console/project-[project]/settings/_createDomain.svelte +++ /dev/null @@ -1,38 +0,0 @@ - - -
- - Add Domain - - - - - - -
diff --git a/src/routes/console/project-[project]/settings/domains/+page.svelte b/src/routes/console/project-[project]/settings/domains/+page.svelte index d0e8be1e3..fb620a449 100644 --- a/src/routes/console/project-[project]/settings/domains/+page.svelte +++ b/src/routes/console/project-[project]/settings/domains/+page.svelte @@ -1,64 +1,161 @@ -

Custom Domains

- {#await request} -
- {:then response} - - - - Domain - TLS - - - {#each response.domains as domain} - - - - {domain.verification ? 'verified' : 'unverified'} - - - - {domain.domain} - - - {#if domain.certificateId} - Verified - {:else if domain.verification} - In Progress - {:else} - Pending Verification - {/if} - - - {/each} - -
- {/await} +
+

Custom Domains

- + +
+ {#await domainList.load(projectId)} +
+ {:then} + {#if $domainList.total} + + + + Domain Name + TLS + + + + {#each $domainList.domains as domain, i} + + + + {domain.verification ? 'verified' : 'unverified'} + + + + {domain.domain} + + + {#if domain.certificateId} + enabled + {:else} + + + {!domain.verification + ? 'pending verification' + : 'in progress'} + + + {/if} + + +
+ {#if isVerifying[domain.$id]} + +
+ {:else if !domain.certificateId} + + + {/if} + + +
+ + + {/each} + +
+ {:else} + +
+
+

Create your first Domain to get started

+
+
+ + +
+
+
+ {/if} + {/await} - (request = listDomains())} /> + diff --git a/src/routes/console/project-[project]/settings/domains/_create.svelte b/src/routes/console/project-[project]/settings/domains/_create.svelte new file mode 100644 index 000000000..6a0faa7cd --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/_create.svelte @@ -0,0 +1,44 @@ + + + diff --git a/src/routes/console/project-[project]/settings/domains/_delete.svelte b/src/routes/console/project-[project]/settings/domains/_delete.svelte new file mode 100644 index 000000000..3c37bfe66 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/_delete.svelte @@ -0,0 +1,42 @@ + + +
+ + Delete Domain +

+ Are you sure you want to delete {selectedDomain.domain} from '{$project.name}'? +

+ + + + +
+
diff --git a/src/routes/console/project-[project]/settings/domains/store.ts b/src/routes/console/project-[project]/settings/domains/store.ts new file mode 100644 index 000000000..712e7c319 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/store.ts @@ -0,0 +1,17 @@ +import { sdkForConsole } from '$lib/stores/sdk'; +import type { Models } from '@aw-labs/appwrite-console'; +import { cachedStore } from '$lib/helpers/cache'; + +export const domainList = cachedStore< + Models.DomainList, + { + load: (projectId: string) => Promise; + } +>('domainList', function ({ set }) { + return { + load: async (projectId) => { + const response = await sdkForConsole.projects.listDomains(projectId); + set(response); + } + }; +}); diff --git a/src/routes/console/project-[project]/settings/domains/wizard/_cnameTable.svelte b/src/routes/console/project-[project]/settings/domains/wizard/_cnameTable.svelte new file mode 100644 index 000000000..0c5d31bf0 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/_cnameTable.svelte @@ -0,0 +1,39 @@ + + + + + Type + Name + Value + + + + CNAME + {cnameValue} + +
+ {$domain.name} + + +
+
+
+
+
diff --git a/src/routes/console/project-[project]/settings/domains/wizard/_verificationBox.svelte b/src/routes/console/project-[project]/settings/domains/wizard/_verificationBox.svelte new file mode 100644 index 000000000..0cd32690f --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/_verificationBox.svelte @@ -0,0 +1,51 @@ + + +
+ {#if isVerifying} +
+ {:else} +
diff --git a/src/routes/console/project-[project]/settings/domains/wizard/step1.svelte b/src/routes/console/project-[project]/settings/domains/wizard/step1.svelte new file mode 100644 index 000000000..2287f0dd6 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/step1.svelte @@ -0,0 +1,64 @@ + + + + Add your domain + + Use your self-owned domain as the endpoint of your Appwrite API. + + + + + +
+

+ You can find a list of domain providers and their DNS setting documentation here. If your domain provider isn't listed, please contact us, and we'll include their + settings as well. +

+
+
diff --git a/src/routes/console/project-[project]/settings/domains/wizard/step2.svelte b/src/routes/console/project-[project]/settings/domains/wizard/step2.svelte new file mode 100644 index 000000000..581fb9923 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/step2.svelte @@ -0,0 +1,13 @@ + + + + Add a CNAME record + + In order to continue, set the following record on your DNS provider + + + + diff --git a/src/routes/console/project-[project]/settings/domains/wizard/step3.svelte b/src/routes/console/project-[project]/settings/domains/wizard/step3.svelte new file mode 100644 index 000000000..da6f43392 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/step3.svelte @@ -0,0 +1,25 @@ + + + + Add a CNAME record + + In order to continue, set the following record on your DNS provider + + + + +
+

Changes may take some time to take effect depending on your provider.

+ +
+ +
+
+
diff --git a/src/routes/console/project-[project]/settings/domains/wizard/step4.svelte b/src/routes/console/project-[project]/settings/domains/wizard/step4.svelte new file mode 100644 index 000000000..34ef5073f --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/step4.svelte @@ -0,0 +1,58 @@ + + + + Add a CNAME record + + In order to continue, set the following record on your DNS provider + + + + +
+ +
+
+ {#if !certificate} +
+ {:else} +
+
+
+ diff --git a/src/routes/console/project-[project]/settings/domains/wizard/store.ts b/src/routes/console/project-[project]/settings/domains/wizard/store.ts new file mode 100644 index 000000000..88d0de932 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/store.ts @@ -0,0 +1,3 @@ +import { writable } from 'svelte/store'; + +export const domain = writable<{ id: string; name: string }>({ id: '', name: '' });