import React from "react"; import { useTranslation } from "next-i18next"; import classNames from "classnames"; import RaidDropdown from "~components/RaidDropdown"; import "./index.scss"; interface Props { children: React.ReactNode; scrolled: boolean; element?: number; raidSlug?: string; recency?: number; onFilter: ({ element, raidSlug, recency, }: { element?: number; raidSlug?: string; recency?: number; }) => void; } const FilterBar = (props: Props) => { // Set up translation const { t } = useTranslation("common"); // Set up refs for filter dropdowns const elementSelect = React.createRef(); const raidSelect = React.createRef(); const recencySelect = React.createRef(); // Set up classes object for showing shadow on scroll const classes = classNames({ FilterBar: true, shadow: props.scrolled, }); function elementSelectChanged() { const elementValue = elementSelect.current ? parseInt(elementSelect.current.value) : -1; props.onFilter({ element: elementValue }); } function recencySelectChanged() { const recencyValue = recencySelect.current ? parseInt(recencySelect.current.value) : -1; props.onFilter({ recency: recencyValue }); } function raidSelectChanged(slug?: string) { props.onFilter({ raidSlug: slug }); } return (
{props.children}
); }; export default FilterBar;