From 31ea2522a266087ee7496e0dcb6b626efde4adfd Mon Sep 17 00:00:00 2001 From: MattWong-ca Date: Fri, 6 Dec 2024 14:38:09 -0500 Subject: [PATCH] WIP: bulk import modal UX --- src/files/FilesPage.js | 9 +- src/files/file-input/FileInput.js | 14 +- src/files/header/Header.js | 2 +- src/files/modals/Modals.js | 18 ++ .../bulk-import-modal/BulkImportModal.js | 185 ++++++++++++++++++ 5 files changed, 221 insertions(+), 7 deletions(-) create mode 100644 src/files/modals/bulk-import-modal/BulkImportModal.js diff --git a/src/files/FilesPage.js b/src/files/FilesPage.js index ccad9f994..e36cf8406 100644 --- a/src/files/FilesPage.js +++ b/src/files/FilesPage.js @@ -15,7 +15,7 @@ import FilesList from './files-list/FilesList.js' import { getJoyrideLocales } from '../helpers/i8n.js' // Icons -import Modals, { DELETE, NEW_FOLDER, SHARE, RENAME, ADD_BY_PATH, CLI_TUTOR_MODE, PINNING, PUBLISH } from './modals/Modals.js' +import Modals, { DELETE, NEW_FOLDER, SHARE, RENAME, ADD_BY_PATH, BULK_CID_IMPORT, CLI_TUTOR_MODE, PINNING, PUBLISH } from './modals/Modals.js' import Header from './header/Header.js' import FileImportStatus from './file-import-status/FileImportStatus.js' import { useExplore } from 'ipld-explorer-components/providers' @@ -72,7 +72,7 @@ const FilesPage = ({ doFilesWrite(raw, root) } - const onAddBulkCid = (raw, root = '') => { + const onBulkCidImport = (raw, root = '') => { if (root === '') root = files.path doFilesAddBulkCid(raw, root) } @@ -209,9 +209,11 @@ const FilesPage = ({ files={files} onNavigate={doFilesNavigateTo} onAddFiles={onAddFiles} - onAddBulkCid={onAddBulkCid} + // onAddBulkCid={onAddBulkCid} + // onBulkCidImport={onBulkCidImport} onMove={doFilesMove} onAddByPath={(files) => showModal(ADD_BY_PATH, files)} + onBulkCidImport={(files) => showModal(BULK_CID_IMPORT, files)} onNewFolder={(files) => showModal(NEW_FOLDER, files)} onCliTutorMode={() => showModal(CLI_TUTOR_MODE)} handleContextMenu={(...args) => handleContextMenu(...args, true)} /> @@ -232,6 +234,7 @@ const FilesPage = ({ onShareLink={doFilesShareLink} onRemove={doFilesDelete} onAddByPath={onAddByPath} + onBulkCidImport={onBulkCidImport} onPinningSet={doSetPinning} onPublish={doPublishIpnsKey} cliOptions={cliOptions} diff --git a/src/files/file-input/FileInput.js b/src/files/file-input/FileInput.js index 8092cc03f..7b6cf6650 100644 --- a/src/files/file-input/FileInput.js +++ b/src/files/file-input/FileInput.js @@ -51,7 +51,8 @@ class FileInput extends React.Component { } onBulkCidInputChange = (input) => async () => { - this.props.onAddBulkCid(normalizeFiles(input.files)) + console.log('onBulkCidInputChange', input) + this.props.onBulkCidImport(normalizeFiles(input.files)) input.value = null } @@ -60,6 +61,11 @@ class FileInput extends React.Component { this.toggleDropdown() } + onBulkCidImport = () => { + this.props.onBulkCidImport() + this.toggleDropdown() + } + onNewFolder = () => { this.props.onNewFolder() this.toggleDropdown() @@ -102,7 +108,9 @@ class FileInput extends React.Component { {t('newFolder')} -