diff --git a/src/pages/Events/EventsPage.jsx b/src/pages/Events/EventsPage.jsx deleted file mode 100644 index 256e825..0000000 --- a/src/pages/Events/EventsPage.jsx +++ /dev/null @@ -1,33 +0,0 @@ -import { useState, useContext } from "react"; -import Event from "./components/Event/Event.jsx"; -import styles from "./EventsPage.module.css"; -import ToolBar from "../../components/ToolBar/ToolBar.jsx"; -import filter from "../../utils/filter.js"; -import { EventContext } from "../../contexts/Events/EventContext.js"; - - -function EventsPage(){ - - const { events } = useContext(EventContext); - - const [filters, setFilters] = useState({ - alphabetical: "asc", - yearOrder: "desc", - }); - - return ( -
- -
- {Array.isArray(events) && events.length > 0 ? ( - filter(events, filters, "event").map((event, index) => ( - - ))) : ( -

Aucun événement n'existe pour le moment

- )} -
-
- ) -} - -export default EventsPage; \ No newline at end of file diff --git a/src/pages/Events/EventsPage.tsx b/src/pages/Events/EventsPage.tsx new file mode 100644 index 0000000..f21e9b0 --- /dev/null +++ b/src/pages/Events/EventsPage.tsx @@ -0,0 +1,41 @@ +import { useState, useContext } from "react"; +import Event from "./components/Event/Event"; +import styles from "./EventsPage.module.css"; +import ToolBar from "../../components/ToolBar/ToolBar"; +import filter from "../../utils/filter"; +import { EventContext, EventGroup, EventContextType } from "../../contexts/Events/EventContext"; + +interface FilterOptions { + alphabetical: "asc" | "desc"; + yearOrder: "asc" | "desc"; +} + +function EventsPage() { + const eventContext = useContext(EventContext); + if (!eventContext) { + throw new Error("EventsPage must be used within an EventContext.Provider"); + } + const { events } = eventContext; + + const [filters, setFilters] = useState({ + alphabetical: "asc", + yearOrder: "desc", + }); + + return ( +
+ +
+ {Array.isArray(events) && events.length > 0 ? ( + filter(events, filters, "event").map((event: EventGroup, index: number) => ( + + )) + ) : ( +

Aucun événement n'existe pour le moment

+ )} +
+
+ ); +} + +export default EventsPage; \ No newline at end of file