load folder files and refactoring

mtypes^2
Aniket-Engg 2 years ago committed by Aniket
parent d20de3a345
commit 0156323147
  1. 35
      libs/remix-ui/workspace/src/lib/actions/workspace.ts

@ -358,14 +358,7 @@ export const switchToWorkspace = async (name: string) => {
} }
} }
export const uploadFile = async (target, targetFolder: string, cb?: (err: Error, result?: string | number | boolean | Record<string, any>) => void) => { const loadFile = (name, file, provider, cb?): void => {
// TODO The file explorer is merely a view on the current state of
// the files module. Please ask the user here if they want to overwrite
// a file and then just use `files.add`. The file explorer will
// pick that up via the 'fileAdded' event from the files module.
[...target.files].forEach(async (file) => {
const workspaceProvider = plugin.fileProviders.workspace
const loadFile = (name: string): void => {
const fileReader = new FileReader() const fileReader = new FileReader()
fileReader.onload = async function (event) { fileReader.onload = async function (event) {
@ -373,7 +366,7 @@ export const uploadFile = async (target, targetFolder: string, cb?: (err: Error,
return dispatch(displayNotification('File Upload Failed', 'Special characters are not allowed', 'Close', null, async () => { })) return dispatch(displayNotification('File Upload Failed', 'Special characters are not allowed', 'Close', null, async () => { }))
} }
try { try {
await workspaceProvider.set(name, event.target.result) await provider.set(name, event.target.result)
} catch (error) { } catch (error) {
return dispatch(displayNotification('File Upload Failed', 'Failed to create file ' + name, 'Close', null, async () => { })) return dispatch(displayNotification('File Upload Failed', 'Failed to create file ' + name, 'Close', null, async () => { }))
} }
@ -388,20 +381,38 @@ export const uploadFile = async (target, targetFolder: string, cb?: (err: Error,
fileReader.readAsText(file) fileReader.readAsText(file)
cb && cb(null, true) cb && cb(null, true)
} }
export const uploadFile = async (target, targetFolder: string, cb?: (err: Error, result?: string | number | boolean | Record<string, any>) => void) => {
// TODO The file explorer is merely a view on the current state of
// the files module. Please ask the user here if they want to overwrite
// a file and then just use `files.add`. The file explorer will
// pick that up via the 'fileAdded' event from the files module.
[...target.files].forEach(async (file) => {
const workspaceProvider = plugin.fileProviders.workspace
const name = targetFolder === '/' ? file.name : `${targetFolder}/${file.name}` const name = targetFolder === '/' ? file.name : `${targetFolder}/${file.name}`
if (!await workspaceProvider.exists(name)) { if (!await workspaceProvider.exists(name)) {
loadFile(name) loadFile(name, file, workspaceProvider, cb)
} else { } else {
dispatch(displayNotification('Confirm overwrite', `The file ${name} already exists! Would you like to overwrite it?`, 'OK', null, () => { dispatch(displayNotification('Confirm overwrite', `The file ${name} already exists! Would you like to overwrite it?`, 'OK', null, () => {
loadFile(name) loadFile(name, file, workspaceProvider, cb)
}, () => { })) }, () => { }))
} }
}) })
} }
export const uploadFolder = async (target, targetFolder: string, cb?: (err: Error, result?: string | number | boolean | Record<string, any>) => void) => { export const uploadFolder = async (target, targetFolder: string, cb?: (err: Error, result?: string | number | boolean | Record<string, any>) => void) => {
console.log('inside uploadFolder--target-->', target) for(const file of [...target.files]) {
const workspaceProvider = plugin.fileProviders.workspace
const name = targetFolder === '/' ? file.webkitRelativePath : `${targetFolder}/${file.webkitRelativePath}`
if (!await workspaceProvider.exists(name)) {
loadFile(name, file, workspaceProvider, cb)
} else {
dispatch(displayNotification('Confirm overwrite', `The file ${name} already exists! Would you like to overwrite it?`, 'OK', null, () => {
loadFile(name, file, workspaceProvider, cb)
}, () => { }))
}
}
} }
export const getWorkspaces = async (): Promise<{ name: string, isGitRepo: boolean, branches?: { remote: any; name: string; }[], currentBranch?: string }[]> | undefined => { export const getWorkspaces = async (): Promise<{ name: string, isGitRepo: boolean, branches?: { remote: any; name: string; }[], currentBranch?: string }[]> | undefined => {

Loading…
Cancel
Save