diff options
Diffstat (limited to 'src/frontend/app/routes')
| -rw-r--r-- | src/frontend/app/routes/stops-$id.css | 24 | ||||
| -rw-r--r-- | src/frontend/app/routes/stops-$id.tsx | 35 |
2 files changed, 48 insertions, 11 deletions
diff --git a/src/frontend/app/routes/stops-$id.css b/src/frontend/app/routes/stops-$id.css index 9ecac16..782d9a1 100644 --- a/src/frontend/app/routes/stops-$id.css +++ b/src/frontend/app/routes/stops-$id.css @@ -63,6 +63,30 @@ flex-shrink: 0; } +.stops-header > div:first-child { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.star-icon, +.edit-icon { + cursor: pointer; + transition: all 0.2s ease; + color: var(--text-secondary); +} + +.star-icon:hover, +.edit-icon:hover { + color: var(--text-primary); + transform: scale(1.1); +} + +.star-icon.active { + color: #fbbf24; + fill: #fbbf24; +} + .manual-refresh-button { display: flex; align-items: center; diff --git a/src/frontend/app/routes/stops-$id.tsx b/src/frontend/app/routes/stops-$id.tsx index f340009..a2b2da3 100644 --- a/src/frontend/app/routes/stops-$id.tsx +++ b/src/frontend/app/routes/stops-$id.tsx @@ -5,7 +5,7 @@ import { useParams } from "react-router"; import { ErrorDisplay } from "~/components/ErrorDisplay"; import LineIcon from "~/components/LineIcon"; import { StopAlert } from "~/components/StopAlert"; -import { StopMap } from "~/components/StopMapSheet"; +import { StopMapModal } from "~/components/StopMapModal"; import { ConsolidatedCirculationList } from "~/components/Stops/ConsolidatedCirculationList"; import { ConsolidatedCirculationListSkeleton } from "~/components/Stops/ConsolidatedCirculationListSkeleton"; import { type RegionId, getRegionConfig } from "~/config/RegionConfig"; @@ -77,6 +77,10 @@ export default function Estimates() { const [favourited, setFavourited] = useState(false); const [isManualRefreshing, setIsManualRefreshing] = useState(false); + const [isMapModalOpen, setIsMapModalOpen] = useState(false); + const [selectedCirculationIdx, setSelectedCirculationIdx] = useState< + number | undefined + >(undefined); const { region } = useApp(); const regionConfig = getRegionConfig(region); @@ -195,15 +199,16 @@ export default function Estimates() { <div className="page-container stops-page"> <div className="stops-header"> <div> - <Star - className={`star-icon ${favourited ? "active" : ""}`} - onClick={toggleFavourite} - width={20} - /> - <Edit2 - className="edit-icon" - onClick={handleRename} - width={20} /> + <Star + className={`star-icon ${favourited ? "active" : ""}`} + onClick={toggleFavourite} + width={20} + /> + <Edit2 + className="edit-icon" + onClick={handleRename} + width={20} + /> </div> <button @@ -247,12 +252,17 @@ export default function Estimates() { data={data} dataDate={dataDate} regionConfig={regionConfig} + onCirculationClick={(estimate, idx) => { + setSelectedCirculationIdx(idx); + setIsMapModalOpen(true); + }} /> ) : null} </div> + {/* Map Modal - only render if we have stop data */} {stopData && ( - <StopMap + <StopMapModal stop={stopData} region={region} circulations={(data ?? []).map((c) => ({ @@ -260,6 +270,9 @@ export default function Estimates() { route: c.route, currentPosition: c.currentPosition, }))} + isOpen={isMapModalOpen} + onClose={() => setIsMapModalOpen(false)} + selectedCirculationIndex={selectedCirculationIdx} /> )} </div> |
