UNPKG

@fto-consult/expo-ui

Version:

Bibliothèque de composants UI Expo,react-native

51 lines (45 loc) • 1.71 kB
import React from "$react"; import { Button, Image, StyleSheet} from 'react-native'; import View from "$ecomponents/View"; import { ImageEditor } from "expo-image-editor"; import {defaultObj} from "$cutils"; const ImageEditorComponent = React.forwardRef((props,ref)=>{ let {source,uri,onSuccess,imageUri,lockAspectRatio,dialogProps,onDismiss,visible,imageProps,...rest} = props; const [context] = React.useState({}); imageProps = defaultObj(imageProps); dialogProps = defaultObj(dialogProps); context.dialogRef = React.useRef(null); const [imageData,setImageData] = React.useState(null); return <View style={[styles.container]}> <Image style={{ height: 300, width: 300 }} source={{ uri: imageData?.uri }} /> <ImageEditor ref = {(el)=>{ React.setRef(ref,el); }} visible={visible} onCloseEditor={onDismiss} imageUri={imageUri || uri} fixedCropAspectRatio={16 / 9} lockAspectRatio={lockAspectRatio} minimumCropDimensions={minimumCropDimensions} onEditingComplete={(result) => { setImageData(result); }} mode="full" /> </View> }) export default ImageEditorComponent; const styles = StyleSheet.create({ container : { flex : 1, alignItems : 'center', justifyContent : 'center', paddingHorizontal : 30, paddingVertical : 30, } }) ImageEditorComponent.displayName = "ImageEditorComponent";