import type { FC } from '../../../lib/teact/teact'; import type React from '../../../lib/teact/teact'; import { memo, useRef } from '../../../lib/teact/teact'; import buildClassName from '../../../util/buildClassName'; import useFlag from '../../../hooks/useFlag'; import useLang from '../../../hooks/useLang'; import useLastCallback from '../../../hooks/useLastCallback'; import Icon from '../../common/icons/Icon'; import './DropTarget.scss'; export type OwnProps = { isQuick?: boolean; isGeneric?: boolean; onFileSelect: (e: React.DragEvent) => void; }; const DropTarget: FC = ({ isQuick, isGeneric, onFileSelect }) => { const ref = useRef(); const lang = useLang(); const [isHovered, markHovered, unmarkHovered] = useFlag(); const handleDragLeave = useLastCallback((e: React.DragEvent) => { const { relatedTarget: toTarget } = e; if (toTarget) { e.stopPropagation(); } unmarkHovered(); }); const className = buildClassName( 'DropTarget', isHovered && 'hovered', ); return (
{lang('FileDropZoneTitle')}
{!isGeneric && (
{isQuick ? lang('FileDropZoneQuick') : lang('FileDropZoneNoCompression')}
)}
); }; export default memo(DropTarget);