import React, { useRef, useState } from 'react'; import { Button, Group, useMantineColorScheme } from '@mantine/core'; import { useTranslation } from 'react-i18next'; import AddIcon from '@mui/icons-material/Add'; import { useFilesModalContext } from '../../contexts/FilesModalContext'; import LocalIcon from '../shared/LocalIcon'; import { BASE_PATH } from '../../constants/app'; import styles from './FileEditor.module.css'; interface AddFileCardProps { onFileSelect: (files: File[]) => void; accept?: string; multiple?: boolean; } const AddFileCard = ({ onFileSelect, accept = "*/*", multiple = true }: AddFileCardProps) => { const { t } = useTranslation(); const fileInputRef = useRef(null); const { openFilesModal } = useFilesModalContext(); const { colorScheme } = useMantineColorScheme(); const [isUploadHover, setIsUploadHover] = useState(false); const handleCardClick = () => { openFilesModal(); }; const handleNativeUploadClick = (e: React.MouseEvent) => { e.stopPropagation(); fileInputRef.current?.click(); }; const handleOpenFilesModal = (e: React.MouseEvent) => { e.stopPropagation(); openFilesModal(); }; const handleFileChange = (event: React.ChangeEvent) => { const files = Array.from(event.target.files || []); if (files.length > 0) { onFileSelect(files); } // Reset input so same files can be selected again event.target.value = ''; }; return ( <>
{ if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); handleCardClick(); } }} > {/* Header bar - matches FileEditorThumbnail structure */}
{t('fileEditor.addFiles', 'Add Files')}
{/* Main content area */}
{/* Stirling PDF Branding */} Stirling PDF {/* Add Files + Native Upload Buttons - styled like LandingPage */}
setIsUploadHover(false)} >
{/* Instruction Text */} {t('fileUpload.dropFilesHere', 'Drop files here or click the upload button')}
); }; export default AddFileCard;