import React, { useCallback, useEffect, useState } from 'react'; import Modal from 'Components/Modal/Modal'; import usePrevious from 'Helpers/Hooks/usePrevious'; import { sizes } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import InteractiveImportSelectFolderModalContent from './Folder/InteractiveImportSelectFolderModalContent'; import InteractiveImportModalContent from './Interactive/InteractiveImportModalContent'; interface InteractiveImportModalProps { isOpen: boolean; folder?: string; downloadId?: string; modalTitle?: string; onModalClose(): void; } function InteractiveImportModal(props: InteractiveImportModalProps) { const { isOpen, folder, downloadId, modalTitle = translate('ManualImport'), onModalClose, ...otherProps } = props; const [folderPath, setFolderPath] = useState(folder); const previousIsOpen = usePrevious(isOpen); const onFolderSelect = useCallback( (path: string) => { setFolderPath(path); }, [setFolderPath] ); useEffect(() => { setFolderPath(folder); }, [folder, setFolderPath]); useEffect(() => { if (previousIsOpen && !isOpen) { setFolderPath(folder); } }, [folder, previousIsOpen, isOpen, setFolderPath]); return ( {folderPath || downloadId ? ( ) : ( )} ); } export default InteractiveImportModal;