diff --git a/src/components/Filter/Filter.jsx b/src/components/Filter/Filter.jsx
new file mode 100644
index 0000000..f726364
--- /dev/null
+++ b/src/components/Filter/Filter.jsx
@@ -0,0 +1,36 @@
+import styles from "./Filter.module.css";
+
+function Filter({isFilterVisible, filters, setFilters}){
+ const setAlphabeticalOrder = (order) => {
+ setFilters(prev => ({
+ ...prev,
+ alphabetical : prev.alphabetical === order ? null : order
+ }));
+ };
+
+ const setYearOrder = (order) => {
+ setFilters(prev => ({
+ ...prev,
+ yearOrder: prev.yearOrder === order ? null : order
+ }));
+ };
+
+ return (
+
+
+
+
+ )
+}
+
+export default Filter;
\ No newline at end of file
diff --git a/src/components/Filter/Filter.module.css b/src/components/Filter/Filter.module.css
new file mode 100644
index 0000000..cdfc895
--- /dev/null
+++ b/src/components/Filter/Filter.module.css
@@ -0,0 +1,44 @@
+.filterContainer {
+ display: flex;
+ flex-direction: column;
+ gap: 0.4rem;
+}
+
+.filterOpen {
+ display: flex;
+}
+
+.filterClose{
+ display: none;
+}
+
+
+.filterTag {
+ border: none;
+ background: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 50%;
+ width: 45px;
+ height: 45px;
+}
+
+.filterTag:focus {
+ outline: none;
+}
+.filterTag:focus-visible {
+ outline: 2px solid black;
+}
+
+.filterTag:hover {
+ cursor: pointer;
+ svg{
+ fill: #019AFF;
+ }
+}
+
+
+.filterTag svg {
+ transform: scale(4);
+}
\ No newline at end of file
diff --git a/src/index.css b/src/index.css
index b6c5ed6..5ed7c85 100644
--- a/src/index.css
+++ b/src/index.css
@@ -25,7 +25,7 @@
.content {
padding: 1.5rem;
z-index: 1;
-
+ min-height: 100vh;
}
diff --git a/src/pages/Events/EventsPage.jsx b/src/pages/Events/EventsPage.jsx
index 16abc09..46f2770 100644
--- a/src/pages/Events/EventsPage.jsx
+++ b/src/pages/Events/EventsPage.jsx
@@ -1,12 +1,23 @@
import {useState} from "react";
import Event from "../../components/Event/Event.jsx";
import {Link} from "react-router";
-import styles from "./EventsPage.module.css"
+import styles from "./EventsPage.module.css";
+import Filter from "../../components/Filter/Filter.jsx";
function EventsPage(){
- const [events, setEvents] = useState([
+ const [isFilterVisible, setIsFilterVisible] = useState(false);
+ const toggleFilters = () => {
+ setIsFilterVisible(prev => !prev);
+ };
+
+ const [filters, setFilters] = useState({
+ alphabetical: "asc",
+ yearOrder: "asc",
+ });
+
+ const [events] = useState([
{
id: 1,
name: "Marathon de la Ville",
@@ -184,11 +195,16 @@ function EventsPage(){
className={`${styles.createButton} glassCard`}>
+
-
+
)
diff --git a/src/pages/Events/EventsPage.module.css b/src/pages/Events/EventsPage.module.css
index 6e949d2..19c0be3 100644
--- a/src/pages/Events/EventsPage.module.css
+++ b/src/pages/Events/EventsPage.module.css
@@ -23,6 +23,17 @@
}
+.filterContainer{
+ padding: 0;
+ border-radius: 30px;
+ overflow: visible;
+}
+
+.filterMenu{
+ padding: 5px 5px 5px 5px;
+}
+
+
.createButton, .sortButton {
display: flex;
align-items: center;
@@ -40,13 +51,16 @@
}
.sortButton svg {
- transform: scale(0.8);
+ transform: scale(1.5);
fill: #019AFF;
}
-.createButton:hover, .sortButton:hover {
- transform: translateY(-5px);
+.sortButton:hover {
+ cursor: pointer;
+}
+.createButton:hover, .mobileFilter:hover {
+ transform: translateY(-5px);
}