diff --git a/src/app/issues/page.tsx b/src/app/issues/page.tsx index 00dd35f..76152d8 100644 --- a/src/app/issues/page.tsx +++ b/src/app/issues/page.tsx @@ -4,6 +4,7 @@ import { GitPullRequest, FilterX } from "lucide-react"; import { fetchBounties } from "@/lib/api"; import { mockBounties } from "@/lib/mock-data"; import { BountyCard } from "@/components/bounty/BountyCard"; +import { IssuesFilterForm } from "@/components/bounty/IssuesFilterForm"; import { EmptyState } from "@/components/ui/EmptyState"; import { Button } from "@/components/ui/Button"; import { DataSourceNotice } from "@/components/ui/DataSourceNotice"; @@ -14,8 +15,6 @@ import { buildIssuesHref, isFilterActive, parseBountyQuery, - SORT_LABELS, - SORT_VALUES, STATUS_VALUES, DIFFICULTY_VALUES, ASSET_VALUES, @@ -128,97 +127,16 @@ export default async function IssuesPage({ rather than client-side state — every combination stays a shareable, bookmarkable URL and the page works with JavaScript disabled. The hidden `status` field carries the pill selection above through the - same submit, since HTML forms only send their own named fields. */} -
+ same submit, since HTML forms only send their own named fields. + Extracted into a client component so it can disable default/empty + fields before submit when JS is available (#701) — see + IssuesFilterForm's own doc comment for why. */} +