mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-29 23:12:38 +08:00
refactor(useFiles): 使用useMemo优化扩展名处理逻辑
将扩展名处理逻辑移至useMemo中,避免不必要的重复计算。当props.extensions未提供时默认返回['*']
This commit is contained in:
parent
32024b3f50
commit
100dc4e500
@ -1,6 +1,6 @@
|
||||
import { FileMetadata } from '@renderer/types'
|
||||
import { filterSupportedFiles } from '@renderer/utils'
|
||||
import { useCallback, useState } from 'react'
|
||||
import { useCallback, useMemo, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
type Props = {
|
||||
@ -8,12 +8,20 @@ type Props = {
|
||||
extensions?: string[]
|
||||
}
|
||||
|
||||
export const useFiles = ({ extensions }: Props) => {
|
||||
export const useFiles = (props?: Props) => {
|
||||
const { t } = useTranslation()
|
||||
|
||||
const [files, setFiles] = useState<FileMetadata[]>([])
|
||||
const [selecting, setSelecting] = useState<boolean>(false)
|
||||
|
||||
const extensions = useMemo(() => {
|
||||
if (props?.extensions) {
|
||||
return props.extensions
|
||||
} else {
|
||||
return ['*']
|
||||
}
|
||||
}, [props?.extensions])
|
||||
|
||||
const onSelectFile = useCallback(
|
||||
async (multipleSelections: boolean = true) => {
|
||||
if (selecting) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user