diff --git a/components/PartsList/index.js b/components/PartsList/index.js index 0972b91..e3ecf91 100644 --- a/components/PartsList/index.js +++ b/components/PartsList/index.js @@ -7,6 +7,8 @@ import { FilterContainer } from "../StyledFilter/StyledFilter.styled.js"; export default function PartsList({ parts }) { const [categoryFilter, setCategoryFilter] = useState("alle"); const [statusFilter, setStatusFilter] = useState("alle"); + const [activeCategoryFilter, setActiveCategoryFilter] = useState("alle"); + const [activeStatusFilter, setActiveStatusFilter] = useState("alle"); // filter the parts array based on the categoryFilter and statusFilter const filteredParts = parts.filter((part) => { @@ -30,31 +32,86 @@ export default function PartsList({ parts }) { <> {/* render a filterButton for each object in 'sets' with given 'function', 'value to set' and 'name' */} + {/* funct2 + value2 for activeFilter-highlighting */} diff --git a/components/StyledFilter/StyledFilter.styled.js b/components/StyledFilter/StyledFilter.styled.js index ffb4c3a..02080ec 100644 --- a/components/StyledFilter/StyledFilter.styled.js +++ b/components/StyledFilter/StyledFilter.styled.js @@ -16,5 +16,5 @@ export const FilterButtonContainer = styled.section` `; export const FilterButton = styled.button` - font-weight: bold; + ${(props) => (props.isActiveFilter === true ? "font-weight: bold" : "")} `; diff --git a/components/StyledFilter/index.js b/components/StyledFilter/index.js index e0e36b0..30d6dde 100644 --- a/components/StyledFilter/index.js +++ b/components/StyledFilter/index.js @@ -1,12 +1,19 @@ import { FilterButtonContainer, FilterButton } from "./StyledFilter.styled"; -export default function StyledFilter({ sets }) { - // Mapping over the "sets" array and rendering a FilterButton component for each element with the given "function", "value to set" and "name" +export default function StyledFilter({ filters, activeFilter }) { + // Mapping over given "filters" array of objects and rendering a FilterButton component for each element with the given "functionToSet", "valueToSet" and "buttonName" return ( - {sets.map((set) => ( - set.funct(set.value)}> - {set.name} + {filters.map((filter) => ( + { + filter.functionToSet(filter.valueToSet); + filter.activeFunctionToSet(filter.activeValueToSet); + }} + isActiveFilter={filter.activeValueToSet === activeFilter} + > + {filter.buttonName} ))}