import type { ChangeEvent, RefObject } from 'react'; import React, { memo, useCallback, useState } from '../../lib/teact/teact'; import type { FC } from '../../lib/teact/teact'; import CropModal from './CropModal'; import styles from './SelectAvatar.module.scss'; type OwnProps = { onChange: (file: File) => void; inputRef: RefObject; }; const SelectAvatar: FC = ({ onChange, inputRef, }) => { const [selectedFile, setSelectedFile] = useState(); function handleSelectFile(event: ChangeEvent) { const target = event.target as HTMLInputElement; if (!target?.files?.[0]) { return; } setSelectedFile(target.files[0]); target.value = ''; } const handleAvatarCrop = useCallback((croppedImg: File) => { setSelectedFile(undefined); onChange(croppedImg); }, [onChange]); const handleModalClose = useCallback(() => { setSelectedFile(undefined); }, []); return ( <> ); }; export default memo(SelectAvatar);