From aedf80375679e0a2066405d224428b3f4d5dca5b Mon Sep 17 00:00:00 2001 From: ryzen_xp Date: Tue, 24 Feb 2026 13:10:39 +0530 Subject: [PATCH 1/2] feat: replace hand-written bountyKeys with codegen-generated query keys --- lib/query/query-keys.ts | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/lib/query/query-keys.ts b/lib/query/query-keys.ts index f9c76024..215937c2 100644 --- a/lib/query/query-keys.ts +++ b/lib/query/query-keys.ts @@ -1,16 +1,44 @@ -import { useBountyQuery, type BountyQueryInput } from "@/lib/graphql/generated"; +import { + useBountiesQuery, + useBountyQuery, + useActiveBountiesQuery, + useOrganizationBountiesQuery, + useProjectBountiesQuery, + type BountyQueryInput, + type BountiesQueryVariables, + type BountyQueryVariables, + type ActiveBountiesQueryVariables, + type OrganizationBountiesQueryVariables, + type ProjectBountiesQueryVariables, +} from "@/lib/graphql/generated"; /** * Query Key Factory for Bounties + * Uses codegen-generated query keys with proper variable wrapping */ export const bountyKeys = { - all: ["Bounties"] as const, - lists: () => [...bountyKeys.all, "lists"] as const, + // All bounties list queries - uses ["Bounties"] or ["Bounties", variables] + lists: () => useBountiesQuery.getKey(), list: (params?: BountyQueryInput) => - [...bountyKeys.lists(), { query: params }] as const, + useBountiesQuery.getKey({ query: params } as BountiesQueryVariables), + // Infinite bounties queries - uses same base key as list since they fetch same data infinite: (params?: Omit) => - [...bountyKeys.lists(), "infinite", { query: params }] as const, - detail: (id: string) => useBountyQuery.getKey({ id }), + useBountiesQuery.getKey({ query: params } as BountiesQueryVariables), + // Single bounty detail - uses ["Bounty", variables] + detail: (id: string) => useBountyQuery.getKey({ id } as BountyQueryVariables), + // Active bounties - uses ["ActiveBounties"] or ["ActiveBounties", variables] + active: (variables?: ActiveBountiesQueryVariables) => + useActiveBountiesQuery.getKey(variables), + // Organization bounties - uses ["OrganizationBounties", variables] + organization: (organizationId: string) => + useOrganizationBountiesQuery.getKey({ + organizationId, + } as OrganizationBountiesQueryVariables), + // Project bounties - uses ["ProjectBounties", variables] + project: (projectId: string) => + useProjectBountiesQuery.getKey({ + projectId, + } as ProjectBountiesQueryVariables), }; // Type helpers for query keys From 952aa221faf8d9e17f8e907e3a77f20eafcba569 Mon Sep 17 00:00:00 2001 From: ryzen_xp Date: Tue, 24 Feb 2026 13:26:52 +0530 Subject: [PATCH 2/2] fix : coderebbit issue --- lib/query/query-keys.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/query/query-keys.ts b/lib/query/query-keys.ts index 215937c2..14d8872b 100644 --- a/lib/query/query-keys.ts +++ b/lib/query/query-keys.ts @@ -21,19 +21,27 @@ export const bountyKeys = { lists: () => useBountiesQuery.getKey(), list: (params?: BountyQueryInput) => useBountiesQuery.getKey({ query: params } as BountiesQueryVariables), + // Infinite bounties queries - uses same base key as list since they fetch same data infinite: (params?: Omit) => - useBountiesQuery.getKey({ query: params } as BountiesQueryVariables), + [ + ...useBountiesQuery.getKey({ query: params } as BountiesQueryVariables), + "infinite", + ] as const, + // Single bounty detail - uses ["Bounty", variables] detail: (id: string) => useBountyQuery.getKey({ id } as BountyQueryVariables), + // Active bounties - uses ["ActiveBounties"] or ["ActiveBounties", variables] active: (variables?: ActiveBountiesQueryVariables) => useActiveBountiesQuery.getKey(variables), + // Organization bounties - uses ["OrganizationBounties", variables] organization: (organizationId: string) => useOrganizationBountiesQuery.getKey({ organizationId, } as OrganizationBountiesQueryVariables), + // Project bounties - uses ["ProjectBounties", variables] project: (projectId: string) => useProjectBountiesQuery.getKey({