import useUploadQueue from "../../hooks/useUploadQueue"; import useActionToast from "../../hooks/useActionToast"; import "../../styles/components/UploadToaster.css"; function getStatusLabel(upload, isOnline) { if (upload.status === "uploading") { return `Uploading... ${upload.progress || 0}%`; } if (upload.status === "success") { return "Upload complete"; } if (upload.status === "queued") { return isOnline ? "Queued for upload..." : "Waiting for network..."; } return upload.lastError || "Upload failed. Retry or discard."; } export default function UploadToaster() { const { uploads, isOnline, retryUpload, discardUpload } = useUploadQueue(); const { toasts, dismiss } = useActionToast(); if (!uploads.length && !toasts.length) { return null; } const sortedToasts = [...toasts].sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0)); const sortedUploads = [...uploads].sort( (a, b) => (b.updatedAt || b.createdAt || 0) - (a.updatedAt || a.createdAt || 0) ); return (