feat: load phoneOnly filter from localStorage after component mount

This commit is contained in:
2025-10-27 10:52:03 +01:00
parent b6ceac6e38
commit cc242d4e10

View File

@@ -20,21 +20,26 @@ export default function ProjectListPage() {
const [projects, setProjects] = useState([]); const [projects, setProjects] = useState([]);
const [searchTerm, setSearchTerm] = useState(""); const [searchTerm, setSearchTerm] = useState("");
const [filteredProjects, setFilteredProjects] = useState([]); const [filteredProjects, setFilteredProjects] = useState([]);
const [filters, setFilters] = useState(() => { const [filters, setFilters] = useState({
// Load phoneOnly filter from localStorage
const savedPhoneOnly = typeof window !== 'undefined'
? localStorage.getItem('projectsPhoneOnlyFilter') === 'true'
: false;
return {
status: 'all', status: 'all',
type: 'all', type: 'all',
customer: 'all', customer: 'all',
mine: false, mine: false,
phoneOnly: savedPhoneOnly phoneOnly: false
};
}); });
const [customers, setCustomers] = useState([]); const [customers, setCustomers] = useState([]);
// Load phoneOnly filter from localStorage after mount to avoid hydration issues
useEffect(() => {
const savedPhoneOnly = localStorage.getItem('projectsPhoneOnlyFilter') === 'true';
if (savedPhoneOnly) {
setFilters(prev => ({
...prev,
phoneOnly: savedPhoneOnly
}));
}
}, []);
const [filtersExpanded, setFiltersExpanded] = useState(true); // Start expanded on mobile so users know filters exist const [filtersExpanded, setFiltersExpanded] = useState(true); // Start expanded on mobile so users know filters exist
const [searchMatchType, setSearchMatchType] = useState(null); // Track what type of match was found const [searchMatchType, setSearchMatchType] = useState(null); // Track what type of match was found