diff --git a/apps/remix-ide/src/app/ui/landing-page/landing-page.js b/apps/remix-ide/src/app/ui/landing-page/landing-page.js index 0b550b1fab..85e7f61de5 100644 --- a/apps/remix-ide/src/app/ui/landing-page/landing-page.js +++ b/apps/remix-ide/src/app/ui/landing-page/landing-page.js @@ -297,6 +297,27 @@ export class LandingPage extends ViewPlugin { this.call('fileExplorers', 'createNewFile') } + const downloadFiles = async () => { + const fileProviders = globalRegistry.get('fileproviders').api + const json = await fileProviders.browser.copyFolderToJson('/') + const blob = new Blob([ JSON.stringify(json, null, '\t') ], { type: 'text/plain;charset=utf-8' }) + const node = document.createElement('a') + node.download = 'remix.json' + node.rel = 'noopener' + node.href = URL.createObjectURL(blob) + setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s + setTimeout(function () { + try { + node.dispatchEvent(new MouseEvent('click')) + } catch (e) { + var evt = document.createEvent('MouseEvents') + evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, + 20, false, false, false, false, 0, null) + node.dispatchEvent(evt) + } + }, 0) // 40s + } + const uploadFile = (target) => { this.call('fileExplorers', 'uploadFile', target) } @@ -413,6 +434,10 @@ export class LandingPage extends ViewPlugin { connectToLocalhost()}>Connect to Localhost
++ + downloadFiles()}>Download all Files +