fix: attachment select extension for windows
This commit is contained in:
parent
934ab1a374
commit
d9873b4261
@ -1,8 +1,8 @@
|
||||
import { Navbar, NavbarCenter } from '@renderer/components/app/Navbar'
|
||||
import { VStack } from '@renderer/components/Layout'
|
||||
import db from '@renderer/databases'
|
||||
import FileManager from '@renderer/services/file'
|
||||
import { FileType, FileTypes } from '@renderer/types'
|
||||
import { getFileDirectory } from '@renderer/utils'
|
||||
import { Image, Table } from 'antd'
|
||||
import dayjs from 'dayjs'
|
||||
import { useLiveQuery } from 'dexie-react-hooks'
|
||||
@ -20,7 +20,7 @@ const FilesPage: FC = () => {
|
||||
return {
|
||||
key: file.id,
|
||||
file: isImage ? ImageView : <FileNameText className="text-nowrap">{file.origin_name}</FileNameText>,
|
||||
name: <a href={'file://' + getFileDirectory(file.path)}>{file.origin_name}</a>,
|
||||
name: <a href={'file://' + FileManager.getSafePath(file)}>{file.origin_name}</a>,
|
||||
size: `${(file.size / 1024 / 1024).toFixed(2)} MB`,
|
||||
count: file.count,
|
||||
created_at: dayjs(file.created_at).format('MM-DD HH:mm')
|
||||
|
||||
@ -21,7 +21,16 @@ const AttachmentButton: FC<Props> = ({ model, files, setFiles, ToolbarButton })
|
||||
if (files.length > 0) {
|
||||
return setFiles([])
|
||||
}
|
||||
const _files = await window.api.file.select({ filters: [{ name: 'Files', extensions }] })
|
||||
|
||||
const _files = await window.api.file.select({
|
||||
filters: [
|
||||
{
|
||||
name: 'Files',
|
||||
extensions: extensions.map((i) => i.replace('.', ''))
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
_files && setFiles(_files)
|
||||
}
|
||||
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import FileManager from '@renderer/services/file'
|
||||
import { FileType } from '@renderer/types'
|
||||
import { Upload } from 'antd'
|
||||
import { isEmpty } from 'lodash'
|
||||
@ -18,7 +19,12 @@ const AttachmentPreview: FC<Props> = ({ files, setFiles }) => {
|
||||
<Container>
|
||||
<Upload
|
||||
listType="picture-card"
|
||||
fileList={files.map((file) => ({ uid: file.id, url: 'file://' + file.path, status: 'done', name: file.name }))}
|
||||
fileList={files.map((file) => ({
|
||||
uid: file.id,
|
||||
url: 'file://' + FileManager.getSafePath(file),
|
||||
status: 'done',
|
||||
name: file.name
|
||||
}))}
|
||||
onRemove={(item) => setFiles(files.filter((file) => item.uid !== file.id))}
|
||||
/>
|
||||
</Container>
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import db from '@renderer/databases'
|
||||
import { FileType } from '@renderer/types'
|
||||
import { getFileDirectory } from '@renderer/utils'
|
||||
|
||||
class FileManager {
|
||||
static async selectFiles(options?: Electron.OpenDialogOptions): Promise<FileType[] | null> {
|
||||
@ -52,6 +53,14 @@ class FileManager {
|
||||
static async allFiles(): Promise<FileType[]> {
|
||||
return db.files.toArray()
|
||||
}
|
||||
|
||||
static isDangerFile(file: FileType) {
|
||||
return ['.sh', '.bat', '.cmd', '.ps1'].includes(file.ext)
|
||||
}
|
||||
|
||||
static getSafePath(file: FileType) {
|
||||
return this.isDangerFile(file) ? getFileDirectory(file.path) : file.path
|
||||
}
|
||||
}
|
||||
|
||||
export default FileManager
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user