import { Image, Stack, TextField } from "office-ui-fabric-react"; import React, { ChangeEvent, FunctionComponent, KeyboardEvent, useRef, useState } from "react"; import FolderIcon from "../../../images/folder_16x16.svg"; import * as Constants from "../../Common/Constants"; import { Tooltip } from "../Tooltip"; interface UploadProps { label: string; accept?: string; tooltip?: string; multiple?: boolean; tabIndex?: number; onUpload: (event: ChangeEvent) => void; } export const Upload: FunctionComponent = ({ label, accept, tooltip, multiple, tabIndex, ...props }: UploadProps) => { const [selectedFilesTitle, setSelectedFilesTitle] = useState([]); const fileRef = useRef(); const onImportLinkKeyPress = (event: KeyboardEvent): void => { if (event.keyCode === Constants.KeyCodes.Enter || event.keyCode === Constants.KeyCodes.Space) { onImportLinkClick(); } }; const onImportLinkClick = (): void => { fileRef?.current?.click(); }; const onUpload = (event: ChangeEvent): void => { const { files } = event.target; const newFileList = []; for (let i = 0; i < files.length; i++) { newFileList.push(files.item(i).name); } if (newFileList) { setSelectedFilesTitle(newFileList); props.onUpload(event); } }; const title = label + " to upload"; return (
{label} {tooltip} {title}
); };