Create FilterBtn
This commit is contained in:
@@ -1,17 +1,12 @@
|
|||||||
import styles from "./ToolBar.module.css"
|
import styles from "./ToolBar.module.css"
|
||||||
import Filter from "../Filter/Filter.jsx";
|
import { useContext } from "react";
|
||||||
import {useContext, useState} from "react";
|
|
||||||
import CreateEventBtn from "../createEventBtn/CreateEventBtn.jsx";
|
import CreateEventBtn from "../createEventBtn/CreateEventBtn.jsx";
|
||||||
import Button from "../ui/button/button.tsx";
|
|
||||||
import { AuthContext } from "../../contexts/auth/AuthContext.js";
|
import { AuthContext } from "../../contexts/auth/AuthContext.js";
|
||||||
import SearchBtn from "./components/searchBtn/SearchBtn.tsx";
|
import SearchBtn from "./tools/SearchBtn.tsx";
|
||||||
|
import FilterBtn from "./tools/FilterBtn.tsx";
|
||||||
|
|
||||||
function ToolBar({setFilters, filters, showCreate = true}) {
|
function ToolBar({setFilters, filters, showCreate = true}) {
|
||||||
const { user } = useContext(AuthContext);
|
const { user } = useContext(AuthContext);
|
||||||
const [isFilterVisible, setIsFilterVisible] = useState(false);
|
|
||||||
const toggleFilters = () => {
|
|
||||||
setIsFilterVisible(prev => !prev);
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@@ -21,15 +16,7 @@ function ToolBar({setFilters, filters, showCreate = true}) {
|
|||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
<SearchBtn />
|
<SearchBtn />
|
||||||
|
<FilterBtn setFilters={setFilters} filters={filters} />
|
||||||
<div className={`${styles.filterContainer} ${isFilterVisible ? "glassCard" : ""}`}>
|
|
||||||
<Button className={`${isFilterVisible ? "" : styles.mobileFilter} ${styles.sortButton} glassCard`} variant={"default"} onClick={toggleFilters}>
|
|
||||||
<img src="filter.svg" alt="Filtrer"/>
|
|
||||||
</Button>
|
|
||||||
<div className={styles.filterMenu}>
|
|
||||||
<Filter isFilterVisible={isFilterVisible} filters={filters} setFilters={setFilters}/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import styles from "../ToolBar.module.css"
|
||||||
|
import Button from "../../ui/button/button";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import SearchBar from "../../SearchBar/SearchBar";
|
||||||
|
import Filter from "../../Filter/Filter.jsx";
|
||||||
|
|
||||||
|
|
||||||
|
interface FilterBtnProps {
|
||||||
|
setFilters: (filter: string) => void;
|
||||||
|
filters: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function FilterBtn({ setFilters, filters }: FilterBtnProps) {
|
||||||
|
|
||||||
|
const [isFilterVisible, setIsFilterVisible] = useState(false);
|
||||||
|
|
||||||
|
const toggleFilters = () => {
|
||||||
|
setIsFilterVisible(prev => !prev);
|
||||||
|
};
|
||||||
|
|
||||||
|
return <div className={`${styles.filterContainer} ${isFilterVisible ? "glassCard" : ""}`}>
|
||||||
|
<Button className={`${isFilterVisible ? "" : styles.mobileFilter} ${styles.sortButton} glassCard`} variant={"default"} onClick={toggleFilters}>
|
||||||
|
<img src="filter.svg" alt="Filtrer"/>
|
||||||
|
</Button>
|
||||||
|
<div className={styles.filterMenu}>
|
||||||
|
<Filter isFilterVisible={isFilterVisible} filters={filters} setFilters={setFilters}/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user