diff --git a/src/client/components/CandidateForm.tsx b/src/client/components/CandidateForm.tsx index c0b2ad5..a34c273 100644 --- a/src/client/components/CandidateForm.tsx +++ b/src/client/components/CandidateForm.tsx @@ -134,6 +134,14 @@ export function CandidateForm({ return (
+ {/* Image */} + + setForm((f) => ({ ...f, imageFilename: filename })) + } + /> + {/* Name */}
- ); + function handleRemove(e: React.MouseEvent) { + e.stopPropagation(); + onChange(null); + } + + return ( +
+ {/* Hero image area */} +
inputRef.current?.click()} + className="relative w-full aspect-[4/3] rounded-xl overflow-hidden cursor-pointer group" + > + {value ? ( + <> + Item + {/* Remove button */} + + + ) : ( +
+ {/* ImagePlus icon */} + + + + + + + + + Click to add photo + +
+ )} + + {/* Upload spinner overlay */} + {uploading && ( +
+ + + + +
+ )} +
+ + + {error &&

{error}

} +
+ ); } diff --git a/src/client/components/ItemForm.tsx b/src/client/components/ItemForm.tsx index 7d6cc87..15e8211 100644 --- a/src/client/components/ItemForm.tsx +++ b/src/client/components/ItemForm.tsx @@ -118,6 +118,14 @@ export function ItemForm({ mode, itemId }: ItemFormProps) { return ( + {/* Image */} + + setForm((f) => ({ ...f, imageFilename: filename })) + } + /> + {/* Name */}