diff --git a/apps/outreach-review/app/routes/_index.tsx b/apps/outreach-review/app/routes/_index.tsx index 8019290..70b5dec 100644 --- a/apps/outreach-review/app/routes/_index.tsx +++ b/apps/outreach-review/app/routes/_index.tsx @@ -13,8 +13,13 @@ export async function loader({ request }: Route.LoaderArgs) { const url = new URL(request.url); const source = url.searchParams.get('source') ?? undefined; - const matches = await serverListPendingReviewMatches(db, { source }); - return { matches, source: source ?? null }; + const statusParam = url.searchParams.get('status'); + const status = + statusParam === 'approved' || statusParam === 'rejected' + ? statusParam + : 'pending'; + const matches = await serverListPendingReviewMatches(db, { source, status }); + return { matches, source: source ?? null, status }; } export async function action({ request }: Route.ActionArgs) { @@ -39,11 +44,21 @@ export async function action({ request }: Route.ActionArgs) { export default function ReviewQueue({ loaderData }: Route.ComponentProps) { const matches = loaderData?.matches ?? []; const activeSource = loaderData?.source ?? null; + const activeStatus = loaderData?.status ?? 'pending'; + const withParams = (overrides: Record) => { + const params = new URLSearchParams(); + const merged = { source: activeSource, status: activeStatus, ...overrides }; + if (merged.source != null) params.set('source', merged.source); + if (merged.status != null && merged.status !== 'pending') + params.set('status', merged.status); + const qs = params.toString(); + return qs === '' ? '/' : `/?${qs}`; + }; return (

Grant Match Review Queue

-