import React, { ChangeEvent, useState } from 'react'; import { UploadIcon, MegaphoneIcon } from './Icons'; interface FileUploadProps { onSalesUpload: (file: File) => void; // Renamed from onFileUpload onAdsUpload: (file: File) => void; // New Prop onUrlSubmit: (url: string) => void; isLoading: boolean; activeUrl?: string | null; onDisconnect?: () => void; lastUpdated?: string | null; } const FileUpload: React.FC = ({ onSalesUpload, onAdsUpload, 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 handleUrlSubmit = (e: React.FormEvent) => { e.preventDefault(); if (url.trim()) { onUrlSubmit(url.trim()); } }; const handleSyncNow = () => { if (activeUrl) onUrlSubmit(activeUrl); }; return (
{/* Active Connection Status */} {activeUrl && (
Cloud Sync Active

{activeUrl}

{lastUpdated &&

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

}
)} {/* Manual File Uploads */}
OR
{/* URL Connection */}

{activeUrl ? 'Change Source URL' : 'Connect Cloud CSV'}

Direct link to CSV (e.g. Dropbox dl=1). Auto-refreshes daily at 7 AM.

setUrl(e.target.value)} className="flex-1 bg-slate-950 border border-slate-700 text-slate-200 rounded-lg px-3 py-2 focus:outline-none focus:border-indigo-500 text-sm" required />
{isLoading && !activeUrl && (
Processing data...
)}
); }; export default FileUpload;