import { Image, ImageSource } from 'expo-image'; import * as ImagePicker from 'expo-image-picker'; import * as MediaLibrary from 'expo-media-library'; import { useCallback, useState } from 'react'; import { StyleSheet, Text, View } from 'react-native'; import Button from '../../components/Button'; import MonoText from '../../components/MonoText'; import { Colors } from '../../constants'; export default function ImagePlaceholderScreen() { const [source, setSource] = useState(null); const pickImage = useCallback(async () => { const { assets } = await ImagePicker.launchImageLibraryAsync(); const uri = assets?.[0].uri; if (uri) { setSource({ uri }); } else { setSource(null); } }, []); const showRandomAsset = useCallback(async () => { const { assets } = await MediaLibrary.getAssetsAsync(); const randomIndex = Math.floor(Math.random() * assets.length); const randomAsset = assets[randomIndex]; if (randomAsset) { setSource({ uri: randomAsset.uri }); } else { setSource(null); } }, []); return ( { alert(`Failed to load the image: ${event.error}`); }} /> Integration with expo-image-picker