From 799075590a6f714d54282e65f9b7eb230149bb12 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Tue, 18 Mar 2025 10:24:51 +0100 Subject: [PATCH 01/26] Feat: add hostname WIP --- .../overview/platforms/createWeb.svelte | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index a00301f73..b9f3039d8 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -11,7 +11,8 @@ Fieldset, InlineCode, Card, - Button + Button, + Input } from '@appwrite.io/pink-svelte'; import { Form } from '$lib/elements/forms'; import { @@ -63,6 +64,7 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" }; export let platform: PlatformType = PlatformType.Flutterandroid; export let selectedFrameworkKey: string | undefined = key ? key : undefined; + let hostname; let frameworks: Array = [ { @@ -184,20 +186,29 @@ APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" imageRadius="s" /> {/each} - {#if isChangingFramework} (isChangingFramework = false)}> Save - {:else} - Create platform {/if} + {#if !isChangingFramework} +
+ Create platform + {/if} {:else} Date: Tue, 18 Mar 2025 10:47:07 +0100 Subject: [PATCH 02/26] Feat: add hostname --- src/lib/helpers/string.ts | 5 +++++ .../overview/platforms/createWeb.svelte | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/lib/helpers/string.ts b/src/lib/helpers/string.ts index 2ef6ac191..4ef014dd5 100644 --- a/src/lib/helpers/string.ts +++ b/src/lib/helpers/string.ts @@ -48,3 +48,8 @@ const formatter = Intl.NumberFormat('en', { export function formatNum(number: number): string { return formatter.format(number); } + +/** + * Returns a regex to check hostname validity. Supports wildcards too! + */ +export const hostnameRegex = String.raw`(\*)|(\*\.)?(?!-)[A-Za-z0-9\-]+([\-\.]{1}[a-z0-9]+)*\.[A-Za-z]{2,18}|localhost`; diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index 0274f651b..a88afe901 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -45,6 +45,7 @@ AngularFrameworkIcon, JavascriptFrameworkIcon } from './components/index'; + import { hostnameRegex } from '$lib/helpers/string'; export let key; @@ -71,6 +72,7 @@ ${prefix}APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" export let platform: PlatformType = PlatformType.Flutterandroid; export let selectedFrameworkKey: string | undefined = key ? key : undefined; let hostname; + let hostnameError = false; let frameworks: Array = [ { @@ -142,6 +144,11 @@ ${prefix}APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" $: selectedFrameworkIcon = selectedFramework ? selectedFramework.icon : NoFrameworkIcon; async function createWebPlatform() { + hostnameError = !new RegExp(hostnameRegex).test(hostname); + if (hostnameError) { + return; + } + try { isCreatingPlatform = true; await sdk.forConsole.projects.createPlatform( @@ -150,7 +157,7 @@ ${prefix}APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" `${selectedFramework.label} app`, selectedFrameworkKey, undefined, - undefined + hostname ); isPlatformCreated = true; @@ -230,6 +237,7 @@ ${prefix}APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" helper="The hostname that your website will use to interact with the Appwrite APIs in production or development environments. No protocol or port number required." placeholder="localhost" bind:value={hostname} + state={hostnameError ? 'error' : 'default'} required /> Date: Tue, 18 Mar 2025 15:55:35 +0100 Subject: [PATCH 03/26] Copy change and use console component --- src/lib/elements/forms/inputText.svelte | 2 +- .../overview/platforms/createWeb.svelte | 25 +++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/lib/elements/forms/inputText.svelte b/src/lib/elements/forms/inputText.svelte index 263622b62..5c24a2f34 100644 --- a/src/lib/elements/forms/inputText.svelte +++ b/src/lib/elements/forms/inputText.svelte @@ -14,7 +14,7 @@ export let autocomplete = false; export let maxlength: number = null; - let error: string; + export let error: string; const handleInvalid = (event: Event) => { event.preventDefault(); diff --git a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte index a88afe901..cbcec9b40 100644 --- a/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte +++ b/src/routes/(console)/project-[project]/overview/platforms/createWeb.svelte @@ -12,9 +12,10 @@ InlineCode, Card, Button, - Input + Input, + Tooltip } from '@appwrite.io/pink-svelte'; - import { Form } from '$lib/elements/forms'; + import { Form, InputText } from '$lib/elements/forms'; import { IconVue, IconAppwrite, @@ -231,14 +232,22 @@ ${prefix}APPWRITE_PUBLIC_ENDPOINT = "${sdk.forProject.client.config.endpoint}" {#if !isChangingFramework} -
+
+ error={hostnameError && 'Please enter a valid hostname'} + bind:value={hostname}> + + + + The hostname that your website will use to interact with the + Appwrite APIs in production or development environments. No + protocol or port number required. + + + Create platform Date: Thu, 20 Mar 2025 12:02:26 +0100 Subject: [PATCH 04/26] fix: tables --- src/lib/components/viewSelector.svelte | 18 ++++++++++-------- src/lib/constants.ts | 4 ++-- src/lib/helpers/types.ts | 1 + .../sites/site-[site]/deployments/store.ts | 16 +++++++++------- .../sites/site-[site]/domains/store.ts | 6 +++--- .../sites/site-[site]/logs/store.ts | 15 ++++++++------- .../sites/site-[site]/logs/table.svelte | 14 ++++++++------ 7 files changed, 41 insertions(+), 33 deletions(-) diff --git a/src/lib/components/viewSelector.svelte b/src/lib/components/viewSelector.svelte index b97808b05..75053d816 100644 --- a/src/lib/components/viewSelector.svelte +++ b/src/lib/components/viewSelector.svelte @@ -96,14 +96,16 @@ {#each $columns as column} - (column.hide = !column.hide)} - checked={!column.hide} - disabled={allowNoColumns - ? false - : selectedColumnsNumber <= 1 && column.hide !== true} /> + {#if !column?.exclude} + (column.hide = !column.hide)} + checked={!column.hide} + disabled={allowNoColumns + ? false + : selectedColumnsNumber <= 1 && column.hide !== true} /> + {/if} {/each} diff --git a/src/lib/constants.ts b/src/lib/constants.ts index b363b1dce..a038fd15f 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -380,13 +380,13 @@ export const scopes: { }, { scope: 'log.read', - description: "Access to read your sites's logs", + description: "Access to read your sites's logs", category: 'Sites', icon: 'globe' }, { scope: 'log.write', - description: "Access to execute your project's sites", + description: "Access to delete your site's logs", category: 'Sites', icon: 'globe' } diff --git a/src/lib/helpers/types.ts b/src/lib/helpers/types.ts index 664871d71..99fd0cb4d 100644 --- a/src/lib/helpers/types.ts +++ b/src/lib/helpers/types.ts @@ -31,6 +31,7 @@ export type Column = PinkColumn & { array?: boolean; format?: string; show?: boolean; + exclude?: boolean; elements?: string[] | { value: string | number; label: string }[]; }; diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts index 4dba46d76..c0da6dbc3 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts @@ -4,12 +4,12 @@ import type { Column } from '$lib/helpers/types'; export const showCreateDeployment: Writable = writable(false); export const columns = writable([ - { id: '$id', title: 'Deployment ID', type: 'string', width: 200 }, + { id: '$id', title: 'Deployment ID', type: 'string', width: { min: 200, max: 250 } }, { id: 'status', title: 'Status', type: 'enum', - width: 110, + width: { min: 90, max: 130 }, array: true, format: 'enum', elements: ['ready', 'processing', 'building', 'waiting', 'cancelled', 'failed'] @@ -19,7 +19,8 @@ export const columns = writable([ id: 'buildDuration', title: 'Build duration', type: 'integer', - width: 90, + width: { min: 110, max: 170 }, + elements: [ { value: 15, @@ -41,7 +42,7 @@ export const columns = writable([ title: 'Source size', type: 'integer', hide: true, - width: 140, + width: { min: 110, max: 170 }, elements: [ { value: 2 * 1000 * 1000, @@ -62,13 +63,13 @@ export const columns = writable([ title: 'Build size', type: 'integer', filter: false, - width: 80 + width: { min: 90, max: 140 } }, { id: 'type', title: 'Source', type: 'string', - width: 90, + width: { min: 90, max: 140 }, array: true, format: 'enum', elements: [ @@ -81,7 +82,8 @@ export const columns = writable([ id: '$updatedAt', title: 'Updated', type: 'datetime', - width: 150, + width: { min: 150, max: 180 }, + format: 'datetime' } ]); diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/domains/store.ts b/src/routes/(console)/project-[project]/sites/site-[site]/domains/store.ts index a31c0f7fd..125717ded 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/domains/store.ts +++ b/src/routes/(console)/project-[project]/sites/site-[site]/domains/store.ts @@ -7,19 +7,19 @@ export const columns = writable([ title: 'Domain', type: 'string', format: 'string', - width: { min: 120, max: 400 } + width: { min: 200, max: 600 } }, { id: 'redirectUrl', title: 'Redirect to', type: 'string', - width: { min: 120, max: 200 } + width: { min: 120, max: 300 } }, { id: 'deploymentVcsProviderBranch', title: 'Production branch', type: 'string', - width: { min: 70, max: 150 } + width: { min: 90, max: 150 } } ]); diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/logs/store.ts b/src/routes/(console)/project-[project]/sites/site-[site]/logs/store.ts index d304f44c2..f76615480 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/logs/store.ts +++ b/src/routes/(console)/project-[project]/sites/site-[site]/logs/store.ts @@ -2,12 +2,12 @@ import type { Column } from '$lib/helpers/types'; import { writable } from 'svelte/store'; export const columns = writable([ - { id: '$id', title: 'Log ID', type: 'string', width: 200 }, + { id: '$id', title: 'Log ID', type: 'string', width: { min: 200, max: 250 } }, { id: 'requestPath', title: 'Path', type: 'string', - width: 90, + width: { min: 500, max: 900 }, format: 'string' }, @@ -15,7 +15,7 @@ export const columns = writable([ id: 'trigger', title: 'Trigger', type: 'string', - hide: true, + exclude: true, width: 90, array: true, format: 'enum', @@ -30,7 +30,7 @@ export const columns = writable([ id: 'requestMethod', title: 'Method', type: 'string', - hide: true, + exclude: true, width: 70, array: true, format: 'enum', @@ -40,7 +40,7 @@ export const columns = writable([ id: 'responseStatusCode', title: 'Status code', type: 'integer', - hide: true, + exclude: true, width: 100, format: 'integer', elements: [ @@ -84,13 +84,14 @@ export const columns = writable([ label: 'more than 30 seconds' } ], - filter: false + filter: false, + exclude: true }, { id: '$createdAt', title: 'Created', + width: { min: 150, max: 180 }, type: 'datetime', - width: 120, format: 'datetime', elements: [ { diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/logs/table.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/logs/table.svelte index 4ea14e5e3..573c61759 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/logs/table.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/logs/table.svelte @@ -15,7 +15,7 @@ - {#each columns as { id, title }} + {#each columns.filter((c) => !c.exclude) as { id, title }} {title} {/each} @@ -26,7 +26,7 @@ openSheet = true; selectedLogId = log.$id; }}> - {#each columns as column} + {#each columns.filter((c) => !c.exclude) as column} {#if column.id === '$id'} {#key column.id} @@ -38,10 +38,12 @@ {log.responseStatusCode} {:else if column.id === 'requestPath'} - = 400 ? 'error' : 'success'} - content={log.responseStatusCode.toString()} /> +
+ = 400 ? 'error' : 'success'} + content={log.responseStatusCode.toString()} /> +
{log.requestMethod} From 8a012a5b6735071316a2c4ce82fa97cda1fd4255 Mon Sep 17 00:00:00 2001 From: Arman Date: Thu, 20 Mar 2025 12:23:46 +0100 Subject: [PATCH 05/26] fix: logs copy --- .../sites/(components)/logs.svelte | 15 ++++++++++++++- .../sites/create-site/deploying/+page.svelte | 3 ++- .../sites/create-site/manual/+page.svelte | 2 -- .../sites/create-site/manual/aside.svelte | 18 ++++++++++-------- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/routes/(console)/project-[project]/sites/(components)/logs.svelte b/src/routes/(console)/project-[project]/sites/(components)/logs.svelte index 5ba64f95d..8a13f6a16 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/logs.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/logs.svelte @@ -33,6 +33,7 @@ export let hideScrollButtons = false; export let height = 'auto'; export let fullHeight = false; + export let emptyCopy = 'No logs available'; let { status, buildLogs } = deployment; @@ -56,6 +57,18 @@ }); return () => unsubscribe(); }); + + function setCopy() { + if (status === 'failed') { + return 'Your deployment has failed.'; + } else if (status === 'building') { + return 'Build is starting.'; + } else if (status === 'processing') { + return 'Your deployment is processing.'; + } else { + return emptyCopy; + } + } @@ -79,7 +92,7 @@ {fullHeight} {height} showScrollButton={!hideScrollButtons} - logs={buildLogs || 'No logs available'} + logs={buildLogs || setCopy()} bind:theme={$app.themeInUse} /> {/key} diff --git a/src/routes/(console)/project-[project]/sites/create-site/deploying/+page.svelte b/src/routes/(console)/project-[project]/sites/create-site/deploying/+page.svelte index 8bc9dca99..a02633697 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/deploying/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/deploying/+page.svelte @@ -39,7 +39,8 @@ bind:deployment={data.deployment} bind:site={data.site} hideScrollButtons - height="calc(100dvh - 430px)" /> + height="calc(100dvh - 430px)" + emptyCopy="No logs available yet..." />
diff --git a/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte b/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte index 658353802..59009763f 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte @@ -130,8 +130,6 @@ title="Create site" bind:showExitModal href={`${base}/project-${$page.params.project}/sites/`} - column - columnSize="s" confirmExit>
diff --git a/src/routes/(console)/project-[project]/sites/create-site/manual/aside.svelte b/src/routes/(console)/project-[project]/sites/create-site/manual/aside.svelte index 8695ffa1c..7cd0bd8df 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/manual/aside.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/manual/aside.svelte @@ -1,30 +1,32 @@ Don't have a site yet? - Download our starter kit, and deploy in seconds. + Deploy the JavaScript starter template in seconds. - preview + alt="preview" /> --> - From dcee42d81ccdcb878a44b4d6295c76c83587313c Mon Sep 17 00:00:00 2001 From: ernstmul Date: Thu, 20 Mar 2025 13:51:59 +0100 Subject: [PATCH 06/26] Fix sign in page with review --- src/lib/layout/unauthenticated.svelte | 43 +++++++++++++-------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/src/lib/layout/unauthenticated.svelte b/src/lib/layout/unauthenticated.svelte index 5497d4991..d3efc5c40 100644 --- a/src/lib/layout/unauthenticated.svelte +++ b/src/lib/layout/unauthenticated.svelte @@ -9,7 +9,7 @@ import { app } from '$lib/stores/app'; import type { Campaign } from '$lib/stores/campaigns'; import { getApiEndpoint } from '$lib/stores/sdk'; - import { Typography } from '@appwrite.io/pink-svelte'; + import { Typography, Layout } from '@appwrite.io/pink-svelte'; export const imgLight = LoginLight; export const imgDark = LoginDark; @@ -100,15 +100,11 @@ {:else if variation === 'review'} -
-
- {generateTitle()} -
- -

{generateDesc()}

-
- +
+ + {generateTitle()} + {generateDesc()} +

{currentReview.review}

@@ -127,18 +123,21 @@
- - {#if campaign?.footer} - - {/if} -
+ + {#if campaign?.footer} + + {/if} +
+ {/if}
From aec240b3f4cf0f6d09d51a25ee30c7544a46a834 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Thu, 20 Mar 2025 14:09:38 +0100 Subject: [PATCH 07/26] Fix redirect flow first showing org page before going to correct page --- src/routes/(public)/(guest)/login/+page.svelte | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/routes/(public)/(guest)/login/+page.svelte b/src/routes/(public)/(guest)/login/+page.svelte index 207d91927..2768710fd 100644 --- a/src/routes/(public)/(guest)/login/+page.svelte +++ b/src/routes/(public)/(guest)/login/+page.svelte @@ -22,7 +22,7 @@ try { disabled = true; await sdk.forConsole.account.createEmailPasswordSession(mail, pass); - await invalidate(Dependencies.ACCOUNT); + if ($user) { trackEvent(Submit.AccountLogin, { mfa_used: 'none' }); addNotification({ @@ -30,12 +30,7 @@ message: 'Successfully logged in.' }); } - if ($redirectTo) { - window.location.href = $redirectTo; - return; - } - await invalidate(Dependencies.ACCOUNT); if (data?.couponData?.code) { trackEvent(Submit.AccountCreate, { campaign_name: data?.couponData?.code }); await goto(`${base}/apply-credit?code=${data?.couponData?.code}`); @@ -45,6 +40,13 @@ await goto(`${base}/apply-credit?campaign=${data.campaign?.$id}`); return; } + if ($redirectTo) { + window.location.href = $redirectTo; + return; + } + + // no specific redirect, so redirect will happen through invalidating the account + await invalidate(Dependencies.ACCOUNT); } catch (error) { disabled = false; addNotification({ From 56c3be211ec2c47c59f7518cff9d912da1af5d09 Mon Sep 17 00:00:00 2001 From: Arman Date: Thu, 20 Mar 2025 14:46:31 +0100 Subject: [PATCH 08/26] fix: linter issues --- src/lib/components/git/productionBranchFieldset.svelte | 2 +- .../functions/create-function/(components)/details.svelte | 2 +- .../project-[project]/sites/create-site/details.svelte | 2 +- .../sites/site-[site]/domains/add-domain/+page.svelte | 2 +- .../sites/site-[site]/settings/updateTimeout.svelte | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/components/git/productionBranchFieldset.svelte b/src/lib/components/git/productionBranchFieldset.svelte index f6de639ab..3f4d6d09c 100644 --- a/src/lib/components/git/productionBranchFieldset.svelte +++ b/src/lib/components/git/productionBranchFieldset.svelte @@ -5,7 +5,7 @@ import { sdk } from '$lib/stores/sdk'; import { sortBranches } from '$lib/stores/vcs'; - export let branch: string; + export let branch = 'main'; export let rootDir: string; export let silentMode: boolean; export let installationId: string; diff --git a/src/routes/(console)/project-[project]/functions/create-function/(components)/details.svelte b/src/routes/(console)/project-[project]/functions/create-function/(components)/details.svelte index 5d0b031c7..baa9692af 100644 --- a/src/routes/(console)/project-[project]/functions/create-function/(components)/details.svelte +++ b/src/routes/(console)/project-[project]/functions/create-function/(components)/details.svelte @@ -40,7 +40,7 @@ required placeholder="Enter name" /> {#if showCustomId} - + {:else}
(showCustomId = !showCustomId)}> diff --git a/src/routes/(console)/project-[project]/sites/create-site/details.svelte b/src/routes/(console)/project-[project]/sites/create-site/details.svelte index 7bf4928e1..856630f6b 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/details.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/details.svelte @@ -32,7 +32,7 @@ required placeholder="Enter name" /> {#if showCustomId} - + {:else}
(showCustomId = !showCustomId)}> diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/domains/add-domain/+page.svelte index 62d8db83d..07d34a827 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/domains/add-domain/+page.svelte @@ -102,7 +102,7 @@ Point this domain to a specific branch in your repository. diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/settings/updateTimeout.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/settings/updateTimeout.svelte index 90c29e5bb..70cdf94e7 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/settings/updateTimeout.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/settings/updateTimeout.svelte @@ -7,7 +7,7 @@ import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import { onMount } from 'svelte'; - import { BuildRuntime, Framework, type Models } from '@appwrite.io/console'; + import { Adapter, BuildRuntime, Framework, type Models } from '@appwrite.io/console'; export let site: Models.Site; @@ -27,7 +27,7 @@ site.buildCommand || undefined, site.outputDirectory || undefined, (site?.buildRuntime as BuildRuntime) || undefined, - site.adapter, + site.adapter as Adapter, site.fallbackFile || undefined, site.installationId || undefined, site.providerRepositoryId || undefined, From 3fe4938493a7bc10d770e56ec8881c44c0f9138a Mon Sep 17 00:00:00 2001 From: Arman Date: Thu, 20 Mar 2025 15:16:12 +0100 Subject: [PATCH 09/26] feat: re-enable site --- .../sites/create-site/manual/+page.svelte | 3 +-- .../sites/create-site/manual/+page.ts | 5 ++++- .../sites/create-site/manual/aside.svelte | 19 +++++++++++-------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte b/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte index 59009763f..5cf12a7b6 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte @@ -125,7 +125,6 @@ Create site - Appwrite - -