diff --git a/app/profiles/ProfileFilters.tsx b/app/profiles/ProfileFilters.tsx index 8e870b96..cd4cdc7f 100644 --- a/app/profiles/ProfileFilters.tsx +++ b/app/profiles/ProfileFilters.tsx @@ -11,11 +11,12 @@ interface FilterProps { searchQuery: string; }; onFilterChange: (key: string, value: any) => void; + onShowFilters: (value: boolean) => void; onToggleFilter: (key: 'interests' | 'causeAreas', value: string) => void; onReset: () => void; } -export function ProfileFilters({filters, onFilterChange, onToggleFilter, onReset}: FilterProps) { +export function ProfileFilters({filters, onFilterChange, onShowFilters, onToggleFilter, onReset}: FilterProps) { const [showFilters, setShowFilters] = useState(true); const [allCauseAreas, setAllCauseAreas] = useState<{ id: string, name: string }[]>([]); const [allInterests, setAllInterests] = useState<{ id: string, name: string }[]>([]); @@ -79,33 +80,38 @@ export function ProfileFilters({filters, onFilterChange, onToggleFilter, onReset return (
-
- onFilterChange('searchQuery', e.target.value)} - /> -
- - - + {showFilters && ( +
+ onFilterChange('searchQuery', e.target.value)} + /> +
+ + + +
-
+ )}
@@ -150,51 +156,54 @@ export function ProfileFilters({filters, onFilterChange, onToggleFilter, onReset onClick={() => setShowDropdown(!showDropdown)} className="px-3 py-2 border-l border-gray-300 text-gray-500 focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500" > - - + +
- {(showDropdown) && ( -
- {/* Filtered interests */} - {allInterests - .filter(interest => - interest.name.toLowerCase().includes(newInterest.toLowerCase()) - ) - .map((interest) => ( -
{ - onToggleFilter('interests', interest.name); - toggleInterest(interest.id); - // setNewInterest(''); - }} - > -
- { - }} - onClick={(e) => { - e.stopPropagation(); - }} - /> - + {(showDropdown) && ( +
+ {/* Filtered interests */} + {allInterests + .filter(interest => + interest.name.toLowerCase().includes(newInterest.toLowerCase()) + ) + .map((interest) => ( +
{ + onToggleFilter('interests', interest.name); + toggleInterest(interest.id); + // setNewInterest(''); + }} + > +
+ { + }} + onClick={(e) => { + e.stopPropagation(); + }} + /> + {interest.name} -
- ))} -
- )} -
+
+ ))} +
+ )} + {/* Selected interests */} diff --git a/app/profiles/page.tsx b/app/profiles/page.tsx index 4ec2e0e5..b42dffaa 100644 --- a/app/profiles/page.tsx +++ b/app/profiles/page.tsx @@ -12,6 +12,7 @@ export const dynamic = "force-dynamic"; export default function ProfilePage() { const [profiles, setProfiles] = useState([]); const [loading, setLoading] = useState(true); + const [showFilters, setShowFilters] = useState(true); const [totalUsers, setTotalUsers] = useState(0); const [images, setImages] = useState([]) const [filters, setFilters] = useState({ @@ -87,6 +88,10 @@ export default function ProfilePage() { })); }; + const showFilterChange = (value: boolean) => { + setShowFilters(value); + }; + const toggleFilter = (key: 'interests' | 'causeAreas', value: string) => { setFilters(prev => ({ ...prev, @@ -117,11 +122,12 @@ export default function ProfilePage() {
{/* Filters Sidebar */} -
+