import React, { useRef, useCallback } from 'react'; import { Box } from '@chakra-ui/react'; export const useSelectFile = (props?: { fileType?: string; multiple?: boolean }) => { const { fileType = '*', multiple = false } = props || {}; const SelectFileDom = useRef(null); const File = useCallback( ({ onSelect }: { onSelect: (e: File[]) => void }) => ( { if (!e.target.files || e.target.files?.length === 0) return; onSelect(Array.from(e.target.files)); }} /> ), [fileType, multiple] ); const onOpen = useCallback(() => { SelectFileDom.current && SelectFileDom.current.click(); }, []); return { File, onOpen }; };