* feat: add 'View Responses' menu item to Routing Form dropdown Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * fix: use nuqs createSerializer for URL generation Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * refactor: move serializer to data-table lib and use proper type constants Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * fix: type errors in serializers and FormActions Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * fix: use parseAsArrayOf with parseAsJson for proper nuqs serialization Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * fix: update to use dataTableQueryParamsSerializer with proper nuqs pattern Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * refactor: extract parsers from DataTableProvider to be reused in serializers Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * fix: remove deprecated activeFiltersSerializer and use empty array instead of null Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * fix: only show View Responses menu when form id and teamId exist Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * remove teamId condition * refactor: improve viewResponses URL generation with cleaner conditional Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * Update packages/features/data-table/lib/parsers.ts * refactor: make constants in parsers.ts non-exported Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * fix: add explicit type annotations to constants in parsers.ts Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * fix: add explicit type annotations and export DEFAULT_PAGE_SIZE in parsers.ts Co-Authored-By: eunjae@cal.com <eunjae@cal.com> * fix: add explicit type assertions to DEFAULT_ACTIVE_FILTERS and DEFAULT_SORTING Co-Authored-By: eunjae@cal.com <eunjae@cal.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: eunjae@cal.com <eunjae@cal.com> Co-authored-by: Eunjae Lee <hey@eunjae.dev> Co-authored-by: Benny Joo <sldisek783@gmail.com>
25 lines
1.3 KiB
TypeScript
25 lines
1.3 KiB
TypeScript
import type { SortingState, VisibilityState, ColumnSizingState } from "@tanstack/react-table";
|
|
import { parseAsArrayOf, parseAsJson, parseAsInteger, parseAsString } from "nuqs";
|
|
|
|
import { ZActiveFilter, ZSorting, ZColumnVisibility, ZColumnSizing } from "./types";
|
|
import type { ActiveFilters } from "./types";
|
|
|
|
const DEFAULT_ACTIVE_FILTERS: ActiveFilters = [] as ActiveFilters;
|
|
const DEFAULT_SORTING: SortingState = [] as SortingState;
|
|
const DEFAULT_COLUMN_VISIBILITY: VisibilityState = {};
|
|
const DEFAULT_COLUMN_SIZING: ColumnSizingState = {};
|
|
export const DEFAULT_PAGE_SIZE = 10;
|
|
|
|
export const activeFiltersParser = parseAsArrayOf(parseAsJson(ZActiveFilter.parse)).withDefault(
|
|
DEFAULT_ACTIVE_FILTERS
|
|
);
|
|
export const sortingParser = parseAsArrayOf(parseAsJson(ZSorting.parse)).withDefault(DEFAULT_SORTING);
|
|
export const columnVisibilityParser = parseAsJson(ZColumnVisibility.parse).withDefault(
|
|
DEFAULT_COLUMN_VISIBILITY
|
|
);
|
|
export const columnSizingParser = parseAsJson(ZColumnSizing.parse).withDefault(DEFAULT_COLUMN_SIZING);
|
|
export const segmentIdParser = parseAsInteger.withDefault(-1);
|
|
export const pageIndexParser = parseAsInteger.withDefault(0);
|
|
export const pageSizeParser = parseAsInteger.withDefault(DEFAULT_PAGE_SIZE);
|
|
export const searchTermParser = parseAsString.withDefault("");
|