src/components/SendConfirm/SendConfirm.tsx (44 lines of code) (raw):

import React, { useState, useEffect } from 'react'; import { Modal } from '../Modal'; import { Flex } from '../Flex'; import { useLocale } from '../ConfigProvider'; export type SendConfirmProps = { file: Blob; onCancel: () => void; onSend: () => void; }; export const SendConfirm: React.FC<SendConfirmProps> = (props) => { const { file, onCancel, onSend } = props; const [img, setImg] = useState(''); const { trans } = useLocale('SendConfirm'); useEffect(() => { const reader = new FileReader(); reader.onload = (e: ProgressEvent<FileReader>) => { if (e.target) { setImg(e.target.result as string); } }; reader.readAsDataURL(file); }, [file]); return ( <Modal className="SendConfirm" title={trans('title')} active={!!img} vertical={false} actions={[ { label: trans('cancel'), onClick: onCancel, }, { label: trans('send'), color: 'primary', onClick: onSend, }, ]} > <Flex className="SendConfirm-inner" center> <img src={img} alt="" /> </Flex> </Modal> ); };