Skip to content

Instantly share code, notes, and snippets.

@Luccasoli
Created April 25, 2020 18:33
Show Gist options
  • Save Luccasoli/ad23d7ae3f8ca8af466163c597b95025 to your computer and use it in GitHub Desktop.
Save Luccasoli/ad23d7ae3f8ca8af466163c597b95025 to your computer and use it in GitHub Desktop.
imagePicker in react-native
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