diff --git a/rise-dc-app/src/App.tsx b/rise-dc-app/src/App.tsx index 63e39c2..c1e4f80 100644 --- a/rise-dc-app/src/App.tsx +++ b/rise-dc-app/src/App.tsx @@ -11,6 +11,8 @@ import InstructionPage from "./pages/cookbook/InstructionPage"; import RecipeComplete from "./scheduling_components/pages/RecipeComplete"; import GroceryList from "./pages/cookbook/GroceryList"; import GroceryShopping from "./pages/cookbook/GroceryShopping"; +import StaffHome from "./pages/StaffHome"; +import EditParticipant from "./pages/EditParticipant"; function App() { return ( @@ -37,6 +39,9 @@ function App() { element={} /> } /> + + } /> + } /> ); diff --git a/rise-dc-app/src/pages/EditParticipant.tsx b/rise-dc-app/src/pages/EditParticipant.tsx new file mode 100644 index 0000000..356b45c --- /dev/null +++ b/rise-dc-app/src/pages/EditParticipant.tsx @@ -0,0 +1,110 @@ +import React, { useState } from "react"; +import { Box } from "@mui/material"; +import back from "../scheduling_components/icon_components/back.png"; +import { useNavigate } from "react-router-dom"; +import styles from "../scheduling_components/PlanYourDay.module.css"; +import EventSelectionModal from "../scheduling_components/EventSelectionModal"; +import EventCard from "../scheduling_components/EventCard"; + +type EventData = { + name: string; + startTime: { hour: number; minute: number; period: "AM" | "PM" }; + endTime: { hour: number; minute: number; period: "AM" | "PM" }; +}; + +export default function EditParticipant() { + const [events, setEvents] = useState([]); + const [isModalOpen, setIsModalOpen] = useState(false); + + const navigate = useNavigate(); + + const openPlanner = () => { + setIsModalOpen(true); + }; + + const closePlanner = () => { + setIsModalOpen(false); + }; + + const addEvent = (event: { + name: string; + startTime: { hour: number; minute: number; period: "AM" | "PM" }; + endTime: { hour: number; minute: number; period: "AM" | "PM" }; + steps?: any[]; + }) => { + setEvents((prev) => { + const newEvents = [ + ...prev, + { + name: event.name, + startTime: event.startTime, + endTime: event.endTime, + }, + ]; + // Sort by start time (from teammate's code) + newEvents.sort((a, b) => { + const aHour24 = + a.startTime.period === "PM" && a.startTime.hour !== 12 + ? a.startTime.hour + 12 + : a.startTime.hour === 12 && a.startTime.period === "AM" + ? 0 + : a.startTime.hour; + const bHour24 = + b.startTime.period === "PM" && b.startTime.hour !== 12 + ? b.startTime.hour + 12 + : b.startTime.hour === 12 && b.startTime.period === "AM" + ? 0 + : b.startTime.hour; + if (aHour24 !== bHour24) return aHour24 - bHour24; + return a.startTime.minute - b.startTime.minute; + }); + return newEvents; + }); + setIsModalOpen(false); // close modal after adding + }; + + return ( +
+
+ +
+
+
+ navigate("/")} + /> +
+ +
+

[Name Here]

+
+
+ +
+ {events.map((event, idx) => ( +
+ +
+ ))} +
+ + + +
+
+ ); +} diff --git a/rise-dc-app/src/pages/StaffHome.tsx b/rise-dc-app/src/pages/StaffHome.tsx new file mode 100644 index 0000000..ee60e53 --- /dev/null +++ b/rise-dc-app/src/pages/StaffHome.tsx @@ -0,0 +1,22 @@ + +export default function StaffHome() { + return ( +
+ +
+

Participants

+
+ +

Choose a Participant

+ + + +
+ + ); +} \ No newline at end of file