/* * Copyright (C) Contributors to the Suwayomi project * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import FilterListIcon from '@mui/icons-material/FilterList'; import { Button, Fab, Stack } from '@mui/material'; import { Box } from '@mui/system'; import OptionsPanel from 'components/molecules/OptionsPanel'; import React from 'react'; import CheckBoxFilter from 'components/source/filters/CheckBoxFilter'; import HeaderFilter from 'components/source/filters/HeaderFilter'; import SelectFilter from 'components/source/filters/SelectFilter'; import SortFilter from 'components/source/filters/SortFilter'; import TextFilter from 'components/source/filters/TextFilter'; import TriStateFilter from 'components/source/filters/TriStateFilter'; // this can only cycle once, so should be fine // eslint-disable-next-line import/no-cycle import GroupFilter from 'components/source/filters/GroupFilter'; import SeperatorFilter from 'components/source/filters/SeparatorFilter'; interface IFilters { sourceFilter: ISourceFilters[] updateFilterValue: Function group: number | undefined update: any } interface IFilters1 { sourceFilter: ISourceFilters[] updateFilterValue: Function resetFilterValue: Function setTriggerUpdate: Function setSearch: Function update: any } export function Options({ sourceFilter, group, updateFilterValue, update, }: IFilters) { return ( { sourceFilter.map((e: ISourceFilters, index) => { let checkif = update.find((el: { group: number | undefined; position: number; }) => el.group === group && el.position === index); checkif = checkif ? checkif.state : checkif; switch (e.type) { case 'CheckBox': return ( ); case 'Group': return ( ); case 'Header': return ( ); case 'Select': return ( ); case 'Separator': return ( ); case 'Sort': return ( ); case 'Text': return ( ); case 'TriState': return ( ); default: return (); } })} ); } export default function SourceOptions({ sourceFilter, updateFilterValue, resetFilterValue, setTriggerUpdate, setSearch, update, }: IFilters1) { const [FilterOptions, setFilterOptions] = React.useState(false); function handleReset() { resetFilterValue(0); setFilterOptions(false); } function handleSubmit() { setTriggerUpdate(0); setSearch(true); setFilterOptions(false); } return ( <> setFilterOptions(!FilterOptions)} variant="extended" color="primary" > Filter setFilterOptions(false)} > ); }