import React, { useEffect, useState } from 'react'
export default function UploadActions({
step = 1,
canStart = false,
canContinue = false,
canPublish = false,
canGoBack = false,
canReset = true,
canCancel = false,
canRetry = false,
isUploading = false,
isProcessing = false,
isPublishing = false,
isCancelling = false,
disableReason = 'Complete required fields',
onStart,
onContinue,
onPublish,
onBack,
onCancel,
onReset,
onRetry,
onSaveDraft,
showSaveDraft = false,
mobileSticky = true,
resetLabel = 'Reset',
}) {
const [confirmCancel, setConfirmCancel] = useState(false)
useEffect(() => {
if (!confirmCancel) return
const timer = window.setTimeout(() => setConfirmCancel(false), 3200)
return () => window.clearTimeout(timer)
}, [confirmCancel])
const handleCancel = () => {
if (!canCancel || isCancelling) return
if (!confirmCancel) {
setConfirmCancel(true)
return
}
setConfirmCancel(false)
onCancel?.()
}
const renderPrimary = () => {
if (step === 1) {
const disabled = !canStart || isUploading || isProcessing || isCancelling
const label = isUploading ? 'Uploading…' : isProcessing ? 'Processing…' : 'Start upload'
return (
)
}
if (step === 2) {
const disabled = !canContinue
return (
)
}
const disabled = !canPublish || isPublishing
return (
)
}
return (
)
}