one
Version:
One is a React framework for web, iOS, and Android apps.
53 lines (50 loc) • 1.69 kB
JavaScript
import { NitroModules } from "react-native-nitro-modules";
import { rethrowNativeError } from "../nativeError.native.js";
import { resolveCameraOptions, resolveImagePickerOptions } from "./options.native.js";
var hybrid;
function native(verb) {
if (hybrid === void 0) {
hybrid = NitroModules.hasHybridObject("OneImagePicker") ? NitroModules.createHybridObject("OneImagePicker") : null;
}
if (!hybrid) {
throw new Error(`ImagePicker.${verb} needs a native build`);
}
return hybrid;
}
function toResult(result) {
if (result.canceled) return {
canceled: true,
assets: null
};
if (!result.assets) {
throw new Error("ImagePicker: native returned a pick without assets");
}
return {
canceled: false,
assets: result.assets
};
}
function launchLibrary() {
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
var resolved = resolveImagePickerOptions(options);
return native("launchLibrary").launchLibrary(resolved).then(toResult, rethrowNativeError);
}
function launchCamera() {
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
var resolved = resolveCameraOptions(options);
return native("launchCamera").launchCamera(resolved).then(toResult, rethrowNativeError);
}
async function getCameraPermissions() {
return native("getCameraPermissions").getCameraPermissions();
}
async function requestCameraPermissions() {
return native("requestCameraPermissions").requestCameraPermissions().catch(rethrowNativeError);
}
var ImagePicker = Object.freeze({
launchLibrary,
launchCamera,
getCameraPermissions,
requestCameraPermissions
});
export { ImagePicker };
//# sourceMappingURL=index.native.js.map