|
87 | 87 | import { hash } from '$lib/helpers/string'; |
88 | 88 | import { formatNumberWithCommas } from '$lib/helpers/numbers'; |
89 | 89 | import { chunks } from '$lib/helpers/array'; |
| 90 | + import { mapToQueryParams } from '$lib/components/filters/store'; |
90 | 91 |
|
91 | 92 | export let data: PageData; |
92 | 93 | export let showRowCreateSheet: { |
|
308 | 309 |
|
309 | 310 | async function sort(query: string | null) { |
310 | 311 | $spreadsheetLoading = true; |
311 | | -
|
312 | 312 | const url = new URL(page.url); |
| 313 | + const parsedQueries = data.parsedQueries; |
| 314 | +
|
| 315 | + if (parsedQueries.size > 0) { |
| 316 | + for (const [tagValue, queryString] of parsedQueries.entries()) { |
| 317 | + if (queryString.includes('orderAsc') || queryString.includes('orderDesc')) { |
| 318 | + parsedQueries.delete(tagValue); |
| 319 | + } |
| 320 | + } |
| 321 | + } |
| 322 | +
|
| 323 | + if (query !== null) { |
| 324 | + const { attribute, method } = JSON.parse(query); |
| 325 | + const tagValue = { |
| 326 | + tag: `${attribute} ${method}`, |
| 327 | + value: attribute |
| 328 | + }; |
313 | 329 |
|
314 | | - if (query === null) { |
| 330 | + parsedQueries.set(tagValue, query); |
| 331 | + } |
| 332 | +
|
| 333 | + if (parsedQueries.size === 0) { |
315 | 334 | url.searchParams.delete('query'); |
316 | 335 | } else { |
317 | | - // compatible with `load` func! |
318 | | - const { attribute, method } = JSON.parse(query); |
319 | | - url.searchParams.set( |
320 | | - 'query', |
321 | | - JSON.stringify([ |
322 | | - [ |
323 | | - { |
324 | | - tag: `${attribute} ${method}`, |
325 | | - value: attribute |
326 | | - }, |
327 | | - query |
328 | | - ] |
329 | | - ]) |
330 | | - ); |
| 336 | + url.searchParams.set('query', mapToQueryParams(parsedQueries)); |
331 | 337 | } |
332 | 338 |
|
333 | 339 | // save > navigate > restore! |
|
611 | 617 | return false; |
612 | 618 | } |
613 | 619 |
|
| 620 | + const parsedQueries = data.parsedQueries; |
| 621 | + const filterQueries = parsedQueries.size ? data.parsedQueries.values() : []; |
| 622 | +
|
614 | 623 | $paginatedRowsLoading = true; |
615 | 624 | const loadedRows = await sdk |
616 | 625 | .forProject(page.params.region, page.params.project) |
|
621 | 630 | getCorrectOrderQuery(), |
622 | 631 | Query.limit(SPREADSHEET_PAGE_LIMIT), |
623 | 632 | Query.offset(pageToOffset(pageNumber, SPREADSHEET_PAGE_LIMIT)), |
| 633 | + ...filterQueries /* filter queries */, |
624 | 634 | ...buildWildcardColumnsQuery($table) |
625 | 635 | ] |
626 | 636 | }); |
|
0 commit comments