import { hooks } from 'botframework-webchat'; import React, { memo, useCallback, useRef, type ChangeEventHandler } from 'react'; import { useRefFrom } from 'use-ref-from'; import { useStyles } from '../../styles'; import testIds from '../../testIds'; import { FluentIcon } from '../icon'; import styles from './AddAttachmentButton.module.css'; import { ToolbarButton } from './Toolbar'; const { useLocalizer, useStyleOptions } = hooks; function AddAttachmentButton( props: Readonly<{ disabled?: boolean | undefined; onFilesAdded: ((files: File[]) => void) | undefined; }> ) { const inputRef = useRef(null); const classNames = useStyles(styles); const localize = useLocalizer(); const [{ uploadAccept, uploadMultiple }] = useStyleOptions(); const onFilesAddedRef = useRefFrom(props.onFilesAdded); const handleClick = useCallback(() => inputRef.current?.click(), [inputRef]); const handleFileChange = useCallback>( ({ target: { files } }) => { if (files) { onFilesAddedRef.current?.([...files]); if (inputRef.current) { inputRef.current.value = ''; } } }, [inputRef, onFilesAddedRef] ); return (
); } export default memo(AddAttachmentButton);