explorer: implement duplicate file feature

This commit is contained in:
David Lechner
2022-04-08 18:11:09 -05:00
parent 30741b13ef
commit e0a6926d01
25 changed files with 693 additions and 37 deletions
+1
View File
@@ -18,6 +18,7 @@ export enum I18nId {
ExplorerFailedToImportFiles = 'explorer.failedToImportFiles',
ExplorerFailedToCreate = 'explorer.failedToCreate',
ExplorerFailedToDelete = 'explorer.failedToDelete',
ExplorerFailedToDuplicate = 'explorer.failedToDuplicate',
ExplorerFailedToExport = 'explorer.failedToExport',
ExplorerFailedToArchive = 'explorer.failedToArchive',
FileStorageFailedToInitialize = 'fileStorage.failedToInitialize',
+6
View File
@@ -21,6 +21,7 @@ import {
explorerDidFailToArchiveAllFiles,
explorerDidFailToCreateNewFile,
explorerDidFailToDeleteFile,
explorerDidFailToDuplicateFile,
explorerDidFailToExportFile,
explorerDidFailToImportFiles,
} from '../explorer/actions';
@@ -112,6 +113,7 @@ test.each([
explorerDidFailToArchiveAllFiles(new Error('test error')),
explorerDidFailToImportFiles(new Error('test error')),
explorerDidFailToCreateNewFile(new Error('test error')),
explorerDidFailToDuplicateFile('test.file', new Error('test error')),
explorerDidFailToExportFile('test.file', new Error('test error')),
explorerDidFailToDeleteFile('test.file', new Error('test error')),
editorDidFailToOpenFile('test.file', new Error('test error')),
@@ -137,6 +139,10 @@ test.each([
explorerDidFailToArchiveAllFiles(new DOMException('test message', 'AbortError')),
explorerDidFailToImportFiles(new DOMException('test message', 'AbortError')),
explorerDidFailToCreateNewFile(new DOMException('test message', 'AbortError')),
explorerDidFailToDuplicateFile(
'test.file',
new DOMException('test message', 'AbortError'),
),
explorerDidFailToExportFile(
'test.file',
new DOMException('test message', 'AbortError'),
+13
View File
@@ -22,6 +22,7 @@ import {
explorerDidFailToArchiveAllFiles,
explorerDidFailToCreateNewFile,
explorerDidFailToDeleteFile,
explorerDidFailToDuplicateFile,
explorerDidFailToExportFile,
explorerDidFailToImportFiles,
} from '../explorer/actions';
@@ -417,6 +418,17 @@ function* showExplorerFailToCreateFile(
yield* showUnexpectedError(I18nId.ExplorerFailedToCreate, action.error);
}
function* showExplorerFailToDuplicate(
action: ReturnType<typeof explorerDidFailToDuplicateFile>,
): Generator {
if (action.error.name === 'AbortError') {
// user clicked cancel button - not an error
return;
}
yield* showUnexpectedError(I18nId.ExplorerFailedToDuplicate, action.error);
}
function* showExplorerFailToExport(
action: ReturnType<typeof explorerDidFailToExportFile>,
): Generator {
@@ -462,6 +474,7 @@ export default function* (): Generator {
yield* takeEvery(explorerDidFailToArchiveAllFiles, showFileStorageFailToArchive);
yield* takeEvery(explorerDidFailToImportFiles, showExplorerFailToImportFiles);
yield* takeEvery(explorerDidFailToCreateNewFile, showExplorerFailToCreateFile);
yield* takeEvery(explorerDidFailToDuplicateFile, showExplorerFailToDuplicate);
yield* takeEvery(explorerDidFailToExportFile, showExplorerFailToExport);
yield* takeEvery(explorerDidFailToDeleteFile, showExplorerFailToDelete);
yield* takeEvery(editorDidFailToOpenFile, showEditorDidFailToOpenFile);
+1
View File
@@ -19,6 +19,7 @@
"explorer": {
"failedToImportFiles": "Failed to import file(s).",
"failedToCreate": "Failed to create file.",
"failedToDuplicate": "Failed to duplicate file.",
"failedToExport": "Failed to export file.",
"failedToDelete": "Failed to delete file.",
"failedToArchive": "Failed to archive files.'"