From 22159f4f8875a2980a027ae0a6d2064c7deb2c6b Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 14 Mar 2025 20:46:07 +0000 Subject: [PATCH] [frontend]: Create BusPopup --- frontend/src/App.jsx | 41 ++++++++++++---------------- frontend/src/components/BusPopup.jsx | 36 ++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 24 deletions(-) create mode 100644 frontend/src/components/BusPopup.jsx diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 965d430..714487b 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -12,6 +12,7 @@ import LoadingOverlay from "./components/LoadingOverlay"; import LuasPopup from "./components/LuasPopup"; import TrainStationPopup from "./components/TrainStationPopup"; import IrishRailTrainPopup from "./components/IrishRailTrainPopup"; +import BusPopup from "./components/BusPopup.jsx"; const TRANSIENT_DATA_API = "https://281bc6mcm5.execute-api.us-east-1.amazonaws.com/transient_data"; const PERMANENT_DATA_API = "https://a6y312dpuj.execute-api.us-east-1.amazonaws.com/permanent_data"; @@ -248,20 +249,6 @@ function App() { icon += "NotRunning"; } - // popupContent = ( - //
- //

{objectTitle}

- // - //
- // ); - popupContent = ( -

{objectTitle}

- - + + //
+ //

{objectTitle}

+ //
    + //
  • Bus ID: {item.busID}
  • + //
  • Bus Route ID: {item.busRoute}
  • + //
  • Bus Route Short Name: {item.busRouteShortName}
  • + //
  • Bus Route Long Name: {item.busRouteLongName}
  • + //
  • Agency: {item.busRouteAgencyName}
  • + //
+ //
); markerText = item.busRouteAgencyName + " " + item.busRouteShortName + " " + item.busRouteLongName; diff --git a/frontend/src/components/BusPopup.jsx b/frontend/src/components/BusPopup.jsx new file mode 100644 index 0000000..c2eef44 --- /dev/null +++ b/frontend/src/components/BusPopup.jsx @@ -0,0 +1,36 @@ +import React, { useState } from "react"; +import { useMap } from "react-leaflet"; + +const BusPopup = ({ item, objectTitle, toggleFavourite, favourites }) => { + const [isFavourite, setIsFavourite] = useState(favourites.Bus?.includes(item.busRoute)); + + const handleToggleFavourite = () => { + toggleFavourite("Bus", item.busRoute); + setIsFavourite((prev) => !prev); + }; + + const map = useMap(); // Access the Leaflet map instance + + return ( +
+
+

{objectTitle}

+ +
+
    +
  • Bus ID: {item.busID}
  • +
  • Route: {item.busRoute}
  • +
  • Short Name: {item.busRouteShortName}
  • +
  • Long Name: {item.busRouteLongName}
  • +
  • Agency: {item.busRouteAgencyName}
  • +
+
+ ); +}; + +export default BusPopup; \ No newline at end of file