mirror of
https://github.com/pybricks/pybricks-code.git
synced 2026-09-14 18:46:17 +00:00
explorer: implement duplicate file feature
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.'"
|
||||
|
||||
Reference in New Issue
Block a user