From 2ed2460fcd5ff8fff8d3138829a329b34749a4b9 Mon Sep 17 00:00:00 2001 From: akhand998 Date: Tue, 5 May 2026 22:51:41 +0530 Subject: [PATCH 1/2] fix(ui): add mobile filter sidebar overlay --- app/organizations/organizations-client.tsx | 69 ++++++++++++++++++---- 1 file changed, 59 insertions(+), 10 deletions(-) diff --git a/app/organizations/organizations-client.tsx b/app/organizations/organizations-client.tsx index dc1dc0e..bab10e4 100644 --- a/app/organizations/organizations-client.tsx +++ b/app/organizations/organizations-client.tsx @@ -2,7 +2,7 @@ import { useState, useEffect, useCallback, useMemo, useRef, startTransition } from 'react' import { useRouter, useSearchParams } from 'next/navigation' -import { Search, X } from 'lucide-react' +import { Search, X, Filter } from 'lucide-react' import { Button, Input, SectionHeader } from '@/components/ui' import { Organization, PaginatedResponse } from '@/lib/api' import { OrganizationCard } from '@/components/organization-card' @@ -25,6 +25,7 @@ export function OrganizationsClient({ initialData, initialPage, initialTechs, fi const [data, setData] = useState>(initialData) const [isLoading, setIsLoading] = useState(false) const [currentPage, setCurrentPage] = useState(initialPage) + const [isMobileFiltersOpen, setIsMobileFiltersOpen] = useState(false) const isInitialMount = useRef(true) const lastFetchParams = useRef('') const lastUrlString = useRef('') @@ -338,15 +339,27 @@ export function OrganizationsClient({ initialData, initialPage, initialTechs, fi className="max-w-3xl mx-auto mb-8" /> {/* Search Bar */} -
- - setSearchInput(e.target.value)} - /> +
+
+ + setSearchInput(e.target.value)} + /> +
+
+ +
{/* Filter Chips Row */} @@ -556,6 +569,42 @@ export function OrganizationsClient({ initialData, initialPage, initialTechs, fi )}
+ + {/* Mobile Filters Overlay */} + {isMobileFiltersOpen && ( +
+ {/* Overlay backdrop */} +
setIsMobileFiltersOpen(false)} + aria-hidden="true" + /> + {/* Sidebar Drawer */} +
+
+

Filters

+ +
+
+
+ +
+
+
+ +
+
+
+ )}
) } From 94f23cdd7baca2e401f4ef52b8094ecacb61cf17 Mon Sep 17 00:00:00 2001 From: akhand998 Date: Tue, 5 May 2026 23:35:23 +0530 Subject: [PATCH 2/2] fix: implement coderabbit accessibility suggestions --- app/organizations/organizations-client.tsx | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/organizations/organizations-client.tsx b/app/organizations/organizations-client.tsx index bab10e4..b3451e9 100644 --- a/app/organizations/organizations-client.tsx +++ b/app/organizations/organizations-client.tsx @@ -1,6 +1,6 @@ 'use client' -import { useState, useEffect, useCallback, useMemo, useRef, startTransition } from 'react' +import { useState, useEffect, useCallback, useMemo, useRef, startTransition, useId } from 'react' import { useRouter, useSearchParams } from 'next/navigation' import { Search, X, Filter } from 'lucide-react' import { Button, Input, SectionHeader } from '@/components/ui' @@ -22,6 +22,7 @@ interface OrganizationsClientProps { export function OrganizationsClient({ initialData, initialPage, initialTechs, firstTimeCount }: OrganizationsClientProps) { const router = useRouter() const searchParams = useSearchParams() + const filtersTitleId = useId() const [data, setData] = useState>(initialData) const [isLoading, setIsLoading] = useState(false) const [currentPage, setCurrentPage] = useState(initialPage) @@ -575,15 +576,25 @@ export function OrganizationsClient({ initialData, initialPage, initialTechs, fi
{/* Overlay backdrop */}
setIsMobileFiltersOpen(false)} aria-hidden="true" /> {/* Sidebar Drawer */} -
+
-

Filters

-