diff --git a/client/src/pages/CreateEventsPage.tsx b/client/src/pages/CreateEventsPage.tsx index a1b4c7e..ac34db5 100644 --- a/client/src/pages/CreateEventsPage.tsx +++ b/client/src/pages/CreateEventsPage.tsx @@ -36,9 +36,12 @@ const validationSchema = Yup.object({ .required("Date is required"), time: Yup.string().required("Time is required"), location: Yup.string().required("Location is required"), - category: Yup.string().required("Category is required"), + category: Yup.string() + .oneOf(["Events", "Workshops", "Educational Talks"], "Invalid category") + .required("Category is required"), slotsAvailable: Yup.number() .integer() + .positive("Slots Avaliable must be greater than zero") .required("Slots Available is required"), evtPicture: Yup.mixed().required("Event picture is required"), }); @@ -179,12 +182,16 @@ const CreateEventsPage = () => { /> )} - { time: eventData?.time || "", location: eventData?.location || "", category: eventData?.category || "", - slotsAvailable: eventData?.slotsAvailable || "", }; const handleSubmit = async ( @@ -173,19 +171,16 @@ const EditEventsPage = () => { /> )} - - diff --git a/client/src/pages/EventDetailsPage.tsx b/client/src/pages/EventDetailsPage.tsx index d13b60e..e1a4091 100644 --- a/client/src/pages/EventDetailsPage.tsx +++ b/client/src/pages/EventDetailsPage.tsx @@ -131,13 +131,13 @@ const EventDetailsPage = () => { <> {event && navigate("/events")} // Navigate directly to the events page > Back to Events - + {/* Event Image Section */} {event.evtPicture && ( @@ -154,28 +154,28 @@ const EventDetailsPage = () => { )} {/* Event Details Section */} - + {event.title} - - {event.description} - + + {event.description} + Date: {new Date(event.date).toLocaleDateString()} - + Time: {event.time} - + Location: {event.location} - + Category: {event.category} - + Slots Available: {event.slotsAvailable} handleRegister()} disabled={isRegistering} > @@ -193,17 +193,16 @@ const EventDetailsPage = () => { {similarEvents.length === 0 ? ( - No similar events available. + No similar events available. ) : ( similarEvents.map((similarEvent: any) => ( - + {similarEvent.title} - + {similarEvent.evtPicture && ( { { console.log(`Navigating to event details for ID: ${similarEvent.id}`); console.log("Access Token:", localStorage.getItem("accessToken")); diff --git a/client/src/pages/EventsPage.tsx b/client/src/pages/EventsPage.tsx index a253a14..dd1e97c 100644 --- a/client/src/pages/EventsPage.tsx +++ b/client/src/pages/EventsPage.tsx @@ -25,7 +25,11 @@ interface Event { const EventsPage: React.FC = () => { const [events, setEvents] = useState([]); const [filteredEvents, setFilteredEvents] = useState([]); - const [categories, setCategories] = useState([]); + const [categories, setCategories] = useState([ + "Events", + "Workshops", + "Educational Talks" + ]); const [townCouncils, setTownCouncils] = useState([]); const [selectedCategory, setSelectedCategory] = useState(""); const [selectedTownCouncil, setSelectedTownCouncil] = useState(""); @@ -48,11 +52,6 @@ const EventsPage: React.FC = () => { setEvents(futureEvents); setFilteredEvents(futureEvents); - // Extract unique categories and locations from events - const uniqueCategories = Array.from( - new Set(res.data.map((event) => event.category).filter(Boolean)) - ); - setCategories(uniqueCategories); } catch (error) { console.error("Failed to fetch events:", error); } @@ -124,7 +123,6 @@ const EventsPage: React.FC = () => { ))} - {townCouncils.length > 0 && ( { justifyContent: "space-between", }} > - + {event.title} - + { className="flex flex-col items-start p-4" style={{ paddingTop: "0px" }} > - {event.description} + {event.description} navigate(`/events/view/${event.id}`)}
{event.description}
+ + {event.description} + Date: {new Date(event.date).toLocaleDateString()} - + Time: {event.time} - + Location: {event.location} - + Category: {event.category} - + Slots Available: {event.slotsAvailable} handleRegister()} disabled={isRegistering} > @@ -193,17 +193,16 @@ const EventDetailsPage = () => { {similarEvents.length === 0 ? ( - No similar events available. + No similar events available. ) : ( similarEvents.map((similarEvent: any) => ( - + {similarEvent.title} - + {similarEvent.evtPicture && ( { { console.log(`Navigating to event details for ID: ${similarEvent.id}`); console.log("Access Token:", localStorage.getItem("accessToken")); diff --git a/client/src/pages/EventsPage.tsx b/client/src/pages/EventsPage.tsx index a253a14..dd1e97c 100644 --- a/client/src/pages/EventsPage.tsx +++ b/client/src/pages/EventsPage.tsx @@ -25,7 +25,11 @@ interface Event { const EventsPage: React.FC = () => { const [events, setEvents] = useState([]); const [filteredEvents, setFilteredEvents] = useState([]); - const [categories, setCategories] = useState([]); + const [categories, setCategories] = useState([ + "Events", + "Workshops", + "Educational Talks" + ]); const [townCouncils, setTownCouncils] = useState([]); const [selectedCategory, setSelectedCategory] = useState(""); const [selectedTownCouncil, setSelectedTownCouncil] = useState(""); @@ -48,11 +52,6 @@ const EventsPage: React.FC = () => { setEvents(futureEvents); setFilteredEvents(futureEvents); - // Extract unique categories and locations from events - const uniqueCategories = Array.from( - new Set(res.data.map((event) => event.category).filter(Boolean)) - ); - setCategories(uniqueCategories); } catch (error) { console.error("Failed to fetch events:", error); } @@ -124,7 +123,6 @@ const EventsPage: React.FC = () => { ))} - {townCouncils.length > 0 && ( { justifyContent: "space-between", }} > - + {event.title} - + { className="flex flex-col items-start p-4" style={{ paddingTop: "0px" }} > - {event.description} + {event.description} navigate(`/events/view/${event.id}`)}
Date: {new Date(event.date).toLocaleDateString()}
+
Time: {event.time}
Location: {event.location}
Category: {event.category}
Slots Available: {event.slotsAvailable}
No similar events available.