From 9f607ebd6f0323ae97a69a5bc5ac084a55ec050b Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 12 Feb 2025 15:37:31 +0530 Subject: [PATCH 01/19] =?UTF-8?q?update:=20preload=20the=20flags=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/elements/flag.svelte | 9 ++---- .../organization-[organization]/+page.svelte | 31 ++++++++++++++----- .../organization-[organization]/store.ts | 5 ++- .../wizard/step1.svelte | 7 +++-- .../wizard/step2.svelte | 3 +- .../wizard/store.ts | 3 -- 6 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/lib/elements/flag.svelte b/src/lib/elements/flag.svelte index 560df6a5c..efb284cc8 100644 --- a/src/lib/elements/flag.svelte +++ b/src/lib/elements/flag.svelte @@ -12,13 +12,10 @@ export function getFlag(country: string, width: number, height: number, quality: number) { if (!isValueOfStringEnum(Flag, country)) return ''; - let flag = sdk.forConsole.avatars + return sdk.forConsole.avatars .getFlag(country, width * 2, height * 2, quality) - ?.toString(); - flag?.includes('&project=') - ? (flag = flag.replace('&project=', '&mode=admin')) - : flag + '&mode=admin'; - return flag; + ?.toString() + ?.replace('&project=console', '&mode=admin'); } diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte index 76607b429..b594883e2 100644 --- a/src/routes/(console)/organization-[organization]/+page.svelte +++ b/src/routes/(console)/organization-[organization]/+page.svelte @@ -28,16 +28,17 @@ import { ID, Region } from '@appwrite.io/console'; import { openImportWizard } from '../project-[project]/settings/migrations/(import)'; import { readOnly } from '$lib/stores/billing'; - import type { RegionList } from '$lib/sdk/billing'; import { onMount } from 'svelte'; import { organization } from '$lib/stores/organization'; import { canWriteProjects } from '$lib/stores/roles'; import { checkPricingRefAndRedirect } from '$lib/helpers/pricingRedirect'; + import { regions as regionsStore } from '$routes/(console)/organization-[organization]/store'; export let data; - let addOrganization = false; + $: regionFlagUrls = []; let showCreate = false; + let addOrganization = false; const getPlatformInfo = (platform: string) => { let name: string, icon: string; @@ -80,11 +81,22 @@ ); } + function preloadFlagUrls() { + // url is same as in Flag#getFlag component. + // make sure to use the same for correct preloading! + regionFlagUrls = $regionsStore.regions.map((region) => { + return `${sdk.forConsole.client.config.endpoint}/avatars/flags/${region.flag}?width=80&height=60&quality=100&mode=admin`; + }); + } + function handleCreateProject() { + preloadFlagUrls(); + if (!$canWriteProjects) return; if (isCloud) wizard.start(Create); else showCreate = true; } + $: $registerCommands([ { label: 'Create project', @@ -120,20 +132,25 @@ } }; - let regions: RegionList; onMount(async () => { if (isCloud) { - regions = await sdk.forConsole.billing.listRegions(); + const regions = await sdk.forConsole.billing.listRegions(); + regionsStore.set(regions); checkPricingRefAndRedirect($page.url.searchParams); } }); function findRegion(project: Models.Project) { - const region = regions.regions.find((region) => region.$id === project.region); - return region; + return $regionsStore?.regions?.find((region) => region.$id === project.region); } + + {#each regionFlagUrls as image} + + {/each} + + {#if $organization?.$id}
@@ -198,7 +215,7 @@ {/if} - {#if isCloud && regions} + {#if isCloud && $regionsStore?.regions} {@const region = findRegion(project)} {region?.name} diff --git a/src/routes/(console)/organization-[organization]/store.ts b/src/routes/(console)/organization-[organization]/store.ts index 28e9e735a..50f18ce13 100644 --- a/src/routes/(console)/organization-[organization]/store.ts +++ b/src/routes/(console)/organization-[organization]/store.ts @@ -1,5 +1,8 @@ import { page } from '$app/stores'; import type { Models } from '@appwrite.io/console'; -import { derived } from 'svelte/store'; +import { derived, writable } from 'svelte/store'; +import type { RegionList } from '$lib/sdk/billing'; + +export const regions = writable(undefined); export const projects = derived(page, ($page) => $page.data?.projects as Models.ProjectList); diff --git a/src/routes/(console)/organization-[organization]/wizard/step1.svelte b/src/routes/(console)/organization-[organization]/wizard/step1.svelte index 331a27fc3..d35468d77 100644 --- a/src/routes/(console)/organization-[organization]/wizard/step1.svelte +++ b/src/routes/(console)/organization-[organization]/wizard/step1.svelte @@ -4,11 +4,14 @@ import { InputText, FormList } from '$lib/elements/forms'; import { WizardStep } from '$lib/layout'; import { sdk } from '$lib/stores/sdk'; - import { createProject, regions } from './store'; + import { createProject } from './store'; + import { regions } from '$routes/(console)/organization-[organization]/store'; let showCustomId = false; - sdk.forConsole.billing.listRegions().then(regions.set); + if (!$regions?.regions) { + sdk.forConsole.billing.listRegions().then(regions.set); + } diff --git a/src/routes/(console)/organization-[organization]/wizard/step2.svelte b/src/routes/(console)/organization-[organization]/wizard/step2.svelte index 37841d20b..1ac76706e 100644 --- a/src/routes/(console)/organization-[organization]/wizard/step2.svelte +++ b/src/routes/(console)/organization-[organization]/wizard/step2.svelte @@ -4,11 +4,12 @@ import { WizardStep } from '$lib/layout'; import { sdk } from '$lib/stores/sdk'; import { onMount } from 'svelte'; - import { createProject, regions } from './store'; + import { createProject } from './store'; import type { Region } from '$lib/sdk/billing'; import { addNotification } from '$lib/stores/notifications'; import type { Models } from '@appwrite.io/console'; import { page } from '$app/stores'; + import { regions } from '$routes/(console)/organization-[organization]/store'; let prefs: Models.Preferences; diff --git a/src/routes/(console)/organization-[organization]/wizard/store.ts b/src/routes/(console)/organization-[organization]/wizard/store.ts index 779754239..d79bd1ded 100644 --- a/src/routes/(console)/organization-[organization]/wizard/store.ts +++ b/src/routes/(console)/organization-[organization]/wizard/store.ts @@ -1,4 +1,3 @@ -import type { RegionList } from '$lib/sdk/billing'; import { writable } from 'svelte/store'; export const createProject = writable<{ @@ -10,5 +9,3 @@ export const createProject = writable<{ name: null, region: 'fra' }); - -export const regions = writable(undefined); From 8895e0b7dbec2e60b9cc5b55f907dfa2d4cfa33a Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 12 Feb 2025 15:51:54 +0530 Subject: [PATCH 02/19] improve: preload call site. --- .../organization-[organization]/+page.svelte | 17 ----------------- .../organization-[organization]/store.ts | 6 ++++++ .../wizard/step1.svelte | 8 +++++++- 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte index b594883e2..91f9fbfbd 100644 --- a/src/routes/(console)/organization-[organization]/+page.svelte +++ b/src/routes/(console)/organization-[organization]/+page.svelte @@ -36,7 +36,6 @@ export let data; - $: regionFlagUrls = []; let showCreate = false; let addOrganization = false; @@ -81,17 +80,7 @@ ); } - function preloadFlagUrls() { - // url is same as in Flag#getFlag component. - // make sure to use the same for correct preloading! - regionFlagUrls = $regionsStore.regions.map((region) => { - return `${sdk.forConsole.client.config.endpoint}/avatars/flags/${region.flag}?width=80&height=60&quality=100&mode=admin`; - }); - } - function handleCreateProject() { - preloadFlagUrls(); - if (!$canWriteProjects) return; if (isCloud) wizard.start(Create); else showCreate = true; @@ -145,12 +134,6 @@ } - - {#each regionFlagUrls as image} - - {/each} - - {#if $organization?.$id}
diff --git a/src/routes/(console)/organization-[organization]/store.ts b/src/routes/(console)/organization-[organization]/store.ts index 50f18ce13..063f48f06 100644 --- a/src/routes/(console)/organization-[organization]/store.ts +++ b/src/routes/(console)/organization-[organization]/store.ts @@ -2,7 +2,13 @@ import { page } from '$app/stores'; import type { Models } from '@appwrite.io/console'; import { derived, writable } from 'svelte/store'; import type { RegionList } from '$lib/sdk/billing'; +import { sdk } from '$lib/stores/sdk'; export const regions = writable(undefined); +export const regionFlagUrls = derived(regions, ($regions) => { + return $regions?.regions?.map((region) => { + return `${sdk.forConsole.client.config.endpoint}/avatars/flags/${region.flag}?width=80&height=60&quality=100&mode=admin`; + }); +}); export const projects = derived(page, ($page) => $page.data?.projects as Models.ProjectList); diff --git a/src/routes/(console)/organization-[organization]/wizard/step1.svelte b/src/routes/(console)/organization-[organization]/wizard/step1.svelte index d35468d77..4cf878611 100644 --- a/src/routes/(console)/organization-[organization]/wizard/step1.svelte +++ b/src/routes/(console)/organization-[organization]/wizard/step1.svelte @@ -5,7 +5,7 @@ import { WizardStep } from '$lib/layout'; import { sdk } from '$lib/stores/sdk'; import { createProject } from './store'; - import { regions } from '$routes/(console)/organization-[organization]/store'; + import { regionFlagUrls, regions } from '$routes/(console)/organization-[organization]/store'; let showCustomId = false; @@ -14,6 +14,12 @@ } + + {#each $regionFlagUrls as image} + + {/each} + + Details From cacb2d25f80f01041d5dc4c466eeb500c5bbbf70 Mon Sep 17 00:00:00 2001 From: Darshan Date: Sun, 16 Feb 2025 14:40:34 +0530 Subject: [PATCH 03/19] update: safe-fallback. --- src/routes/(console)/organization-[organization]/store.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/routes/(console)/organization-[organization]/store.ts b/src/routes/(console)/organization-[organization]/store.ts index 063f48f06..aae6830f4 100644 --- a/src/routes/(console)/organization-[organization]/store.ts +++ b/src/routes/(console)/organization-[organization]/store.ts @@ -6,6 +6,8 @@ import { sdk } from '$lib/stores/sdk'; export const regions = writable(undefined); export const regionFlagUrls = derived(regions, ($regions) => { + if (!$regions?.regions?.length) return []; + return $regions?.regions?.map((region) => { return `${sdk.forConsole.client.config.endpoint}/avatars/flags/${region.flag}?width=80&height=60&quality=100&mode=admin`; }); From 2f9138104748394e4c7ad4e20f804e9b6fadc37d Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Tue, 18 Feb 2025 05:51:09 +0000 Subject: [PATCH 04/19] Feat: make budget cap nullable --- src/routes/(console)/create-organization/+page.svelte | 2 +- .../organization-[organization]/billing/+page.svelte | 2 -- .../billing/budgetAlert.svelte | 10 ++++++++-- .../billing/budgetCap.svelte | 7 +++++-- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/routes/(console)/create-organization/+page.svelte b/src/routes/(console)/create-organization/+page.svelte index 56c9a9335..03cb7f2d8 100644 --- a/src/routes/(console)/create-organization/+page.svelte +++ b/src/routes/(console)/create-organization/+page.svelte @@ -168,7 +168,7 @@ trackEvent(Submit.OrganizationCreate, { plan: tierToPlan(billingPlan)?.name, - budget_cap_enabled: !!billingBudget, + budget_cap_enabled: billingBudget != null, members_invited: collaborators?.length }); diff --git a/src/routes/(console)/organization-[organization]/billing/+page.svelte b/src/routes/(console)/organization-[organization]/billing/+page.svelte index c370fbf31..2d3772358 100644 --- a/src/routes/(console)/organization-[organization]/billing/+page.svelte +++ b/src/routes/(console)/organization-[organization]/billing/+page.svelte @@ -1,7 +1,6 @@
@@ -107,6 +110,7 @@
diff --git a/src/routes/(console)/organization-[organization]/billing/budgetCap.svelte b/src/routes/(console)/organization-[organization]/billing/budgetCap.svelte index b9c9b5eb3..9433bd104 100644 --- a/src/routes/(console)/organization-[organization]/billing/budgetCap.svelte +++ b/src/routes/(console)/organization-[organization]/billing/budgetCap.svelte @@ -9,13 +9,14 @@ import { organization, currentPlan } from '$lib/stores/organization'; import { sdk } from '$lib/stores/sdk'; import { onMount } from 'svelte'; + import BudgetAlert from './budgetAlert.svelte'; let capActive = false; let budget: number; onMount(() => { budget = $organization?.billingBudget; - capActive = !!$organization?.billingBudget; + capActive = $organization?.billingBudget != null; }); async function updateBudget() { @@ -44,7 +45,7 @@ } $: if (!capActive) { - budget = 0; + budget = null; } @@ -113,3 +114,5 @@ + + 0} /> From 1f8fb9ef5acfc7af61e0610ac22950b81331c362 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Tue, 18 Feb 2025 05:55:04 +0000 Subject: [PATCH 05/19] Fix: upgrade vitest to fix audit error --- package.json | 2 +- pnpm-lock.yaml | 86 ++++++++++++++++++++++++++++---------------------- 2 files changed, 49 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 348f13dbe..d942ead4e 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "tslib": "^2.8.1", "typescript": "^5.6.3", "vite": "^5.4.11", - "vitest": "^1.6.0" + "vitest": "^1.6.1" }, "type": "module", "packageManager": "pnpm@9.7.0+sha512.dc09430156b427f5ecfc79888899e1c39d2d690f004be70e05230b72cb173d96839587545d09429b55ac3c429c801b4dc3c0e002f653830a420fa2dd4e3cf9cf" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 911bb0c01..e0ede202f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,7 +95,7 @@ importers: version: 6.6.3 '@testing-library/svelte': specifier: ^5.2.4 - version: 5.2.4(svelte@4.2.19)(vite@5.4.11(@types/node@22.9.0)(sass@1.81.0))(vitest@1.6.0(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0)) + version: 5.2.4(svelte@4.2.19)(vite@5.4.11(@types/node@22.9.0)(sass@1.81.0))(vitest@1.6.1) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) @@ -116,7 +116,7 @@ importers: version: 7.18.0(eslint@8.57.1)(typescript@5.6.3) '@vitest/ui': specifier: ^1.6.0 - version: 1.6.0(vitest@1.6.0) + version: 1.6.0(vitest@1.6.1) eslint: specifier: ^8.57.1 version: 8.57.1 @@ -166,8 +166,8 @@ importers: specifier: ^5.4.11 version: 5.4.11(@types/node@22.9.0)(sass@1.81.0) vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0) + specifier: ^1.6.1 + version: 1.6.1(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0) packages: @@ -1412,17 +1412,17 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + '@vitest/expect@1.6.1': + resolution: {integrity: sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==} - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + '@vitest/runner@1.6.1': + resolution: {integrity: sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==} - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + '@vitest/snapshot@1.6.1': + resolution: {integrity: sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==} - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + '@vitest/spy@1.6.1': + resolution: {integrity: sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==} '@vitest/ui@1.6.0': resolution: {integrity: sha512-k3Lyo+ONLOgylctiGovRKy7V4+dIN2yxstX3eY5cWFXH6WP+ooVX79YSyi0GagdTQzLmT43BF27T0s6dOIPBXA==} @@ -1432,6 +1432,9 @@ packages: '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + '@vitest/utils@1.6.1': + resolution: {integrity: sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==} + '@vue/compiler-core@3.5.8': resolution: {integrity: sha512-Uzlxp91EPjfbpeO5KtC0KnXPkuTfGsNDeaKQJxQN718uz+RqDYarEf7UhQJGK+ZYloD2taUbHTI2J4WrUaZQNA==} @@ -3589,8 +3592,8 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + vite-node@1.6.1: + resolution: {integrity: sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -3633,15 +3636,15 @@ packages: vite: optional: true - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + vitest@1.6.1: + resolution: {integrity: sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 + '@vitest/browser': 1.6.1 + '@vitest/ui': 1.6.1 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -5075,13 +5078,13 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/svelte@5.2.4(svelte@4.2.19)(vite@5.4.11(@types/node@22.9.0)(sass@1.81.0))(vitest@1.6.0(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0))': + '@testing-library/svelte@5.2.4(svelte@4.2.19)(vite@5.4.11(@types/node@22.9.0)(sass@1.81.0))(vitest@1.6.1)': dependencies: '@testing-library/dom': 10.4.0 svelte: 4.2.19 optionalDependencies: vite: 5.4.11(@types/node@22.9.0)(sass@1.81.0) - vitest: 1.6.0(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0) + vitest: 1.6.1(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -5259,29 +5262,29 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitest/expect@1.6.0': + '@vitest/expect@1.6.1': dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 + '@vitest/spy': 1.6.1 + '@vitest/utils': 1.6.1 chai: 4.5.0 - '@vitest/runner@1.6.0': + '@vitest/runner@1.6.1': dependencies: - '@vitest/utils': 1.6.0 + '@vitest/utils': 1.6.1 p-limit: 5.0.0 pathe: 1.1.2 - '@vitest/snapshot@1.6.0': + '@vitest/snapshot@1.6.1': dependencies: magic-string: 0.30.13 pathe: 1.1.2 pretty-format: 29.7.0 - '@vitest/spy@1.6.0': + '@vitest/spy@1.6.1': dependencies: tinyspy: 2.2.1 - '@vitest/ui@1.6.0(vitest@1.6.0)': + '@vitest/ui@1.6.0(vitest@1.6.1)': dependencies: '@vitest/utils': 1.6.0 fast-glob: 3.3.2 @@ -5290,7 +5293,7 @@ snapshots: pathe: 1.1.2 picocolors: 1.1.1 sirv: 2.0.4 - vitest: 1.6.0(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0) + vitest: 1.6.1(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0) '@vitest/utils@1.6.0': dependencies: @@ -5299,6 +5302,13 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 + '@vitest/utils@1.6.1': + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + '@vue/compiler-core@3.5.8': dependencies: '@babel/parser': 7.26.2 @@ -7644,7 +7654,7 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - vite-node@1.6.0(@types/node@22.9.0)(sass@1.81.0): + vite-node@1.6.1(@types/node@22.9.0)(sass@1.81.0): dependencies: cac: 6.7.14 debug: 4.3.7 @@ -7676,13 +7686,13 @@ snapshots: optionalDependencies: vite: 5.4.11(@types/node@22.9.0)(sass@1.81.0) - vitest@1.6.0(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0): + vitest@1.6.1(@types/node@22.9.0)(@vitest/ui@1.6.0)(jsdom@22.1.0)(sass@1.81.0): dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 + '@vitest/expect': 1.6.1 + '@vitest/runner': 1.6.1 + '@vitest/snapshot': 1.6.1 + '@vitest/spy': 1.6.1 + '@vitest/utils': 1.6.1 acorn-walk: 8.3.4 chai: 4.5.0 debug: 4.3.7 @@ -7696,11 +7706,11 @@ snapshots: tinybench: 2.9.0 tinypool: 0.8.4 vite: 5.4.11(@types/node@22.9.0)(sass@1.81.0) - vite-node: 1.6.0(@types/node@22.9.0)(sass@1.81.0) + vite-node: 1.6.1(@types/node@22.9.0)(sass@1.81.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.9.0 - '@vitest/ui': 1.6.0(vitest@1.6.0) + '@vitest/ui': 1.6.0(vitest@1.6.1) jsdom: 22.1.0 transitivePeerDependencies: - less From 181b71f178229f7b8a70c52c613751c53cd26152 Mon Sep 17 00:00:00 2001 From: ChiragAgg5k Date: Sat, 22 Feb 2025 00:36:02 +0530 Subject: [PATCH 06/19] chore: gracefully handle username being null --- src/lib/commandCenter/panels/ai.svelte | 4 ++-- src/routes/(console)/account/deleteAccount.svelte | 4 ++-- src/routes/(console)/account/updateName.svelte | 2 +- .../auth/user-[user]/deleteAllSessions.svelte | 4 ++-- .../project-[project]/auth/user-[user]/deleteUser.svelte | 8 +++++--- .../project-[project]/auth/user-[user]/updateName.svelte | 4 ++-- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/lib/commandCenter/panels/ai.svelte b/src/lib/commandCenter/panels/ai.svelte index da09311f7..c4327962d 100644 --- a/src/lib/commandCenter/panels/ai.svelte +++ b/src/lib/commandCenter/panels/ai.svelte @@ -179,7 +179,7 @@ {#if $isLoading || answer}
-
{getInitials($user.name)}
+
{getInitials($user.name || $user.email)}

{previousQuestion}

@@ -229,7 +229,7 @@