> ## Documentation Index
> Fetch the complete documentation index at: https://docs.twenty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Image Input

<Frame>
  <img src="https://mintcdn.com/twenty/GMeQVDsw5ST_LXpE/images/user-guide/objects/objects.png?fit=max&auto=format&n=GMeQVDsw5ST_LXpE&q=85&s=f753eac3bada05044c64e7af9ddea9ab" alt="Header" width="1440" height="680" data-path="images/user-guide/objects/objects.png" />
</Frame>

Allows users to upload and remove an image.

<Tabs>
  <Tab title="Usage">
    ```jsx theme={null}
    import { ImageInput } from "@/ui/input/components/ImageInput";

    export const MyComponent = () => {
      return <ImageInput/>;
    };
    ```
  </Tab>

  <Tab title="Props">
    | Props        | Type     | Description                                                                                       |
    | ------------ | -------- | ------------------------------------------------------------------------------------------------- |
    | picture      | string   | The image source URL                                                                              |
    | onUpload     | function | The function called when a user uploads a new image. It receives the `File` object as a parameter |
    | onRemove     | function | The function called when the user clicks on the remove button                                     |
    | onAbort      | function | The function called when a user clicks on the abort button during image upload                    |
    | isUploading  | boolean  | Indicates whether an image is currently being uploaded                                            |
    | errorMessage | string   | An optional error message to display below the image input                                        |
    | disabled     | boolean  | If `true`, the entire input is disabled, and the buttons are not clickable                        |
  </Tab>
</Tabs>
