mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-04 11:49:02 +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 { FileMetadata } from '@renderer/types'
|
||||||
import { filterSupportedFiles } from '@renderer/utils'
|
import { filterSupportedFiles } from '@renderer/utils'
|
||||||
import { useCallback, useState } from 'react'
|
import { useCallback, useMemo, useState } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
@ -8,12 +8,20 @@ type Props = {
|
|||||||
extensions?: string[]
|
extensions?: string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useFiles = ({ extensions }: Props) => {
|
export const useFiles = (props?: Props) => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
|
|
||||||
const [files, setFiles] = useState<FileMetadata[]>([])
|
const [files, setFiles] = useState<FileMetadata[]>([])
|
||||||
const [selecting, setSelecting] = useState<boolean>(false)
|
const [selecting, setSelecting] = useState<boolean>(false)
|
||||||
|
|
||||||
|
const extensions = useMemo(() => {
|
||||||
|
if (props?.extensions) {
|
||||||
|
return props.extensions
|
||||||
|
} else {
|
||||||
|
return ['*']
|
||||||
|
}
|
||||||
|
}, [props?.extensions])
|
||||||
|
|
||||||
const onSelectFile = useCallback(
|
const onSelectFile = useCallback(
|
||||||
async (multipleSelections: boolean = true) => {
|
async (multipleSelections: boolean = true) => {
|
||||||
if (selecting) {
|
if (selecting) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user