/* * 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 FilterList from '@mui/icons-material/FilterList'; import IconButton from '@mui/material/IconButton'; import * as React from 'react'; import { useTranslation } from 'react-i18next'; import PopupState, { bindMenu, bindTrigger } from 'material-ui-popup-state'; import Menu from '@mui/material/Menu'; import DownloadIcon from '@mui/icons-material/Download'; import DoneAllIcon from '@mui/icons-material/DoneAll'; import { CustomTooltip } from '@/modules/core/components/CustomTooltip.tsx'; import { ChapterOptions } from '@/modules/chapter/components/ChapterOptions.tsx'; import { isFilterActive, updateChapterListOptions } from '@/modules/chapter/utils/ChapterList.util.tsx'; import { ChapterBookmarkInfo, ChapterDownloadInfo, ChapterIdInfo, ChapterListOptions, } from '@/modules/chapter/Chapter.types.ts'; import { ChaptersDownloadActionMenuItems } from '@/modules/chapter/components/actions/ChaptersDownloadActionMenuItems.tsx'; import { Chapters } from '@/modules/chapter/services/Chapters.ts'; interface IProps { mangaId: number; areAllChaptersRead: boolean; areAllChaptersDownloaded: boolean; options: ChapterListOptions; updateOption: ReturnType; unreadChapters: (ChapterIdInfo & ChapterDownloadInfo & ChapterBookmarkInfo)[]; } export const ChaptersToolbarMenu = ({ mangaId, areAllChaptersRead, areAllChaptersDownloaded, options, updateOption, unreadChapters, }: IProps) => { const { t } = useTranslation(); const [open, setOpen] = React.useState(false); const isFiltered = isFilterActive(options); return ( <> Chapters.markAsRead(unreadChapters, true, mangaId)} color="inherit" > {(popupState) => ( <> {popupState.isOpen && ( )} )} setOpen(true)} color="inherit"> setOpen(false)} options={options} updateOption={updateOption} /> ); };