From b32e1dfa576f9f32899f4cfdb9b4d03e01f517af Mon Sep 17 00:00:00 2001 From: josh Date: Tue, 21 Apr 2026 20:31:26 -0400 Subject: [PATCH] Extract cleanParams helper to deduplicate query param cleaning The identical strip-undefined-values loop was duplicated in useTickets and useTicketsPaged. Co-Authored-By: Claude Opus 4.6 --- client/src/api/queries.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/client/src/api/queries.ts b/client/src/api/queries.ts index cd4a4e6..ebe24cc 100644 --- a/client/src/api/queries.ts +++ b/client/src/api/queries.ts @@ -27,14 +27,20 @@ export const qk = { analytics: (window: number) => ['analytics', window] as const, }; -// ── Tickets ────────────────────────────────────────────────────────────────── +// ── Helpers ───────────────────────────────────────────────────────────────── -export function useTickets(params: Record = {}) { - // Strip undefined values for a stable key +function cleanParams(params: Record): Record { const clean: Record = {}; Object.entries(params).forEach(([k, v]) => { if (v !== undefined && v !== '' && v !== null) clean[k] = v; }); + return clean; +} + +// ── Tickets ────────────────────────────────────────────────────────────────── + +export function useTickets(params: Record = {}) { + const clean = cleanParams(params); return useQuery({ queryKey: qk.tickets(clean), @@ -47,10 +53,7 @@ export function useTickets(params: Record = } export function useTicketsPaged(params: Record = {}) { - const clean: Record = {}; - Object.entries(params).forEach(([k, v]) => { - if (v !== undefined && v !== '' && v !== null) clean[k] = v; - }); + const clean = cleanParams(params); return useQuery({ queryKey: qk.ticketsPaged(clean),