Created
April 25, 2020 18:33
-
-
Save Luccasoli/ad23d7ae3f8ca8af466163c597b95025 to your computer and use it in GitHub Desktop.
imagePicker in react-native
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import ImagePicker from 'react-native-image-picker'; | |
export async function imagePicker(callback, errorHandler = () => {}) { | |
const options = { | |
title: 'Escolha uma foto', | |
takePhotoButtonTitle: 'Tirar uma foto...', | |
chooseFromLibraryButtonTitle: 'Escolher da galeria...', | |
cameraType: 'front', | |
mediaType: 'photo', | |
cancelButtonTitle: 'Cancelar', | |
}; | |
try { | |
const granted = await PermissionsAndroid.request( | |
PermissionsAndroid.PERMISSIONS.CAMERA, | |
{ | |
title: '@App solicita acesso a sua câmera', | |
} | |
); | |
if (granted === PermissionsAndroid.RESULTS.GRANTED) { | |
ImagePicker.showImagePicker(options, response => { | |
if (response.didCancel) { | |
console.log('User cancelled image picker'); | |
} else if (response.error) { | |
console.log('ImagePicker Error: ', response.error); | |
} else if (response.customButton) { | |
console.log('User tapped custom button: ', response.customButton); | |
} else { | |
const uri = { uri: response.uri }; | |
const base64 = { uri: `data:image/jpeg;base64,${response.data}` }; | |
callback(base64, uri); | |
} | |
}); | |
} else throw new Error('Permissão negada'); | |
} catch (e) { | |
errorHandler(e); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment