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 } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import styles from './ManageImportListsEditModalContent.css'; interface SavePayload { enableAutomaticAdd?: boolean; qualityProfileId?: number; metadataProfileId?: number; rootFolderPath?: string; } interface ManageImportListsEditModalContentProps { importListIds: number[]; onSavePress(payload: object): void; onModalClose(): void; } const NO_CHANGE = 'noChange'; const autoAddOptions = [ { key: NO_CHANGE, get value() { return translate('NoChange'); }, isDisabled: true, }, { key: 'enabled', get value() { return translate('Enabled'); }, }, { key: 'disabled', get value() { return translate('Disabled'); }, }, ]; function ManageImportListsEditModalContent( props: ManageImportListsEditModalContentProps ) { const { importListIds, onSavePress, onModalClose } = props; const [enableAutomaticAdd, setEnableAutomaticAdd] = useState(NO_CHANGE); const [qualityProfileId, setQualityProfileId] = useState( NO_CHANGE ); const [metadataProfileId, setMetadataProfileId] = useState( NO_CHANGE ); const [rootFolderPath, setRootFolderPath] = useState(NO_CHANGE); const save = useCallback(() => { let hasChanges = false; const payload: SavePayload = {}; if (enableAutomaticAdd !== NO_CHANGE) { hasChanges = true; payload.enableAutomaticAdd = enableAutomaticAdd === 'enabled'; } if (qualityProfileId !== NO_CHANGE) { hasChanges = true; payload.qualityProfileId = qualityProfileId as number; } if (metadataProfileId !== NO_CHANGE) { hasChanges = true; payload.metadataProfileId = metadataProfileId as number; } if (rootFolderPath !== NO_CHANGE) { hasChanges = true; payload.rootFolderPath = rootFolderPath; } if (hasChanges) { onSavePress(payload); } onModalClose(); }, [ enableAutomaticAdd, qualityProfileId, metadataProfileId, rootFolderPath, onSavePress, onModalClose, ]); const onInputChange = useCallback( ({ name, value }: { name: string; value: string }) => { switch (name) { case 'enableAutomaticAdd': setEnableAutomaticAdd(value); break; case 'qualityProfileId': setQualityProfileId(value); break; case 'metadataProfileId': setMetadataProfileId(value); break; case 'rootFolderPath': setRootFolderPath(value); break; default: console.warn(`EditImportListModalContent Unknown Input: '${name}'`); } }, [] ); const selectedCount = importListIds.length; return ( {translate('EditSelectedImportLists')} {translate('AutomaticAdd')} {translate('QualityProfile')} {translate('MetadataProfile')} {translate('RootFolder')}
{translate('CountImportListsSelected', { selectedCount })}
); } export default ManageImportListsEditModalContent;