Commit 1a511472 authored by ioedeveloper's avatar ioedeveloper

Extract types

parent 9084e342
...@@ -81,16 +81,14 @@ class WorkspaceFileProvider extends FileProvider { ...@@ -81,16 +81,14 @@ class WorkspaceFileProvider extends FileProvider {
} }
async createWorkspace (name) { async createWorkspace (name) {
if (!name) name = 'default_workspace' try {
this.setWorkspace(name) if (!name) name = 'default_workspace'
const workspacePath = 'browser/' + this.workspacesPath + '/' + name this.setWorkspace(name)
const workspaceRootPath = 'browser/' + this.workspacesPath await super.createDir(name)
const workspaceRootPathExists = await super.exists(workspaceRootPath) this.event.emit('createWorkspace', name)
const workspacePathExists = await super.exists(workspacePath) } catch (e) {
throw new Error(e)
if (!workspaceRootPathExists) super.createDir(workspaceRootPath) }
if (!workspacePathExists) super.createDir(workspacePath)
this.event.emit('createWorkspace', name)
} }
} }
......
export * from './lib/file-explorer' export * from './lib/file-explorer'
export * from './lib/types'
...@@ -18,7 +18,7 @@ import './css/file-explorer.css' ...@@ -18,7 +18,7 @@ import './css/file-explorer.css'
const queryParams = new QueryParams() const queryParams = new QueryParams()
export const FileExplorer = (props: FileExplorerProps) => { export const FileExplorer = (props: FileExplorerProps) => {
const { name, registry, plugin, focusRoot, contextMenuItems, displayInput, externalUploads, removedContextMenuItems } = props const { name, registry, plugin, focusRoot, contextMenuItems, displayInput, externalUploads, removedContextMenuItems, resetFocus } = props
const [state, setState] = useState({ const [state, setState] = useState({
focusElement: [{ focusElement: [{
key: '', key: '',
...@@ -204,7 +204,7 @@ export const FileExplorer = (props: FileExplorerProps) => { ...@@ -204,7 +204,7 @@ export const FileExplorer = (props: FileExplorerProps) => {
setState(prevState => { setState(prevState => {
return { ...prevState, focusElement: [{ key: '', type: 'folder' }] } return { ...prevState, focusElement: [{ key: '', type: 'folder' }] }
}) })
plugin.resetFocus(false) resetFocus(false)
} }
}, [focusRoot]) }, [focusRoot])
...@@ -230,7 +230,6 @@ export const FileExplorer = (props: FileExplorerProps) => { ...@@ -230,7 +230,6 @@ export const FileExplorer = (props: FileExplorerProps) => {
useEffect(() => { useEffect(() => {
if (externalUploads) { if (externalUploads) {
uploadFile(externalUploads) uploadFile(externalUploads)
plugin.resetUploadFile()
} }
}, [externalUploads]) }, [externalUploads])
...@@ -988,7 +987,7 @@ export const FileExplorer = (props: FileExplorerProps) => { ...@@ -988,7 +987,7 @@ export const FileExplorer = (props: FileExplorerProps) => {
setState(prevState => { setState(prevState => {
return { ...prevState, expandPath } return { ...prevState, expandPath }
}) })
plugin.resetFocus(true) resetFocus(true)
}}> }}>
<FileExplorerMenu <FileExplorerMenu
title={''} title={''}
......
...@@ -13,6 +13,7 @@ export interface FileExplorerProps { ...@@ -13,6 +13,7 @@ export interface FileExplorerProps {
removedContextMenuItems: MenuItems, removedContextMenuItems: MenuItems,
displayInput?: boolean, displayInput?: boolean,
externalUploads?: EventTarget & HTMLInputElement, externalUploads?: EventTarget & HTMLInputElement,
resetFocus?: (value: boolean) => void
} }
export interface File { export interface File {
......
import { MenuItems } from '@remix-ui/file-explorer'
export interface WorkspaceProps {
plugin: {
setWorkspace: ({ name: string, isLocalhost: boolean }, setEvent: boolean) => void,
createWorkspace: (name: string) => void,
renameWorkspace: (oldName: string, newName: string) => void
workspaceRenamed: ({ name: string }) => void,
workspaceCreated: ({ name: string }) => void,
workspaceDeleted: ({ name: string }) => void,
workspace: any // workspace provider,
browser: any // browser provider
localhost: any // localhost provider
fileManager : any
registry: any // registry
request: {
createWorkspace: () => void,
setWorkspace: (workspaceName: string) => void,
createNewFile: () => void,
uploadFile: (target: EventTarget & HTMLInputElement) => void,
getCurrentWorkspace: () => void
} // api request,
workspaces: any,
registeredMenuItems: MenuItems // menu items
removedMenuItems: MenuItems
initialWorkspace: string,
resetNewFile: () => void,
getWorkspaces: () => string[]
}
}
export interface WorkspaceState {
workspaces: string[]
reset: boolean
hideRemixdExplorer: boolean
displayNewFile: boolean
externalUploads: EventTarget & HTMLInputElement
uploadFileEvent: EventTarget & HTMLInputElement
loadingLocalhost: boolean
toasterMsg: string
}
export interface Modal {
hide: boolean
title: string
message: string | JSX.Element
okLabel: string
okFn: () => void
cancelLabel: string
cancelFn: () => void
handleHide: () => void
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment