From baa235d248d93ea788ec166d591e4431c8631da6 Mon Sep 17 00:00:00 2001 From: miconficker Date: Tue, 20 Jan 2026 16:59:55 +0800 Subject: [PATCH 1/2] feat: allow direct linking to city|province --- src/app/page.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/app/page.tsx b/src/app/page.tsx index ba76154..ce2e933 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -3,6 +3,7 @@ import { useEffect, useMemo, useState } from 'react'; import { cn } from '@/lib/utils'; import logo2 from '/public/bettergov-horizontal-logo.png'; +import { useSearchParams } from 'next/navigation'; import Image from 'next/image'; import HotlineCard from '@/components/hotline-card'; @@ -38,6 +39,9 @@ const HomeContent = () => { const [hotlines, setHotlines] = useState(); const [isDetectingLocation, setIsDetectingLocation] = useState(true); + const searchParams = useSearchParams(); + const cityFromURL = searchParams.get('city')?.toLowerCase(); + const [filterOptions, setFilterOptions] = useState<{ city: string; category: string; @@ -80,6 +84,16 @@ const HomeContent = () => { return; } + if (cityFromURL) { + setFilterOptions(prev => ({ + ...prev, + city: cityFromURL, + })); + localStorage.setItem('lastSavedLocation', cityFromURL); + setIsDetectingLocation(false); + return; + } + const detectLocation = () => { const getCoords = (): Promise => { return new Promise((resolve, reject) => { From ed100fa62c61e11e17dcc33102cd925986813eb1 Mon Sep 17 00:00:00 2001 From: miconficker Date: Mon, 26 Jan 2026 13:35:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20url=20changed=20to=20=3Fcity=3Dlos%2?= =?UTF-8?q?0ba=C3=B1os&province=3Dlaguna?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/page.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index ce2e933..277f35b 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -41,6 +41,7 @@ const HomeContent = () => { const searchParams = useSearchParams(); const cityFromURL = searchParams.get('city')?.toLowerCase(); + const provinceFromURL = searchParams.get('province')?.toLowerCase(); const [filterOptions, setFilterOptions] = useState<{ city: string; @@ -85,11 +86,12 @@ const HomeContent = () => { } if (cityFromURL) { + const combinedURL = `${cityFromURL}|${provinceFromURL}`; setFilterOptions(prev => ({ ...prev, - city: cityFromURL, + city: combinedURL, })); - localStorage.setItem('lastSavedLocation', cityFromURL); + localStorage.setItem('lastSavedLocation', combinedURL); setIsDetectingLocation(false); return; }