one
Version:
One is a React framework for web, iOS, and Android apps.
45 lines (42 loc) • 1.26 kB
JavaScript
import { jsx } from "react/jsx-runtime";
import * as React from "react";
import { StyleSheet, View } from "react-native";
import { buildSafeAreaInsetStyle } from "../platform/safe-area/index.native.js";
import { initialWindowMetrics } from "./InitialWindow.native.js";
import { SafeAreaInsetsContext } from "./SafeAreaContext.native.js";
var ZERO_INSETS = {
top: 0,
right: 0,
bottom: 0,
left: 0
};
var SafeAreaView = /* @__PURE__ */ React.forwardRef(function(param, ref) {
var { style, mode, edges, ...rest } = param;
var _ref;
var contextInsets = React.useContext(SafeAreaInsetsContext);
var insets = (_ref = contextInsets !== null && contextInsets !== void 0 ? contextInsets : initialWindowMetrics === null || initialWindowMetrics === void 0 ? void 0 : initialWindowMetrics.insets) !== null && _ref !== void 0 ? _ref : ZERO_INSETS;
var appliedStyle = React.useMemo(function() {
return {
...StyleSheet.flatten(style),
...buildSafeAreaInsetStyle({
insets,
edges,
mode,
style,
resolveStyle: StyleSheet.flatten
})
};
}, [
style,
insets,
edges,
mode
]);
return /* @__PURE__ */ jsx(View, {
...rest,
style: appliedStyle,
ref
});
});
export { SafeAreaView };
//# sourceMappingURL=SafeAreaView.native.js.map