import React from 'react' import UploadDropzone from '../UploadDropzone' import ScreenshotUploader from '../ScreenshotUploader' /** * Step1FileUpload * * Step 1 of the upload wizard: file selection + live upload progress. * Shows the dropzone, optional screenshot uploader (archives), * and the progress panel once an upload is in flight. */ export default function Step1FileUpload({ headingRef, // File state primaryFile, primaryPreviewUrl, primaryErrors, primaryWarnings, fileMetadata, fileSelectionLocked, onPrimaryFileChange, // Archive screenshots isArchive, screenshots, screenshotErrors, screenshotPerFileErrors, onScreenshotsChange, // Machine state (passed for potential future use) machine, }) { return (
{/* Step header */}

Upload your artwork

Drop or browse a file. Validation runs immediately. Upload starts when you click  Start upload.

{/* Locked notice */} {fileSelectionLocked && (
File is locked after upload. Reset to change.
)} {/* Primary dropzone */} 0} errors={primaryErrors} showLooksGood={Boolean(primaryFile) && primaryErrors.length === 0} looksGoodText="Looks good" locked={fileSelectionLocked} onPrimaryFileChange={(file) => { if (fileSelectionLocked) return onPrimaryFileChange(file || null) }} /> {/* Screenshots (archives only) */} 0} showLooksGood={isArchive && screenshots.length > 0 && screenshotErrors.length === 0} looksGoodText="Looks good" onFilesChange={onScreenshotsChange} />
) }