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 [searchTerm, setSearchTerm] = useState("");
const [filteredProjects, setFilteredProjects] = useState([]);
const [filters, setFilters] = useState(() => {
// Load phoneOnly filter from localStorage
const savedPhoneOnly = typeof window !== 'undefined'
? localStorage.getItem('projectsPhoneOnlyFilter') === 'true'
: false;
return {
const [filters, setFilters] = useState({
status: 'all',
type: 'all',
customer: 'all',
mine: false,
phoneOnly: savedPhoneOnly
};
phoneOnly: false
});
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 [searchMatchType, setSearchMatchType] = useState(null); // Track what type of match was found