From c83bf480cd6ea4664c4668698574ec336031a703 Mon Sep 17 00:00:00 2001 From: Darshan Date: Sun, 31 Aug 2025 11:23:26 +0530 Subject: [PATCH 01/30] fix: alignments, remove total table stats. --- src/lib/layout/container.svelte | 54 +++++++++++++------ .../database-[database]/+page.svelte | 2 +- .../database-[database]/backups/+page.svelte | 2 +- .../database-[database]/settings/+page.svelte | 2 +- .../usage/[[period]]/+page.svelte | 41 +++++--------- 5 files changed, 54 insertions(+), 47 deletions(-) diff --git a/src/lib/layout/container.svelte b/src/lib/layout/container.svelte index 8bb2983dd..a8e6282eb 100644 --- a/src/lib/layout/container.svelte +++ b/src/lib/layout/container.svelte @@ -1,23 +1,40 @@ -
+
- + {@render children?.()}
@@ -90,6 +108,12 @@ } } + &.paddingInlineEndDouble { + @media (min-width: 1024px) { + padding-inline-end: calc(2 * 2.75rem) !important; + } + } + &.databasesScreen { @media (min-width: 1440px) { min-width: 1070px; diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.svelte index be123b600..5928cc880 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.svelte @@ -18,7 +18,7 @@ const databaseId = page.params.database; - + diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte index ef597992c..ee38cfab5 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte @@ -177,7 +177,7 @@ }); - +
{#if !isDisabled}
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/settings/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/settings/+page.svelte index 65e6c2b07..5efc3fe88 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/settings/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/settings/+page.svelte @@ -61,7 +61,7 @@ {#if $database} - + {$database.name} diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte index 8ae2d9073..c2aea6d9a 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte @@ -1,14 +1,8 @@ - - - - - - + + From 64f8eb9740c86fbe1a64f1aa768d69dd7557bbe5 Mon Sep 17 00:00:00 2001 From: Darshan Date: Sun, 31 Aug 2025 13:39:39 +0530 Subject: [PATCH 02/30] fix: diagnostics. --- src/lib/layout/container.svelte | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/layout/container.svelte b/src/lib/layout/container.svelte index a8e6282eb..4a4ff9beb 100644 --- a/src/lib/layout/container.svelte +++ b/src/lib/layout/container.svelte @@ -1,6 +1,7 @@ - + diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte index ee38cfab5..da868ba29 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte @@ -177,7 +177,7 @@ }); - +
{#if !isDisabled}
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte index 7b18c985c..2f68d4544 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte @@ -38,7 +38,7 @@ ].filter((tab) => !tab.disabled); - + {$database.name} diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/settings/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/settings/+page.svelte index 5efc3fe88..00c09144e 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/settings/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/settings/+page.svelte @@ -61,7 +61,7 @@ {#if $database} - + {$database.name} diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte index c2aea6d9a..84c6ff2b7 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte @@ -10,7 +10,7 @@ $: writesTotal = data.databaseWritesTotal; - + Date: Thu, 4 Sep 2025 09:28:57 +0530 Subject: [PATCH 14/30] address: rabbit's comment. --- .../database-[database]/table-[table]/rows/cell/edit.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/cell/edit.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/cell/edit.svelte index fe051b226..4f1689ea3 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/cell/edit.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/cell/edit.svelte @@ -69,5 +69,5 @@ fromSpreadsheet label={undefined} bind:formValues={row} - on:click={openSideSheet} /> + on:click={() => openSideSheet?.()} />
From 0bdccfba8836ecaa2b20ef433d8d6b6d60e6e005 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 09:42:49 +0530 Subject: [PATCH 15/30] fix: inconsistent sidebar state on mobile/tablet viewport after navigation. --- src/lib/layout/shell.svelte | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/layout/shell.svelte b/src/lib/layout/shell.svelte index 79220304b..15263ac08 100644 --- a/src/lib/layout/shell.svelte +++ b/src/lib/layout/shell.svelte @@ -18,6 +18,7 @@ import { page } from '$app/stores'; import type { Models } from '@appwrite.io/console'; import { getSidebarState, isInDatabasesRoute, updateSidebarState } from '$lib/helpers/sidebar'; + import { isTabletViewport } from '$lib/stores/viewport'; export let showHeader = true; export let showFooter = true; @@ -107,7 +108,7 @@ isInDatabasesRoute(navigation.from.route) && !isInDatabasesRoute(navigation.to.route); if (isEnteringDatabase) { - state = 'icons'; + state = $isTabletViewport ? 'closed' : 'icons'; } else if (isLeavingDatabase) { state = getSidebarState(); $noWidthTransition = false; From 55a26254f4fce3c2a24f7ceb7ed8585bd5868663 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 09:57:15 +0530 Subject: [PATCH 16/30] fix: short-circuit viewport check. --- src/lib/layout/shell.svelte | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/layout/shell.svelte b/src/lib/layout/shell.svelte index 15263ac08..3ebdadbda 100644 --- a/src/lib/layout/shell.svelte +++ b/src/lib/layout/shell.svelte @@ -103,12 +103,19 @@ * the setup around the sidebar is very tightly configured with 2 states sync. */ afterNavigate((navigation) => { + // always closed on + // mobile and tablets! + if ($isTabletViewport) { + state = 'closed'; + return; + } + const isEnteringDatabase = isInDatabasesRoute(navigation.to.route); const isLeavingDatabase = isInDatabasesRoute(navigation.from.route) && !isInDatabasesRoute(navigation.to.route); if (isEnteringDatabase) { - state = $isTabletViewport ? 'closed' : 'icons'; + state = 'icons'; } else if (isLeavingDatabase) { state = getSidebarState(); $noWidthTransition = false; From 83018ac7841ff74339edbc6d313438f45b0144bb Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 09:57:57 +0530 Subject: [PATCH 17/30] fix: edge-case where the database name is null during navigation on tablet/mobile viewports. --- .../databases/database-[database]/subNavigation.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte index 26ee8f530..1cc5f7972 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte @@ -134,7 +134,7 @@
-{:else} +{:else if data?.database?.name}
From d13ad7318de502887a6dc018aba2d77cbfae4754 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 10:09:17 +0530 Subject: [PATCH 18/30] fix: comment. --- src/lib/layout/shell.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/layout/shell.svelte b/src/lib/layout/shell.svelte index 3ebdadbda..bfc06264f 100644 --- a/src/lib/layout/shell.svelte +++ b/src/lib/layout/shell.svelte @@ -101,10 +101,10 @@ * * This needs to be handled like this because * the setup around the sidebar is very tightly configured with 2 states sync. + * + * The sidebar is **always closed** on mobile and tablet devices! */ afterNavigate((navigation) => { - // always closed on - // mobile and tablets! if ($isTabletViewport) { state = 'closed'; return; From cf9af084b12b197aa1a9a548b9d97ed0b18b8eee Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 10:19:21 +0530 Subject: [PATCH 19/30] fix: remove extra divider. --- src/lib/components/sidebar.svelte | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index 1d3dce7ed..48339a6d4 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -250,8 +250,6 @@ {/each} {#if project && $isSmallViewport} - -
Date: Thu, 4 Sep 2025 11:40:10 +0530 Subject: [PATCH 20/30] fix: pagination. --- .../billing/paymentHistory.svelte | 199 ++++++++++-------- 1 file changed, 106 insertions(+), 93 deletions(-) diff --git a/src/routes/(console)/organization-[organization]/billing/paymentHistory.svelte b/src/routes/(console)/organization-[organization]/billing/paymentHistory.svelte index 078990471..c3ace4695 100644 --- a/src/routes/(console)/organization-[organization]/billing/paymentHistory.svelte +++ b/src/routes/(console)/organization-[organization]/billing/paymentHistory.svelte @@ -27,7 +27,9 @@ IconExternalLink, IconRefresh } from '@appwrite.io/pink-icons-svelte'; + import { onMount } from 'svelte'; + let limit = $state(5); let offset = $state(0); let isLoadingInvoices = $state(false); let invoiceList: InvoiceList = $state({ @@ -35,16 +37,29 @@ total: 0 }); - const limit = 5; const endpoint = getApiEndpoint(); const hasPaymentError = $derived(invoiceList?.invoices.some((invoice) => invoice?.lastError)); - async function request() { + /** + * Special case handling for the first page! + * + * As per Damodar - `there is some logic to **hide current cycle invoice** in the endpoint`. + * + * Due to this, the first page always loads `limit - 1` invoices which is inconsistent! + * Therefore, we load `limit + 1` to counter that so the returned invoices are consistent. + */ + onMount(() => request(true)); + + async function request(patchQuery: boolean = false) { isLoadingInvoices = true; invoiceList = await sdk.forConsole.billing.listInvoices(page.params.organization, [ - Query.limit(limit), - Query.offset(offset), - Query.orderDesc('$createdAt') + Query.orderDesc('$createdAt'), + + // first page extra must have an extra limit! + Query.limit(patchQuery ? limit + 1 : limit), + + // so an invoice isn't repeated on 2nd page! + Query.offset(patchQuery ? offset : offset + 1) ]); isLoadingInvoices = false; @@ -62,12 +77,6 @@ } }); - $effect(() => { - if (offset !== null) { - request(); - } - }); - const columns = $derived([ { id: 'dueDate', width: { min: 120 } }, { id: 'status', width: { min: hasPaymentError ? 200 : 100 } }, @@ -90,7 +99,7 @@ {#if isLoadingInvoices} - {#each Array.from({ length: 2 }).keys() as index (index)} + {#each Array.from({ length: 5 }).keys() as index (index)} {#each columns as column} @@ -99,91 +108,95 @@ {/each} {/each} - {/if} - - {#each invoiceList?.invoices as invoice} - {@const status = invoice.status} - - - {toLocaleDate(invoice.dueAt)} - - - {@const isDanger = - status === 'overdue' || - status === 'failed' || - status === 'requires_authentication'} - {@const isSuccess = status === 'paid' || status === 'succeeded'} - {@const isWarning = status === 'pending'} - - - {#if invoice?.lastError} - - Details - - The scheduled payment has failed. - retryPayment(invoice)} - >Try again - - - - {/if} - - - - {formatCurrency(invoice.grossAmount)} - - - - - - - - View invoice - - - Download PDF - - {#if status === 'overdue' || status === 'failed' || status === 'abandoned'} - { - retryPayment(invoice); - trackEvent(`click_retry_payment`, { - from: 'button', - source: 'billing_invoice_menu' - }); - }}> - Retry payment - + {:else} + {#each invoiceList?.invoices as invoice (invoice.$id)} + {@const status = invoice.status} + + {toLocaleDate(invoice.dueAt)} + + {@const isDanger = + status === 'overdue' || + status === 'failed' || + status === 'requires_authentication'} + {@const isSuccess = status === 'paid' || status === 'succeeded'} + {@const isWarning = status === 'pending'} + + + {#if invoice?.lastError} + + Details + + The scheduled payment has failed. + retryPayment(invoice)} + >Try again + + + {/if} - - - - - {/each} + + + + {formatCurrency(invoice.grossAmount)} + + + + + + + + View invoice + + + Download PDF + + {#if status === 'overdue' || status === 'failed' || status === 'abandoned'} + { + retryPayment(invoice); + trackEvent(`click_retry_payment`, { + from: 'button', + source: 'billing_invoice_menu' + }); + }}> + Retry payment + + {/if} + + + + + {/each} + {/if} - {#if invoiceList.total > limit} + {#if invoiceList.total >= limit}

Total results: {invoiceList.total}

- + request()} />
{/if} {:else} From 4c9631e8d67fb5fee6848c53b40e68e2a00edca6 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 11:42:49 +0530 Subject: [PATCH 21/30] move: import. --- .../organization-[organization]/billing/paymentHistory.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/(console)/organization-[organization]/billing/paymentHistory.svelte b/src/routes/(console)/organization-[organization]/billing/paymentHistory.svelte index c3ace4695..dfc55935f 100644 --- a/src/routes/(console)/organization-[organization]/billing/paymentHistory.svelte +++ b/src/routes/(console)/organization-[organization]/billing/paymentHistory.svelte @@ -1,5 +1,6 @@ From e7ec674e6b7438203a118162c498356fa971f19e Mon Sep 17 00:00:00 2001 From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com> Date: Thu, 4 Sep 2025 12:36:13 +0530 Subject: [PATCH 25/30] fix: created a reset delet function --- src/lib/components/archiveProject.svelte | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/lib/components/archiveProject.svelte b/src/lib/components/archiveProject.svelte index 30e7d18d0..5e4af4094 100644 --- a/src/lib/components/archiveProject.svelte +++ b/src/lib/components/archiveProject.svelte @@ -61,6 +61,13 @@ let deleteProjectName = $state(''); let deleteError = $state(null); + function resetDeleteState() { + showDeleteModal = false; + projectToDelete = null; + deleteProjectName = ''; + deleteError = null; + } + function filterPlatforms(platforms: { name: string; icon: string }[]) { return platforms.filter( (value, index, self) => index === self.findIndex((t) => t.name === value.name) @@ -170,10 +177,7 @@ message: `${projectToDelete.name} has been deleted` }); - showDeleteModal = false; - projectToDelete = null; - deleteProjectName = ''; - deleteError = null; + resetDeleteState(); } catch (error) { deleteError = error.message; trackError(error, Submit.ProjectDelete); @@ -347,10 +351,7 @@ - From ec4a34385581ee5efa96d26eff7801aaf14bf6db Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 13:05:09 +0530 Subject: [PATCH 27/30] fix: column name. --- src/lib/components/filters/store.ts | 2 +- .../databases/database-[database]/table-[table]/+page.ts | 1 + .../database-[database]/table-[table]/spreadsheet.svelte | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/components/filters/store.ts b/src/lib/components/filters/store.ts index 1561b2d30..4bd6a7a22 100644 --- a/src/lib/components/filters/store.ts +++ b/src/lib/components/filters/store.ts @@ -63,7 +63,7 @@ function initQueries(initialValue = new Map()) { const currentLocation = window.location.pathname; if (usableQueries.size) { - const queryParam = mapToQueryParams(get(queries)); + const queryParam = mapToQueryParams(usableQueries); goto(`${currentLocation}?query=${queryParam}`, { noScroll: true }); } else { goto(currentLocation, { noScroll: true }); diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.ts index aa0de01a2..31d33e029 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.ts @@ -30,6 +30,7 @@ export const load: PageLoad = async ({ params, depends, url, route, parent }) => view, query, currentSort, + parsedQueries, rows: await sdk.forProject(params.region, params.project).tablesDB.listRows({ databaseId: params.database, tableId: params.table, diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte index 0677a9498..aa19779a3 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte @@ -611,6 +611,9 @@ return false; } + const parsedQueries = data.parsedQueries; + const filterQueries = parsedQueries.size ? data.parsedQueries.values() : []; + $paginatedRowsLoading = true; const loadedRows = await sdk .forProject(page.params.region, page.params.project) @@ -621,6 +624,7 @@ getCorrectOrderQuery(), Query.limit(SPREADSHEET_PAGE_LIMIT), Query.offset(pageToOffset(pageNumber, SPREADSHEET_PAGE_LIMIT)), + ...filterQueries, /* filter queries */ ...buildWildcardColumnsQuery($table) ] }); From 62ef5764aa30a51fac7bc579a2df38f1aa6e55f0 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 13:19:06 +0530 Subject: [PATCH 28/30] update: use correct filtering, ordering. --- .../table-[table]/spreadsheet.svelte | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte index aa19779a3..6edba73d5 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte @@ -87,6 +87,8 @@ import { hash } from '$lib/helpers/string'; import { formatNumberWithCommas } from '$lib/helpers/numbers'; import { chunks } from '$lib/helpers/array'; + import { queryParamToMap } from '$lib/components/filters'; + import { mapToQueryParams } from '$lib/components/filters/store'; export let data: PageData; export let showRowCreateSheet: { @@ -311,26 +313,29 @@ const url = new URL(page.url); - if (query === null) { - url.searchParams.delete('query'); - } else { - // compatible with `load` func! - const { attribute, method } = JSON.parse(query); - url.searchParams.set( - 'query', - JSON.stringify([ - [ - { - tag: `${attribute} ${method}`, - value: attribute - }, - query - ] - ]) - ); + const existingQueryParam = url.searchParams.get('query'); + const parsedQueries = queryParamToMap(existingQueryParam || '[]'); + + if (parsedQueries.size > 0) { + for (const [tagValue, queryString] of parsedQueries.entries()) { + if (queryString.includes('orderAsc') || queryString.includes('orderDesc')) { + parsedQueries.delete(tagValue); + } + } } - // save > navigate > restore! + if (query !== null) { + const { attribute, method } = JSON.parse(query); + const tagValue = { + tag: `${attribute} ${method}`, + value: attribute + }; + + parsedQueries.set(tagValue, query); + } + + url.searchParams.set('query', mapToQueryParams(parsedQueries)); + spreadsheetContainer.saveGridSheetScroll(); await goto(`${url.pathname}${url.search}`); spreadsheetContainer.restoreGridSheetScroll(); @@ -624,7 +629,7 @@ getCorrectOrderQuery(), Query.limit(SPREADSHEET_PAGE_LIMIT), Query.offset(pageToOffset(pageNumber, SPREADSHEET_PAGE_LIMIT)), - ...filterQueries, /* filter queries */ + ...filterQueries /* filter queries */, ...buildWildcardColumnsQuery($table) ] }); From 478bac8484c10929af6fd1b2ea7f2a7401511fb0 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 13:23:16 +0530 Subject: [PATCH 29/30] update: misc. --- .../table-[table]/spreadsheet.svelte | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte index 6edba73d5..f9b3f1483 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte @@ -87,7 +87,6 @@ import { hash } from '$lib/helpers/string'; import { formatNumberWithCommas } from '$lib/helpers/numbers'; import { chunks } from '$lib/helpers/array'; - import { queryParamToMap } from '$lib/components/filters'; import { mapToQueryParams } from '$lib/components/filters/store'; export let data: PageData; @@ -310,11 +309,8 @@ async function sort(query: string | null) { $spreadsheetLoading = true; - const url = new URL(page.url); - - const existingQueryParam = url.searchParams.get('query'); - const parsedQueries = queryParamToMap(existingQueryParam || '[]'); + const parsedQueries = data.parsedQueries; if (parsedQueries.size > 0) { for (const [tagValue, queryString] of parsedQueries.entries()) { @@ -334,7 +330,11 @@ parsedQueries.set(tagValue, query); } - url.searchParams.set('query', mapToQueryParams(parsedQueries)); + if (parsedQueries.size === 0) { + url.searchParams.delete('query'); + } else { + url.searchParams.set('query', mapToQueryParams(parsedQueries)); + } spreadsheetContainer.saveGridSheetScroll(); await goto(`${url.pathname}${url.search}`); From dd37f6426b3a1e23c090a648ff804a56873064df Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 13:24:53 +0530 Subject: [PATCH 30/30] update: misc. --- .../database-[database]/table-[table]/spreadsheet.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte index f9b3f1483..5db4b40e6 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte @@ -336,6 +336,7 @@ url.searchParams.set('query', mapToQueryParams(parsedQueries)); } + // save > navigate > restore! spreadsheetContainer.saveGridSheetScroll(); await goto(`${url.pathname}${url.search}`); spreadsheetContainer.restoreGridSheetScroll();