From ec4a34385581ee5efa96d26eff7801aaf14bf6db Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 4 Sep 2025 13:05:09 +0530 Subject: [PATCH 1/4] 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 2/4] 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 3/4] 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 4/4] 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();