expo-camera
Version:
A React component that renders a preview for the device's either front or back camera. Camera's parameters like zoom, auto focus, white balance and flash mode are adjustable. With expo-camera, one can also take photos and record videos that are saved to t
37 lines (36 loc) • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const config_plugins_1 = require("expo/config-plugins");
const pkg = require('expo-camera/package.json');
const CAMERA_USAGE = 'Allow $(PRODUCT_NAME) to access your camera';
const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone';
const BARCODE_SCANNER_KEY = 'expo.camera.barcode-scanner-enabled';
const withCamera = (config, { cameraPermission, microphonePermission, recordAudioAndroid = true, barcodeScannerEnabled = true, } = {}) => {
config_plugins_1.IOSConfig.Permissions.createPermissionsPlugin({
NSCameraUsageDescription: CAMERA_USAGE,
NSMicrophoneUsageDescription: MICROPHONE_USAGE,
})(config, {
NSCameraUsageDescription: cameraPermission,
NSMicrophoneUsageDescription: microphonePermission,
});
config = (0, config_plugins_1.withPodfileProperties)(config, (config) => {
if (barcodeScannerEnabled === false) {
config.modResults[BARCODE_SCANNER_KEY] = 'false';
}
else {
delete config.modResults[BARCODE_SCANNER_KEY];
}
return config;
});
config = (0, config_plugins_1.withGradleProperties)(config, (config) => {
config.modResults = config_plugins_1.AndroidConfig.BuildProperties.updateAndroidBuildProperty(config.modResults, BARCODE_SCANNER_KEY, barcodeScannerEnabled === false ? 'false' : null, { removePropWhenValueIsNull: true });
return config;
});
config = config_plugins_1.AndroidConfig.Permissions.withPermissions(config, [
'android.permission.CAMERA',
// Optional
recordAudioAndroid && 'android.permission.RECORD_AUDIO',
].filter(Boolean));
return config;
};
exports.default = (0, config_plugins_1.createRunOncePlugin)(withCamera, pkg.name, pkg.version);