diff --git a/frontend/src/app/FacilitySearch.tsx b/frontend/src/app/FacilitySearch.tsx index 3891c7f..be16cb1 100755 --- a/frontend/src/app/FacilitySearch.tsx +++ b/frontend/src/app/FacilitySearch.tsx @@ -3,6 +3,7 @@ import { STATUS_MAP } from "@/config/constants"; import Image from "next/image"; import Link from "next/link"; +import { useRouter } from "next/navigation"; import { useEffect, useMemo, useState, type CSSProperties } from "react"; import { getPublicCourseDisplayName, type EnrichedFacility } from "@/app/facilityData"; @@ -503,6 +504,7 @@ export default function FacilitySearch({ onFilteredFacilitiesChange, filterHeading = "Søk golfbaner", }: FacilitySearchProps) { + const router = useRouter(); const [searchQuery, setSearchQuery] = useState(""); const [areaFilter, setAreaFilter] = useState(fixedAreaFilter); const [statusFilter, setStatusFilter] = useState(""); @@ -511,7 +513,6 @@ export default function FacilitySearch({ const [weatherDayFilter, setWeatherDayFilter] = useState(""); const [weatherDayOptions, setWeatherDayOptions] = useState(() => getWeatherDayOptions()); const [architectFilter, setArchitectFilter] = useState(""); - const [facilityFilter, setFacilityFilter] = useState(""); const [sortMethod, setSortMethod] = useState("updated"); const [userLocation, setUserLocation] = useState<{ lat: number; lng: number } | null>(null); const [isMobileSearchOpen, setIsMobileSearchOpen] = useState(false); @@ -707,8 +708,6 @@ export default function FacilitySearch({ : weatherForecast.find((entry) => Number(entry?.day_offset) === selectedWeatherDayOffset); const matchesWeather = !weatherDayFilter || Boolean(weatherDay?.dry_daylight); const matchesArchitect = !architectFilter || architectKey === architectFilter; - const matchesFacility = !facilityFilter || facility.slug === facilityFilter; - return { ...facility, holeValue, @@ -730,7 +729,6 @@ export default function FacilitySearch({ matchesSpecial, matchesWeather, matchesArchitect, - matchesFacility, }; }) .filter( @@ -741,8 +739,7 @@ export default function FacilitySearch({ facility.matchesHoles && facility.matchesSpecial && facility.matchesWeather && - facility.matchesArchitect && - facility.matchesFacility + facility.matchesArchitect ) .sort((a, b) => { if (sortMethod === "dist") { @@ -758,7 +755,6 @@ export default function FacilitySearch({ }, [ areaFilter, architectFilter, - facilityFilter, holeFilter, initialFacilities, searchQuery, @@ -776,7 +772,6 @@ export default function FacilitySearch({ specialFilter, weatherDayFilter, architectFilter, - facilityFilter, searchQuery.trim(), ].filter(Boolean).length; const summaryText = `${processedFacilities.length} baner • ${getAreaLabel(areaFilter, countyOptions)}${ @@ -786,6 +781,11 @@ export default function FacilitySearch({ const isCollapsibleHomeSearch = variant === "home"; const searchPanelOpen = !isCollapsibleHomeSearch || isMobileSearchOpen; + const handleFacilitySelect = (slug: string) => { + if (!slug) return; + router.push(`/golfbaner/${slug}`); + }; + useEffect(() => { if (isCollapsibleHomeSearch && filtersCount > 0) { setIsMobileSearchOpen(true); @@ -916,11 +916,11 @@ export default function FacilitySearch({ - + {facilityOptions.map((option) => (