Founding price: $35, then $79.99 after 23:59 UTC on 4 November, then $79.99
Get ProA single-image field for avatars, covers and logos: choose, drop or paste, with type, size and minimum-dimension checks, a preview, Replace and Remove, and an upload progress overlay.
This item has no props to tune. Use the lens above to change theme, density, direction and more.
To crop before saving, open ImageCropper with an object URL of the chosen file, then pass the cropped blob back to this field.
| Prop | Type | Default | Description |
|---|---|---|---|
value / onChange | File | string | null / (File | null) => void | - | A new file, or the saved image URL. |
label, description | string | - | Visible label and hint. |
shape | circle, square, wide | square | |
accept | string[] | PNG, JPEG, WebP, GIF | MIME types. |
maxSize, minWidth, minHeight | number | none | Checked before onChange. |
progress | number | - | 0 to 1 shows the overlay and hides Replace and Remove. |
error | string | - | An outside message. |
alt="") because the label and the Replace and Remove buttons carry the meaning.role="alert" line with the actual and the required value; the message is linked to the button with aria-describedby.The component ships with a Testing Library test (image-upload.test.tsx) that covers: its main behaviour, the keyboard path and the error or empty states.