admin/fs: allow pasting of a file path in file-picker
Massimo Melina committed
Oct 22, 2023 at 17:15 UTC
1e61d915101f064dc0d51cf39e63ffa64fd87ea8
2 files changed
+4
-2
admin/src/FilePicker.ts
+3
-1
@@ -14,7 +14,7 @@ import {
14
TextField,
15
Typography
16
} from '@mui/material'
17
-import { enforceFinal, formatBytes, isWindowsDrive, spinner, Center, err2msg } from './misc'
17
+import { enforceFinal, formatBytes, isWindowsDrive, spinner, Center, err2msg, basename } from './misc'
18
import { ArrowUpward, VerticalAlignTop } from '@mui/icons-material'
19
import { StringField } from '@hfs/mui-grid-form'
20
import { FileIcon, FolderIcon } from './VfsTree'
@@ -88,6 +88,8 @@ export default function FilePicker({ onSelect, multiple=true, files=true, folder
88
if (!v)
89
return setCwd(root)
90
const res = await apiCall('resolve_path', { path: v })
91
+ if (res.isFolder === false)
92
+ return files ? onSelect([v]) : setCwd(v.slice(0, -basename(v)))
93
setCwd(res.path)
94
},
95
}),
src/api.vfs.ts
+1
-1
@@ -167,7 +167,7 @@ const apis: ApiHandlers = {
167
if (closestFolder)
168
while (path && !await isDirectory(path))
169
path = dirname(path)
170
- return { path }
170
+ return { path, isFolder: await isDirectory(path) }
171
},
172
173
get_ls({ path, files=true, fileMask }, ctx) {