Fix errors

This commit is contained in:
T'JAMPENS QUENTIN p2406187
2026-02-11 17:08:52 +01:00
parent 87c0cc02e7
commit 451da54fc3
3 changed files with 85 additions and 59 deletions
-56
View File
@@ -1,56 +0,0 @@
import styles from "./Filter.module.css";
import Button from "../ui/button/button.tsx"
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 (
<div className={`${styles.filterContainer} ${isFilterVisible ? styles.filterOpen : styles.filterClose}`}>
<abbr title="Tri alphabétique croissant (A à Z)">
<Button className={`${styles.filterTag} glassCard ${filters.alphabetical !== "asc" ? "" : styles.active}`}
variant={"default"}
onClick={() => setAlphabeticalOrder("asc")}>
<img src={"sortByAlpha.svg"} alt="Tri alphabétique croissant (A à Z)"/>
</Button>
</abbr>
<abbr title="Tri alphabétique décroissant (Z à A)">
<Button className={`${styles.filterTag} glassCard ${filters.alphabetical !== "desc" ? "" : styles.active}`}
variant={"default"}
onClick={() => setAlphabeticalOrder("desc")}>
<img src={"sortByAntiAlpha.svg"} alt="Tri alphabétique décroissant (Z à A)"/>
</Button>
</abbr>
<abbr title="Tri chronologique décroissant (du plus récent au plus ancien)">
<Button className={`${styles.filterTag} glassCard ${filters.yearOrder !== "desc" ? "" : styles.active}`}
variant={"default"}
onClick={() => setYearOrder("desc")}>
<img src={"timerArrowUp.svg"} alt="Tri chronologique décroissant (du plus récent au plus ancien)"/>
</Button>
</abbr>
<abbr title="Tri chronologique croissant (du plus ancien au plus récent)">
<Button className={`${styles.filterTag} glassCard ${filters.yearOrder !== "asc" ? "" : styles.active}`}
variant={"default"}
onClick={() => setYearOrder("asc")}>
<img src={"timerArrowDown.svg"} alt="Tri chronologique croissant (du plus ancien au plus récent)"/>
</Button>
</abbr>
</div>
)
}
export default Filter;
+78
View File
@@ -0,0 +1,78 @@
import styles from "./Filter.module.css";
import Button from "../ui/button/button";
import React from "react";
type FiltersType = {
alphabetical: "asc" | "desc" | null;
yearOrder: "asc" | "desc" | null;
[key: string]: any;
};
type FilterProps = {
isFilterVisible: boolean;
filters: FiltersType;
setFilters: React.Dispatch<React.SetStateAction<FiltersType>>;
};
function Filter({ isFilterVisible, filters, setFilters }: FilterProps): any {
const setAlphabeticalOrder = (order: "asc" | "desc"): void => {
setFilters((prev) => ({
...prev,
alphabetical: prev.alphabetical === order ? null : order
}));
};
const setYearOrder = (order: "asc" | "desc"): void => {
setFilters((prev) => ({
...prev,
yearOrder: prev.yearOrder === order ? null : order
}));
};
return (
<div className={`${styles.filterContainer} ${isFilterVisible ? styles.filterOpen : styles.filterClose}`}>
<abbr title="Tri alphabétique croissant (A à Z)">
<Button
className={`${styles.filterTag} glassCard ${filters.alphabetical !== "asc" ? "" : styles.active}`}
variant={"default"}
onClick={() => setAlphabeticalOrder("asc")}
>
<img src={"sortByAlpha.svg"} alt="Tri alphabétique croissant (A à Z)" />
</Button>
</abbr>
<abbr title="Tri alphabétique décroissant (Z à A)">
<Button
className={`${styles.filterTag} glassCard ${filters.alphabetical !== "desc" ? "" : styles.active}`}
variant={"default"}
onClick={() => setAlphabeticalOrder("desc")}
>
<img src={"sortByAntiAlpha.svg"} alt="Tri alphabétique décroissant (Z à A)" />
</Button>
</abbr>
<abbr title="Tri chronologique décroissant (du plus récent au plus ancien)">
<Button
className={`${styles.filterTag} glassCard ${filters.yearOrder !== "desc" ? "" : styles.active}`}
variant={"default"}
onClick={() => setYearOrder("desc")}
>
<img src={"timerArrowUp.svg"} alt="Tri chronologique décroissant (du plus récent au plus ancien)" />
</Button>
</abbr>
<abbr title="Tri chronologique croissant (du plus ancien au plus récent)">
<Button
className={`${styles.filterTag} glassCard ${filters.yearOrder !== "asc" ? "" : styles.active}`}
variant={"default"}
onClick={() => setYearOrder("asc")}
>
<img src={"timerArrowDown.svg"} alt="Tri chronologique croissant (du plus ancien au plus récent)" />
</Button>
</abbr>
</div>
);
}
export default Filter;
+7 -3
View File
@@ -1,12 +1,16 @@
import styles from "../ToolBar.module.css"
import Button from "../../ui/button/button";
import { useState } from "react";
import Filter from "../../Filter/Filter.jsx";
import Filter from "../../Filter/Filter";
interface Filters {
alphabetical: "asc" | "desc";
yearOrder: "asc" | "desc";
}
interface FilterBtnProps {
setFilters: (filter: string) => void;
filters: string;
setFilters: any
filters: Filters
}
export default function FilterBtn({ setFilters, filters }: FilterBtnProps) {