From d8a2e99fb24bb9b14724d8466439c1dff52795e2 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 17 Oct 2022 09:43:15 -0700 Subject: [PATCH 1/5] Fix test:watch script using vitetest instead of vitest --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1a46b84ec..ed9d85101 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. .", "test": "vitest run", "test:ui": "vitest --ui", - "test:watch": "vitetest watch", + "test:watch": "vitest watch", "e2e": "playwright test tests/e2e" }, "dependencies": { From d466749a71fc7ef75a666520599579f497f7580c Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 13 Oct 2022 13:48:04 -0700 Subject: [PATCH 2/5] Create a Heading component --- src/lib/components/heading.svelte | 8 ++++++++ src/lib/components/index.ts | 1 + tests/unit/components/heading.test.ts | 14 ++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 src/lib/components/heading.svelte create mode 100644 tests/unit/components/heading.test.ts diff --git a/src/lib/components/heading.svelte b/src/lib/components/heading.svelte new file mode 100644 index 000000000..2fe797c81 --- /dev/null +++ b/src/lib/components/heading.svelte @@ -0,0 +1,8 @@ + + + + + diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts index 6898f1b71..a354d53da 100644 --- a/src/lib/components/index.ts +++ b/src/lib/components/index.ts @@ -36,3 +36,4 @@ export { default as Secret } from './secret.svelte'; export { default as Trim } from './trim.svelte'; export { default as Tabs } from './tabs.svelte'; export { default as Tab } from './tab.svelte'; +export { default as Heading } from './heading.svelte'; diff --git a/tests/unit/components/heading.test.ts b/tests/unit/components/heading.test.ts new file mode 100644 index 000000000..c5b9d6fc0 --- /dev/null +++ b/tests/unit/components/heading.test.ts @@ -0,0 +1,14 @@ +import '@testing-library/jest-dom'; +import { render } from '@testing-library/svelte'; +import { Heading } from '../../../src/lib/components'; + +test('shows heading', () => { + const tag = 'h1'; + const size = '7'; + + const { container } = render(Heading, { tag, size }); + + const headings = container.querySelectorAll(tag); + expect(headings.length).toEqual(1); + expect(headings[0].className).toEqual(`heading-level-${size}`); +}); From 4dbd0b3a149a243f33e7ac6dc6f78d7d05ca0503 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 13 Oct 2022 13:50:40 -0700 Subject: [PATCH 3/5] Replace old heading elements with Heading component --- src/lib/components/gridItem1.svelte | 3 ++- src/lib/components/modal.svelte | 6 +++--- src/lib/layout/shell.svelte | 11 ++++++----- src/lib/layout/usage.svelte | 14 +++++++------- src/lib/layout/wizardStep.svelte | 5 +++-- src/routes/console/account/+page.svelte | 10 +++++----- .../console/account/organizations/+page.svelte | 11 +++++++++-- src/routes/console/account/sessions/+page.svelte | 4 ++-- .../organization-[organization]/+page.svelte | 5 ++--- .../members/+page.svelte | 4 ++-- .../settings/+page.svelte | 6 +++--- .../authentication/security/+page.svelte | 6 +++--- .../authentication/settings/+page.svelte | 4 ++-- .../authentication/teams/[team]/+page.svelte | 8 ++++---- .../authentication/user/[user]/+page.svelte | 16 ++++++++-------- .../project-[project]/databases/+page.svelte | 4 ++-- .../databases/database/[database]/+page.svelte | 4 ++-- .../collection/[collection]/+page.svelte | 4 ++-- .../[collection]/attributes/+page.svelte | 4 ++-- .../document/[document]/+page.svelte | 8 ++++---- .../document/[document]/_document.svelte | 4 ++-- .../[collection]/settings/+page.svelte | 10 +++++----- .../database/[database]/settings/+page.svelte | 8 ++++---- .../project-[project]/overview/+layout.svelte | 4 ++-- .../project-[project]/overview/keys/+page.svelte | 3 ++- .../keys/[key]/+page@project-[project].svelte | 14 +++++++------- .../overview/platforms/+page.svelte | 4 ++-- .../[platform]/+page@project-[project].svelte | 6 +++--- .../platforms/[platform]/appleIOS.svelte | 4 ++-- .../platforms/[platform]/appleMacOS.svelte | 4 ++-- .../platforms/[platform]/appleTvOS.svelte | 4 ++-- .../platforms/[platform]/appleWatchOS.svelte | 4 ++-- .../platforms/[platform]/flutterAndroid.svelte | 4 ++-- .../platforms/[platform]/flutterIOS.svelte | 4 ++-- .../platforms/[platform]/flutterLinux.svelte | 4 ++-- .../platforms/[platform]/flutterMacOS.svelte | 4 ++-- .../platforms/[platform]/flutterWindows.svelte | 4 ++-- .../overview/platforms/[platform]/web.svelte | 4 ++-- .../project-[project]/settings/+page.svelte | 10 +++++----- .../project-[project]/storage/+page.svelte | 4 ++-- .../bucket/[bucket]/file/[file]/+page.svelte | 8 ++++---- .../bucket/[bucket]/settings/+page.svelte | 16 ++++++++-------- 42 files changed, 139 insertions(+), 129 deletions(-) diff --git a/src/lib/components/gridItem1.svelte b/src/lib/components/gridItem1.svelte index 8220f6429..e5041f9da 100644 --- a/src/lib/components/gridItem1.svelte +++ b/src/lib/components/gridItem1.svelte @@ -1,4 +1,5 @@ @@ -6,7 +7,7 @@
-

+
diff --git a/src/lib/components/modal.svelte b/src/lib/components/modal.svelte index d2ff5b89c..4a42b7533 100644 --- a/src/lib/components/modal.svelte +++ b/src/lib/components/modal.svelte @@ -2,7 +2,7 @@ import { browser } from '$app/environment'; import { createEventDispatcher } from 'svelte'; import { fade, fly, type FadeParams, type FlyParams } from 'svelte/transition'; - import { Alert } from '$lib/components'; + import { Alert, Heading } from '$lib/components'; import { clickOnEnter } from '$lib/helpers/a11y'; export let show = false; @@ -76,9 +76,9 @@
{/if} -

+ -

+ {#if closable} {#each $titleDropdown as org} @@ -147,9 +148,9 @@
{:else} -

+ {$title ? $title : '-'} -

+ {/if} {#if $page.url.pathname.includes('/console/account')}
diff --git a/src/lib/layout/usage.svelte b/src/lib/layout/usage.svelte index 7f3b15f66..979f70e2b 100644 --- a/src/lib/layout/usage.svelte +++ b/src/lib/layout/usage.svelte @@ -5,7 +5,7 @@
-

+ -

+ {#if $$slots.subtitle}

diff --git a/src/routes/console/account/+page.svelte b/src/routes/console/account/+page.svelte index d4d0ab560..2baf8035c 100644 --- a/src/routes/console/account/+page.svelte +++ b/src/routes/console/account/+page.svelte @@ -1,6 +1,6 @@ -

Update Data
+ Update Data

Update document data based on the attributes created earlier.

diff --git a/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/settings/+page.svelte b/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/settings/+page.svelte index e7991b3a0..352eb14ea 100644 --- a/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/settings/+page.svelte +++ b/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/settings/+page.svelte @@ -1,5 +1,5 @@
-

API Keys

+ API Keys - - - - 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: '' });