Skip to content

Commit 3c234af

Browse files
authored
Merge pull request #66 from lambda-curry/codex/decide-consistent-parameter-name-and-update-code
2 parents 8a9619c + f035f99 commit 3c234af

3 files changed

Lines changed: 10 additions & 8 deletions

File tree

apps/docs/src/remix-hook-form/data-table-bazza-filters.stories.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -341,11 +341,11 @@ function DataTableWithBazzaFilters() {
341341
const pageIndex = Number.parseInt(searchParams.get('page') ?? '0', 10);
342342
const pageSize = Number.parseInt(searchParams.get('pageSize') ?? '10', 10);
343343
const sortField = searchParams.get('sortField');
344-
const sortDesc = searchParams.get('sortDesc') === 'true';
344+
const sortOrder = (searchParams.get('sortOrder') || 'asc') as 'asc' | 'desc'; // 'asc' or 'desc'
345345

346346
// --- Pagination and Sorting State ---
347347
const pagination = { pageIndex, pageSize };
348-
const sorting = sortField ? [{ id: sortField, desc: sortDesc }] : [];
348+
const sorting = sortField ? [{ id: sortField, desc: sortOrder === 'desc' }] : [];
349349

350350
// --- Event Handlers: update URL directly ---
351351
const handlePaginationChange: OnChangeFn<PaginationState> = (updaterOrValue) => {
@@ -359,10 +359,10 @@ function DataTableWithBazzaFilters() {
359359
const next = typeof updaterOrValue === 'function' ? updaterOrValue(sorting) : updaterOrValue;
360360
if (next.length > 0) {
361361
searchParams.set('sortField', next[0].id);
362-
searchParams.set('sortDesc', next[0].desc ? 'true' : 'false');
362+
searchParams.set('sortOrder', next[0].desc ? 'desc' : 'asc');
363363
} else {
364364
searchParams.delete('sortField');
365-
searchParams.delete('sortDesc');
365+
searchParams.delete('sortOrder');
366366
}
367367
navigate(`${location.pathname}?${searchParams.toString()}`, { replace: true });
368368
};
@@ -441,10 +441,10 @@ const handleDataFetch = async ({ request }: LoaderFunctionArgs): Promise<DataRes
441441
const page = dataTableRouterParsers.page.parse(params.get('page')) ?? 0;
442442
let pageSize = dataTableRouterParsers.pageSize.parse(params.get('pageSize')) ?? 10;
443443
const sortField = params.get('sortField'); // Get raw string or null
444-
const sortDesc = params.get('sortDesc') === 'true'; // Convert to boolean
444+
const sortOrder = (params.get('sortOrder') || 'asc') as 'asc' | 'desc'; // 'asc' or 'desc'
445445
const filtersParam = params.get('filters');
446446

447-
console.log('handleDataFetch - Parsed Parameters:', { page, pageSize, sortField, sortDesc, filtersParam });
447+
console.log('handleDataFetch - Parsed Parameters:', { page, pageSize, sortField, sortOrder, filtersParam });
448448

449449
if (!pageSize || pageSize <= 0) {
450450
console.log(`[Loader] - Invalid or missing pageSize (${pageSize}), defaulting to 10.`);
@@ -512,7 +512,7 @@ const handleDataFetch = async ({ request }: LoaderFunctionArgs): Promise<DataRes
512512
let comparison = 0;
513513
if (aValue < bValue) comparison = -1;
514514
if (aValue > bValue) comparison = 1;
515-
return sortDesc ? comparison * -1 : comparison;
515+
return sortOrder === 'desc' ? comparison * -1 : comparison;
516516
});
517517
}
518518

packages/components/src/remix-hook-form/data-table-router-parsers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,5 +121,5 @@ export type DataTableRouterState = {
121121
page: number;
122122
pageSize: number;
123123
sortField: string;
124-
sortOrder: string;
124+
sortOrder: string; // 'asc' or 'desc'
125125
};

packages/components/src/remix-hook-form/use-data-table-url-state.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export function useDataTableUrlState() {
2020
page: dataTableRouterParsers.page.parse(searchParams.get('page')),
2121
pageSize: dataTableRouterParsers.pageSize.parse(searchParams.get('pageSize')),
2222
sortField: dataTableRouterParsers.sortField.parse(searchParams.get('sortField')),
23+
// 'asc' or 'desc'
2324
sortOrder: dataTableRouterParsers.sortOrder.parse(searchParams.get('sortOrder')),
2425
};
2526

@@ -83,6 +84,7 @@ export function getDefaultDataTableState(defaultStateValues?: Partial<DataTableR
8384
page: dataTableRouterParsers.page.defaultValue,
8485
pageSize: dataTableRouterParsers.pageSize.defaultValue,
8586
sortField: dataTableRouterParsers.sortField.defaultValue,
87+
// 'asc' or 'desc'
8688
sortOrder: dataTableRouterParsers.sortOrder.defaultValue,
8789
...defaultStateValues,
8890
};

0 commit comments

Comments
 (0)