import React, { ChangeEvent, useState } from 'react'; import { UploadIcon, MegaphoneIcon } from './Icons'; interface FileUploadProps { onSalesUpload: (file: File) => void; onAdsUpload: (file: File) => void; onTrafficUpload?: (file: File) => void; onVendorUpload?: (file: File) => void; onUrlSubmit: () => void; isLoading: boolean; activeUrl?: string | null; onDisconnect?: () => void; lastUpdated?: string | null; } const FileUpload: React.FC = ({ onSalesUpload, onAdsUpload, onTrafficUpload, onVendorUpload, onUrlSubmit, isLoading, activeUrl, onDisconnect, lastUpdated }) => { const [url, setUrl] = useState(''); const handleSalesChange = (e: ChangeEvent) => { if (e.target.files && e.target.files.length > 0) { onSalesUpload(e.target.files[0]); } }; const handleAdsChange = (e: ChangeEvent) => { if (e.target.files && e.target.files.length > 0) { onAdsUpload(e.target.files[0]); } }; const handleTrafficChange = (e: ChangeEvent) => { if (e.target.files && e.target.files.length > 0 && onTrafficUpload) { onTrafficUpload(e.target.files[0]); } }; const handleVendorChange = (e: ChangeEvent) => { if (e.target.files && e.target.files.length > 0 && onVendorUpload) { onVendorUpload(e.target.files[0]); } }; const handleUrlSubmit = (e: React.FormEvent) => { e.preventDefault(); if (url.trim()) { onUrlSubmit(url.trim()); } }; const handleSyncNow = () => { onUrlSubmit(); }; return (
{/* Active Connection Status */} {activeUrl && (
Cloud Sync Active

{activeUrl}

{lastUpdated &&

Last updated: {new Date(lastUpdated).toLocaleString()}

}
)} {/* Manual File Uploads */}
{onTrafficUpload && (
)} {onVendorUpload && (
)}
); }; export default FileUpload;