Skip to main content

MultinaireMediaPickerButton

Image/media picker button with preview and aspect ratio support.

Basic Usage

import { MultinaireMediaPickerButton } from '@multinaire/multinaire-design';

<MultinaireMediaPickerButton
placeholder="Select image"
value={imageSource}
onPress={() => pickImage()}
/>

Props

PropTypeDefaultDescription
placeholderstring-Placeholder text
valueImageSourcePropType-Selected image source
titlestring-Label above the picker
requiredbooleanfalseShow required indicator
placeholderIconMultinaireIcons-Icon when no image selected
aspectRatio'1:1' | '16:9' | '9:16''1:1'Image aspect ratio
extraReactElement-Extra content beside title
errorTextstring-Error message to display
clearTextstring-Clear button text
flexnumber-Flex value
marginSpacingProps-Margin spacing
isLoadingbooleanfalseShow loading state
onPress() => void-Press handler to pick media
onClear() => void-Clear handler

Examples

Profile Photo Picker

<MultinaireMediaPickerButton
title="Profile Photo"
placeholder="Add photo"
placeholderIcon="Camera"
value={profileImage}
aspectRatio="1:1"
onPress={pickProfilePhoto}
onClear={() => setProfileImage(null)}
clearText="Remove"
/>

Cover Image Picker

<MultinaireMediaPickerButton
title="Cover Image"
placeholder="Add cover image"
value={coverImage}
aspectRatio="16:9"
onPress={pickCoverImage}
/>

Story Image Picker

<MultinaireMediaPickerButton
placeholder="Add story"
value={storyImage}
aspectRatio="9:16"
onPress={pickStoryImage}
/>

With Loading State

<MultinaireMediaPickerButton
title="Upload Image"
placeholder="Select image"
value={image}
isLoading={isUploading}
onPress={pickAndUploadImage}
/>

With Validation

<MultinaireMediaPickerButton
title="ID Document"
required
placeholder="Upload ID"
value={idDocument}
errorText={!idDocument ? 'ID document is required' : undefined}
onPress={pickIdDocument}
/>