From 27864d99a6f4e9ce9b1355f52fe43cbcceb94a32 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 15:00:06 +0000 Subject: [PATCH] Fix: Correct filter variable name --- src/pages/Operators.tsx | 57 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/src/pages/Operators.tsx b/src/pages/Operators.tsx index 149534d6..18d87297 100644 --- a/src/pages/Operators.tsx +++ b/src/pages/Operators.tsx @@ -92,14 +92,61 @@ const Operators = () => { if (!operators) return []; let filtered = operators.filter(operator => { + // Search filter const matchesSearch = operator.name.toLowerCase().includes(searchTerm.toLowerCase()) || (operator.description && operator.description.toLowerCase().includes(searchTerm.toLowerCase())); - if (filterBy === 'all') return matchesSearch; - if (filterBy === 'with-rating') return matchesSearch && operator.average_rating > 0; - if (filterBy === 'established') return matchesSearch && operator.founded_year; + if (!matchesSearch) return false; + + // Country filter + if (filters.countries.length > 0) { + if (!operator.headquarters_location || !filters.countries.some(c => operator.headquarters_location?.includes(c))) { + return false; + } + } + + // Rating filter + const rating = operator.average_rating || 0; + if (rating < filters.minRating || rating > filters.maxRating) { + return false; + } + + // Review count filter + const reviewCount = operator.review_count || 0; + if (reviewCount < filters.minReviewCount || reviewCount > filters.maxReviewCount) { + return false; + } + + // Park count filter + const parkCount = operator.park_count || 0; + if (parkCount < filters.minParkCount || parkCount > filters.maxParkCount) { + return false; + } + + // Founded date filter + if (filters.foundedDateFrom || filters.foundedDateTo) { + if (!operator.founded_year) { + return false; + } + if (filters.foundedDateFrom && operator.founded_year < filters.foundedDateFrom.getFullYear()) { + return false; + } + if (filters.foundedDateTo && operator.founded_year > filters.foundedDateTo.getFullYear()) { + return false; + } + } + + // Has rating filter + if (filters.hasRating && !operator.average_rating) { + return false; + } + + // Has founded date filter + if (filters.hasFoundedDate && !operator.founded_year) { + return false; + } - return matchesSearch; + return true; }); // Sort @@ -119,7 +166,7 @@ const Operators = () => { }); return filtered; - }, [operators, searchTerm, sortBy, filterBy]); + }, [operators, searchTerm, sortBy, filters]); return (