From d3bbd1122e29b967d479cd4693d805a02822c036 Mon Sep 17 00:00:00 2001 From: water <672684719@qq.com> Date: Tue, 25 Aug 2026 07:45:29 +0800 Subject: [PATCH] feat: persist marketplace sort and filter choices across sessions (Closes #125) --- invofi/apps/frontend/src/app/marketplace/page.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/invofi/apps/frontend/src/app/marketplace/page.tsx b/invofi/apps/frontend/src/app/marketplace/page.tsx index 92806f638..ce1ca150d 100644 --- a/invofi/apps/frontend/src/app/marketplace/page.tsx +++ b/invofi/apps/frontend/src/app/marketplace/page.tsx @@ -1,11 +1,12 @@ 'use client'; -import { useMemo, useState } from 'react'; +import { useMemo } from 'react'; import { Search, LayoutGrid } from 'lucide-react'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { Input } from '@/components/ui/input'; import { AuthGuard } from '@/components/auth/AuthGuard'; +import { useLocalStorage } from '@/hooks/useLocalStorage'; import { MarketplaceCard } from '@/components/marketplace/MarketplaceCard'; import { MarketplaceTabs } from '@/components/marketplace/MarketplaceTabs'; import { SuggestedMatches } from '@/components/marketplace/SuggestedMatches'; @@ -40,8 +41,8 @@ const SORT_OPTIONS: { value: SortKey; label: string }[] = [ function MarketplacePageInner() { const [search, setSearch] = useState(''); - const [filters, setFilters] = useState({ currency: 'ALL', status: 'ALL' }); - const [sort, setSort] = useState('newest'); + const [filters, setFilters] = useLocalStorage('marketplace-filters', { currency: 'ALL', status: 'ALL' }); + const [sort, setSort] = useLocalStorage('marketplace-sort', 'newest'); /** * View mode: