diff --git a/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx b/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx
index 76c365c3b4..d897986f10 100644
--- a/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx
+++ b/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx
@@ -176,13 +176,6 @@ export const RemixUiHomeTab = (props: RemixUiHomeTabProps) => {
plugin.verticalIcons.select('pluginManager')
}
- const restoreBackupZip = async () => {
- await plugin.appManager.activatePlugin(['restorebackupzip'])
- await plugin.call('mainPanel', 'showContent', 'restorebackupzip')
- plugin.verticalIcons.select('restorebackupzip')
- _paq.push(['trackEvent', 'pluginManager', 'userActivate', 'restorebackupzip'])
- }
-
const showFullMessage = (title: string, loadItem: string, examples: Array) => {
setState(prevState => {
return { ...prevState, showModalDialog: true, modalInfo: { title: title, loadItem: loadItem, examples: examples } }
@@ -295,10 +288,6 @@ export const RemixUiHomeTab = (props: RemixUiHomeTabProps) => {
-
-
-
-
diff --git a/libs/remix-ui/workspace/src/lib/actions/index.ts b/libs/remix-ui/workspace/src/lib/actions/index.ts
index ed1b47ce39..001c66b558 100644
--- a/libs/remix-ui/workspace/src/lib/actions/index.ts
+++ b/libs/remix-ui/workspace/src/lib/actions/index.ts
@@ -297,6 +297,12 @@ export const handleDownloadFiles = async () => {
}
}
+export const restoreBackupZip = async () => {
+ await plugin.appManager.activatePlugin(['restorebackupzip'])
+ plugin.verticalIcons.select('restorebackupzip')
+ _paq.push(['trackEvent', 'pluginManager', 'userActivate', 'restorebackupzip'])
+}
+
const packageGistFiles = async (directory) => {
const workspaceProvider = plugin.fileProviders.workspace
const isFile = await workspaceProvider.isFile(directory)
diff --git a/libs/remix-ui/workspace/src/lib/contexts/index.ts b/libs/remix-ui/workspace/src/lib/contexts/index.ts
index cb0d3a758b..b5daf01cc9 100644
--- a/libs/remix-ui/workspace/src/lib/contexts/index.ts
+++ b/libs/remix-ui/workspace/src/lib/contexts/index.ts
@@ -28,5 +28,6 @@ export const FileSystemContext = createContext<{
dispatchEmitContextMenuEvent: (cmd: customAction) => Promise,
dispatchHandleClickFile: (path: string, type: 'file' | 'folder' | 'gist') => Promise
dispatchHandleExpandPath: (paths: string[]) => Promise,
- dispatchHandleDownloadFiles: () => Promise
+ dispatchHandleDownloadFiles: () => Promise,
+ dispatchHandleRestoreBackup: () => Promise
}>(null)
diff --git a/libs/remix-ui/workspace/src/lib/providers/FileSystemProvider.tsx b/libs/remix-ui/workspace/src/lib/providers/FileSystemProvider.tsx
index 3803e34c14..cb4d4ce864 100644
--- a/libs/remix-ui/workspace/src/lib/providers/FileSystemProvider.tsx
+++ b/libs/remix-ui/workspace/src/lib/providers/FileSystemProvider.tsx
@@ -5,7 +5,7 @@ import { Toaster } from '@remix-ui/toaster' // eslint-disable-line
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { FileSystemContext } from '../contexts'
import { browserReducer, browserInitialState } from '../reducers/workspace'
-import { initWorkspace, fetchDirectory, removeInputField, deleteWorkspace, clearPopUp, publishToGist, createNewFile, setFocusElement, createNewFolder, deletePath, renamePath, copyFile, copyFolder, runScript, emitContextMenuEvent, handleClickFile, handleExpandPath, addInputField, createWorkspace, fetchWorkspaceDirectory, renameWorkspace, switchToWorkspace, uploadFile, handleDownloadFiles } from '../actions'
+import { initWorkspace, fetchDirectory, removeInputField, deleteWorkspace, clearPopUp, publishToGist, createNewFile, setFocusElement, createNewFolder, deletePath, renamePath, copyFile, copyFolder, runScript, emitContextMenuEvent, handleClickFile, handleExpandPath, addInputField, createWorkspace, fetchWorkspaceDirectory, renameWorkspace, switchToWorkspace, uploadFile, handleDownloadFiles, restoreBackupZip } from '../actions'
import { Modal, WorkspaceProps } from '../types'
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { Workspace } from '../remix-ui-workspace'
@@ -119,6 +119,10 @@ export const FileSystemProvider = (props: WorkspaceProps) => {
await handleDownloadFiles()
}
+ const dispatchHandleRestoreBackup = async () => {
+ await restoreBackupZip()
+ }
+
useEffect(() => {
dispatchInitWorkspace()
}, [])
@@ -219,7 +223,8 @@ export const FileSystemProvider = (props: WorkspaceProps) => {
dispatchEmitContextMenuEvent,
dispatchHandleClickFile,
dispatchHandleExpandPath,
- dispatchHandleDownloadFiles
+ dispatchHandleDownloadFiles,
+ dispatchHandleRestoreBackup
}
return (
diff --git a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx
index 11eec79c16..ceb4c08b07 100644
--- a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx
+++ b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx
@@ -58,6 +58,14 @@ export function Workspace () {
}
}
+ const restoreBackup = async () => {
+ try {
+ await global.dispatchHandleRestoreBackup()
+ } catch (e) {
+ console.error(e)
+ }
+ }
+
const onFinishRenameWorkspace = async () => {
if (workspaceRenameInput.current === undefined) return
// @ts-ignore: Object is possibly 'null'.
@@ -178,6 +186,16 @@ export function Workspace () {
className='far fa-download remixui_menuicon'
title='Download Workspaces'>
+ {
+ e.stopPropagation()
+ restoreBackup()
+ }}
+ className='far fa-upload remixui_menuicon'
+ title='Restore Workspaces Backup'>
+