one
Version:
One is a React framework for web, iOS, and Android apps.
33 lines (30 loc) • 1.4 kB
JavaScript
import { TurboModuleRegistry } from "react-native";
import NativeSafeAreaProviderHost from "../specs/OneNativeSafeAreaProviderNativeComponent.native.js";
import { buildSafeAreaInsetStyle, keyboardSafeBottom, providerEventToMetrics, resolveOverlappingInsets, resolveSafeAreaEdgeModes } from "./insets.native.js";
function getInitialWindowMetrics() {
var module = TurboModuleRegistry.get("OneNativeSafeAreaContext");
if (!module) return null;
var constants = typeof module.getConstants === "function" ? module.getConstants() : module;
var metrics = constants === null || constants === void 0 ? void 0 : constants.initialWindowMetrics;
return isMetrics(metrics) ? metrics : null;
}
function isMetrics(value) {
if (!value || typeof value !== "object") return false;
var { insets, frame } = value;
if (!insets || typeof insets !== "object" || !frame || typeof frame !== "object") return false;
var numbers = [
insets.top,
insets.right,
insets.bottom,
insets.left,
frame.x,
frame.y,
frame.width,
frame.height
];
return numbers.every(function(number) {
return typeof number === "number" && Number.isFinite(number);
});
}
export { NativeSafeAreaProviderHost as NativeSafeAreaProvider, buildSafeAreaInsetStyle, getInitialWindowMetrics, keyboardSafeBottom, providerEventToMetrics, resolveOverlappingInsets, resolveSafeAreaEdgeModes };
//# sourceMappingURL=index.native.js.map