import React, { useCallback, useState } from 'react'; import FormGroup from 'Components/Form/FormGroup'; import FormInputGroup from 'Components/Form/FormInputGroup'; import FormLabel from 'Components/Form/FormLabel'; import Button from 'Components/Link/Button'; import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; import { inputTypes, kinds } from 'Helpers/Props'; import { setSeriesDeleteOptions, useSeriesDeleteOptions, } from 'Series/seriesOptionsStore'; import { useBulkDeleteSeries } from 'Series/useSeries'; import { InputChanged } from 'typings/inputs'; import translate from 'Utilities/String/translate'; import SeriesDeleteList from './SeriesDeleteList'; import useSelectedSeriesStats from './useSelectedSeriesStats'; import styles from './DeleteSeriesModalContent.css'; export interface DeleteSeriesModalContentProps { onModalClose(): void; } function DeleteSeriesModalContent({ onModalClose, }: DeleteSeriesModalContentProps) { const { addImportListExclusion } = useSeriesDeleteOptions(); const { bulkDeleteSeries } = useBulkDeleteSeries(); const [deleteFiles, setDeleteFiles] = useState(false); const { series, seriesIds, totalEpisodeFileCount, totalSizeOnDisk } = useSelectedSeriesStats(); const onDeleteFilesChange = useCallback( ({ value }: InputChanged) => { setDeleteFiles(value); }, [setDeleteFiles] ); const onDeleteOptionChange = useCallback( ({ name, value }: { name: string; value: boolean }) => { setSeriesDeleteOptions({ [name]: value, }); }, [] ); const onDeleteSeriesConfirmed = useCallback(() => { setDeleteFiles(false); bulkDeleteSeries({ seriesIds, deleteFiles, addImportListExclusion, }); onModalClose(); }, [ deleteFiles, addImportListExclusion, setDeleteFiles, seriesIds, bulkDeleteSeries, onModalClose, ]); return ( {translate('DeleteSelectedSeries')}
{translate('AddListExclusion')} {series.length > 1 ? translate('DeleteSeriesFolders') : translate('DeleteSeriesFolder')} 1 ? translate('DeleteSeriesFoldersHelpText') : translate('DeleteSeriesFolderHelpText') } kind="danger" onChange={onDeleteFilesChange} />
{deleteFiles ? translate('DeleteSeriesFolderCountWithFilesConfirmation', { count: series.length, }) : translate('DeleteSeriesFolderCountConfirmation', { count: series.length, })}
); } export default DeleteSeriesModalContent;