@vxrn/safe-area 1.27.1 → 2.0.0-beta.45.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/dist/cjs/InitialWindow.cjs +15 -17
- package/dist/cjs/InitialWindow.native.cjs +30 -0
- package/dist/cjs/InitialWindow.native.js +15 -16
- package/dist/cjs/InitialWindow.native.js.map +1 -1
- package/dist/cjs/NativeSafeAreaProvider.cjs +109 -135
- package/dist/cjs/NativeSafeAreaProvider.native.cjs +141 -0
- package/dist/cjs/NativeSafeAreaProvider.native.js +111 -141
- package/dist/cjs/NativeSafeAreaProvider.native.js.map +1 -1
- package/dist/cjs/SafeArea-types.cjs +9 -11
- package/dist/cjs/SafeArea-types.native.cjs +18 -0
- package/dist/cjs/SafeArea-types.native.js +9 -10
- package/dist/cjs/SafeArea-types.native.js.map +1 -1
- package/dist/cjs/SafeAreaContext.cjs +85 -106
- package/dist/cjs/SafeAreaContext.native.cjs +132 -0
- package/dist/cjs/SafeAreaContext.native.js +88 -108
- package/dist/cjs/SafeAreaContext.native.js.map +1 -1
- package/dist/cjs/SafeAreaView.cjs +67 -100
- package/dist/cjs/SafeAreaView.native.cjs +99 -0
- package/dist/cjs/SafeAreaView.native.js +74 -106
- package/dist/cjs/SafeAreaView.native.js.map +1 -1
- package/dist/cjs/getWindowFrame.cjs +20 -24
- package/dist/cjs/getWindowFrame.native.cjs +35 -0
- package/dist/cjs/getWindowFrame.native.js +21 -27
- package/dist/cjs/getWindowFrame.native.js.map +1 -1
- package/dist/cjs/index.cjs +9 -11
- package/dist/cjs/index.native.cjs +22 -0
- package/dist/cjs/index.native.js +9 -10
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/InitialWindow.mjs +1 -0
- package/dist/esm/InitialWindow.mjs.map +1 -1
- package/dist/esm/InitialWindow.native.js +1 -0
- package/dist/esm/InitialWindow.native.js.map +1 -1
- package/dist/esm/NativeSafeAreaProvider.mjs +94 -109
- package/dist/esm/NativeSafeAreaProvider.mjs.map +1 -1
- package/dist/esm/NativeSafeAreaProvider.native.js +96 -116
- package/dist/esm/NativeSafeAreaProvider.native.js.map +1 -1
- package/dist/esm/SafeArea-types.mjs +0 -2
- package/dist/esm/SafeArea-types.native.js +0 -2
- package/dist/esm/SafeAreaContext.mjs +62 -74
- package/dist/esm/SafeAreaContext.mjs.map +1 -1
- package/dist/esm/SafeAreaContext.native.js +66 -78
- package/dist/esm/SafeAreaContext.native.js.map +1 -1
- package/dist/esm/SafeAreaView.mjs +52 -74
- package/dist/esm/SafeAreaView.mjs.map +1 -1
- package/dist/esm/SafeAreaView.native.js +60 -82
- package/dist/esm/SafeAreaView.native.js.map +1 -1
- package/dist/esm/getWindowFrame.mjs +7 -6
- package/dist/esm/getWindowFrame.mjs.map +1 -1
- package/dist/esm/getWindowFrame.native.js +9 -10
- package/dist/esm/getWindowFrame.native.js.map +1 -1
- package/dist/esm/index.js +5 -4
- package/dist/esm/index.mjs +5 -4
- package/dist/esm/index.native.js +5 -4
- package/package.json +2 -2
- package/dist/esm/SafeArea-types.mjs.map +0 -1
- package/dist/esm/SafeArea-types.native.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
|
@@ -5,43 +5,36 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
12
|
};
|
|
13
13
|
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
21
|
};
|
|
22
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
-
value: mod,
|
|
29
|
-
enumerable: true
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
23
|
+
value: mod,
|
|
24
|
+
enumerable: true
|
|
30
25
|
}) : target, mod));
|
|
31
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
-
value: true
|
|
33
|
-
}), mod);
|
|
26
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
34
27
|
var SafeAreaContext_exports = {};
|
|
35
28
|
__export(SafeAreaContext_exports, {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
29
|
+
SafeAreaConsumer: () => SafeAreaConsumer,
|
|
30
|
+
SafeAreaContext: () => SafeAreaContext,
|
|
31
|
+
SafeAreaFrameContext: () => SafeAreaFrameContext,
|
|
32
|
+
SafeAreaInsetsContext: () => SafeAreaInsetsContext,
|
|
33
|
+
SafeAreaProvider: () => SafeAreaProvider,
|
|
34
|
+
useSafeArea: () => useSafeArea,
|
|
35
|
+
useSafeAreaFrame: () => useSafeAreaFrame,
|
|
36
|
+
useSafeAreaInsets: () => useSafeAreaInsets,
|
|
37
|
+
withSafeAreaInsets: () => withSafeAreaInsets
|
|
45
38
|
});
|
|
46
39
|
module.exports = __toCommonJS(SafeAreaContext_exports);
|
|
47
40
|
var React = __toESM(require("react"), 1);
|
|
@@ -51,99 +44,85 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
51
44
|
const isDev = process.env.NODE_ENV !== "production";
|
|
52
45
|
const SafeAreaInsetsContext = React.createContext(null);
|
|
53
46
|
if (isDev) {
|
|
54
|
-
|
|
47
|
+
SafeAreaInsetsContext.displayName = "SafeAreaInsetsContext";
|
|
55
48
|
}
|
|
56
49
|
const SafeAreaFrameContext = React.createContext(null);
|
|
57
50
|
if (isDev) {
|
|
58
|
-
|
|
51
|
+
SafeAreaFrameContext.displayName = "SafeAreaFrameContext";
|
|
59
52
|
}
|
|
60
53
|
const ZERO_INSETS = {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
54
|
+
top: 0,
|
|
55
|
+
bottom: 0,
|
|
56
|
+
left: 0,
|
|
57
|
+
right: 0
|
|
65
58
|
};
|
|
66
|
-
function SafeAreaProvider({
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
}, []);
|
|
102
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_NativeSafeAreaProvider.NativeSafeAreaProvider, {
|
|
103
|
-
onInsetsChange,
|
|
104
|
-
...others,
|
|
105
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(SafeAreaFrameContext.Provider, {
|
|
106
|
-
value: frame,
|
|
107
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(SafeAreaInsetsContext.Provider, {
|
|
108
|
-
value: insets,
|
|
109
|
-
children
|
|
110
|
-
})
|
|
111
|
-
})
|
|
112
|
-
});
|
|
59
|
+
function SafeAreaProvider({ children, initialMetrics, initialSafeAreaInsets, ...others }) {
|
|
60
|
+
const parentInsets = useParentSafeAreaInsets();
|
|
61
|
+
const parentFrame = useParentSafeAreaFrame();
|
|
62
|
+
const [insets, setInsets] = React.useState(initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? ZERO_INSETS);
|
|
63
|
+
const [frame, setFrame] = React.useState(initialMetrics?.frame ?? parentFrame ?? (0, import_getWindowFrame.getWindowFrame)());
|
|
64
|
+
const onInsetsChange = React.useCallback((event) => {
|
|
65
|
+
const { nativeEvent: { frame: nextFrame, insets: nextInsets } } = event;
|
|
66
|
+
React.startTransition(() => {
|
|
67
|
+
setFrame((curFrame) => {
|
|
68
|
+
if (nextFrame && (nextFrame.height !== curFrame.height || nextFrame.width !== curFrame.width || nextFrame.x !== curFrame.x || nextFrame.y !== curFrame.y)) {
|
|
69
|
+
return nextFrame;
|
|
70
|
+
}
|
|
71
|
+
return curFrame;
|
|
72
|
+
});
|
|
73
|
+
setInsets((curInsets) => {
|
|
74
|
+
if (!curInsets || nextInsets.bottom !== curInsets.bottom || nextInsets.left !== curInsets.left || nextInsets.right !== curInsets.right || nextInsets.top !== curInsets.top) {
|
|
75
|
+
return nextInsets;
|
|
76
|
+
}
|
|
77
|
+
return curInsets;
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}, []);
|
|
81
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_NativeSafeAreaProvider.NativeSafeAreaProvider, {
|
|
82
|
+
onInsetsChange,
|
|
83
|
+
...others,
|
|
84
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SafeAreaFrameContext.Provider, {
|
|
85
|
+
value: frame,
|
|
86
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SafeAreaInsetsContext.Provider, {
|
|
87
|
+
value: insets,
|
|
88
|
+
children
|
|
89
|
+
})
|
|
90
|
+
})
|
|
91
|
+
});
|
|
113
92
|
}
|
|
114
93
|
function useParentSafeAreaInsets() {
|
|
115
|
-
|
|
94
|
+
return React.useContext(SafeAreaInsetsContext);
|
|
116
95
|
}
|
|
117
96
|
function useParentSafeAreaFrame() {
|
|
118
|
-
|
|
97
|
+
return React.useContext(SafeAreaFrameContext);
|
|
119
98
|
}
|
|
120
99
|
const NO_INSETS_ERROR = "No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.";
|
|
121
100
|
function useSafeAreaInsets() {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
101
|
+
const insets = React.useContext(SafeAreaInsetsContext);
|
|
102
|
+
if (insets == null) {
|
|
103
|
+
throw new Error(NO_INSETS_ERROR);
|
|
104
|
+
}
|
|
105
|
+
return insets;
|
|
127
106
|
}
|
|
128
107
|
function useSafeAreaFrame() {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
108
|
+
const frame = React.useContext(SafeAreaFrameContext);
|
|
109
|
+
if (frame == null) {
|
|
110
|
+
throw new Error(NO_INSETS_ERROR);
|
|
111
|
+
}
|
|
112
|
+
return frame;
|
|
134
113
|
}
|
|
135
114
|
function withSafeAreaInsets(WrappedComponent) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
115
|
+
return React.forwardRef((props, ref) => {
|
|
116
|
+
const insets = useSafeAreaInsets();
|
|
117
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrappedComponent, {
|
|
118
|
+
...props,
|
|
119
|
+
insets,
|
|
120
|
+
ref
|
|
121
|
+
});
|
|
122
|
+
});
|
|
144
123
|
}
|
|
145
124
|
function useSafeArea() {
|
|
146
|
-
|
|
125
|
+
return useSafeAreaInsets();
|
|
147
126
|
}
|
|
148
127
|
const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;
|
|
149
|
-
const SafeAreaContext = SafeAreaInsetsContext;
|
|
128
|
+
const SafeAreaContext = SafeAreaInsetsContext;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
18
|
+
get: () => from[key],
|
|
19
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
25
|
+
value: mod,
|
|
26
|
+
enumerable: true
|
|
27
|
+
}) : target, mod));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var SafeAreaContext_exports = {};
|
|
30
|
+
__export(SafeAreaContext_exports, {
|
|
31
|
+
SafeAreaConsumer: () => SafeAreaConsumer,
|
|
32
|
+
SafeAreaContext: () => SafeAreaContext,
|
|
33
|
+
SafeAreaFrameContext: () => SafeAreaFrameContext,
|
|
34
|
+
SafeAreaInsetsContext: () => SafeAreaInsetsContext,
|
|
35
|
+
SafeAreaProvider: () => SafeAreaProvider,
|
|
36
|
+
useSafeArea: () => useSafeArea,
|
|
37
|
+
useSafeAreaFrame: () => useSafeAreaFrame,
|
|
38
|
+
useSafeAreaInsets: () => useSafeAreaInsets,
|
|
39
|
+
withSafeAreaInsets: () => withSafeAreaInsets
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(SafeAreaContext_exports);
|
|
42
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
43
|
+
var React = __toESM(require("react"), 1);
|
|
44
|
+
var import_NativeSafeAreaProvider = require("./NativeSafeAreaProvider.native.js");
|
|
45
|
+
var import_getWindowFrame = require("./getWindowFrame.native.js");
|
|
46
|
+
var isDev = process.env.NODE_ENV !== "production";
|
|
47
|
+
var SafeAreaInsetsContext = /* @__PURE__ */ React.createContext(null);
|
|
48
|
+
if (isDev) {
|
|
49
|
+
SafeAreaInsetsContext.displayName = "SafeAreaInsetsContext";
|
|
50
|
+
}
|
|
51
|
+
var SafeAreaFrameContext = /* @__PURE__ */ React.createContext(null);
|
|
52
|
+
if (isDev) {
|
|
53
|
+
SafeAreaFrameContext.displayName = "SafeAreaFrameContext";
|
|
54
|
+
}
|
|
55
|
+
var ZERO_INSETS = {
|
|
56
|
+
top: 0,
|
|
57
|
+
bottom: 0,
|
|
58
|
+
left: 0,
|
|
59
|
+
right: 0
|
|
60
|
+
};
|
|
61
|
+
function SafeAreaProvider(param) {
|
|
62
|
+
var { children, initialMetrics, initialSafeAreaInsets, ...others } = param;
|
|
63
|
+
var _ref, _ref1, _ref2, _ref3, _ref4;
|
|
64
|
+
var parentInsets = useParentSafeAreaInsets();
|
|
65
|
+
var parentFrame = useParentSafeAreaFrame();
|
|
66
|
+
var [insets, setInsets] = React.useState((_ref = (_ref1 = (_ref2 = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.insets) !== null && _ref2 !== void 0 ? _ref2 : initialSafeAreaInsets) !== null && _ref1 !== void 0 ? _ref1 : parentInsets) !== null && _ref !== void 0 ? _ref : ZERO_INSETS);
|
|
67
|
+
var [frame, setFrame] = React.useState((_ref3 = (_ref4 = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.frame) !== null && _ref4 !== void 0 ? _ref4 : parentFrame) !== null && _ref3 !== void 0 ? _ref3 : (0, import_getWindowFrame.getWindowFrame)());
|
|
68
|
+
var onInsetsChange = React.useCallback(function(event) {
|
|
69
|
+
var { nativeEvent: { frame: nextFrame, insets: nextInsets } } = event;
|
|
70
|
+
React.startTransition(function() {
|
|
71
|
+
setFrame(function(curFrame) {
|
|
72
|
+
if (nextFrame && (nextFrame.height !== curFrame.height || nextFrame.width !== curFrame.width || nextFrame.x !== curFrame.x || nextFrame.y !== curFrame.y)) {
|
|
73
|
+
return nextFrame;
|
|
74
|
+
}
|
|
75
|
+
return curFrame;
|
|
76
|
+
});
|
|
77
|
+
setInsets(function(curInsets) {
|
|
78
|
+
if (!curInsets || nextInsets.bottom !== curInsets.bottom || nextInsets.left !== curInsets.left || nextInsets.right !== curInsets.right || nextInsets.top !== curInsets.top) {
|
|
79
|
+
return nextInsets;
|
|
80
|
+
}
|
|
81
|
+
return curInsets;
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}, []);
|
|
85
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_NativeSafeAreaProvider.NativeSafeAreaProvider, {
|
|
86
|
+
onInsetsChange,
|
|
87
|
+
...others,
|
|
88
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SafeAreaFrameContext.Provider, {
|
|
89
|
+
value: frame,
|
|
90
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SafeAreaInsetsContext.Provider, {
|
|
91
|
+
value: insets,
|
|
92
|
+
children
|
|
93
|
+
})
|
|
94
|
+
})
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function useParentSafeAreaInsets() {
|
|
98
|
+
return React.useContext(SafeAreaInsetsContext);
|
|
99
|
+
}
|
|
100
|
+
function useParentSafeAreaFrame() {
|
|
101
|
+
return React.useContext(SafeAreaFrameContext);
|
|
102
|
+
}
|
|
103
|
+
var NO_INSETS_ERROR = "No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.";
|
|
104
|
+
function useSafeAreaInsets() {
|
|
105
|
+
var insets = React.useContext(SafeAreaInsetsContext);
|
|
106
|
+
if (insets == null) {
|
|
107
|
+
throw new Error(NO_INSETS_ERROR);
|
|
108
|
+
}
|
|
109
|
+
return insets;
|
|
110
|
+
}
|
|
111
|
+
function useSafeAreaFrame() {
|
|
112
|
+
var frame = React.useContext(SafeAreaFrameContext);
|
|
113
|
+
if (frame == null) {
|
|
114
|
+
throw new Error(NO_INSETS_ERROR);
|
|
115
|
+
}
|
|
116
|
+
return frame;
|
|
117
|
+
}
|
|
118
|
+
function withSafeAreaInsets(WrappedComponent) {
|
|
119
|
+
return /* @__PURE__ */ React.forwardRef(function(props, ref) {
|
|
120
|
+
var insets = useSafeAreaInsets();
|
|
121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrappedComponent, {
|
|
122
|
+
...props,
|
|
123
|
+
insets,
|
|
124
|
+
ref
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
function useSafeArea() {
|
|
129
|
+
return useSafeAreaInsets();
|
|
130
|
+
}
|
|
131
|
+
var SafeAreaConsumer = SafeAreaInsetsContext.Consumer;
|
|
132
|
+
var SafeAreaContext = SafeAreaInsetsContext;
|
|
@@ -7,43 +7,36 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
7
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
9
|
var __export = (target, all) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
14
|
};
|
|
15
15
|
var __copyProps = (to, from, except, desc) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
18
|
+
get: () => from[key],
|
|
19
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
23
|
};
|
|
24
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
-
value: mod,
|
|
31
|
-
enumerable: true
|
|
24
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
25
|
+
value: mod,
|
|
26
|
+
enumerable: true
|
|
32
27
|
}) : target, mod));
|
|
33
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
-
value: true
|
|
35
|
-
}), mod);
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
36
29
|
var SafeAreaContext_exports = {};
|
|
37
30
|
__export(SafeAreaContext_exports, {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
31
|
+
SafeAreaConsumer: () => SafeAreaConsumer,
|
|
32
|
+
SafeAreaContext: () => SafeAreaContext,
|
|
33
|
+
SafeAreaFrameContext: () => SafeAreaFrameContext,
|
|
34
|
+
SafeAreaInsetsContext: () => SafeAreaInsetsContext,
|
|
35
|
+
SafeAreaProvider: () => SafeAreaProvider,
|
|
36
|
+
useSafeArea: () => useSafeArea,
|
|
37
|
+
useSafeAreaFrame: () => useSafeAreaFrame,
|
|
38
|
+
useSafeAreaInsets: () => useSafeAreaInsets,
|
|
39
|
+
withSafeAreaInsets: () => withSafeAreaInsets
|
|
47
40
|
});
|
|
48
41
|
module.exports = __toCommonJS(SafeAreaContext_exports);
|
|
49
42
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -51,104 +44,91 @@ var React = __toESM(require("react"), 1);
|
|
|
51
44
|
var import_NativeSafeAreaProvider = require("./NativeSafeAreaProvider.native.js");
|
|
52
45
|
var import_getWindowFrame = require("./getWindowFrame.native.js");
|
|
53
46
|
var isDev = process.env.NODE_ENV !== "production";
|
|
54
|
-
var SafeAreaInsetsContext = /* @__PURE__ */React.createContext(null);
|
|
47
|
+
var SafeAreaInsetsContext = /* @__PURE__ */ React.createContext(null);
|
|
55
48
|
if (isDev) {
|
|
56
|
-
|
|
49
|
+
SafeAreaInsetsContext.displayName = "SafeAreaInsetsContext";
|
|
57
50
|
}
|
|
58
|
-
var SafeAreaFrameContext = /* @__PURE__ */React.createContext(null);
|
|
51
|
+
var SafeAreaFrameContext = /* @__PURE__ */ React.createContext(null);
|
|
59
52
|
if (isDev) {
|
|
60
|
-
|
|
53
|
+
SafeAreaFrameContext.displayName = "SafeAreaFrameContext";
|
|
61
54
|
}
|
|
62
55
|
var ZERO_INSETS = {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
56
|
+
top: 0,
|
|
57
|
+
bottom: 0,
|
|
58
|
+
left: 0,
|
|
59
|
+
right: 0
|
|
67
60
|
};
|
|
68
61
|
function SafeAreaProvider(param) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
}, []);
|
|
106
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_NativeSafeAreaProvider.NativeSafeAreaProvider, {
|
|
107
|
-
onInsetsChange,
|
|
108
|
-
...others,
|
|
109
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(SafeAreaFrameContext.Provider, {
|
|
110
|
-
value: frame,
|
|
111
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(SafeAreaInsetsContext.Provider, {
|
|
112
|
-
value: insets,
|
|
113
|
-
children
|
|
114
|
-
})
|
|
115
|
-
})
|
|
116
|
-
});
|
|
62
|
+
var { children, initialMetrics, initialSafeAreaInsets, ...others } = param;
|
|
63
|
+
var _ref, _ref1, _ref2, _ref3, _ref4;
|
|
64
|
+
var parentInsets = useParentSafeAreaInsets();
|
|
65
|
+
var parentFrame = useParentSafeAreaFrame();
|
|
66
|
+
var [insets, setInsets] = React.useState((_ref = (_ref1 = (_ref2 = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.insets) !== null && _ref2 !== void 0 ? _ref2 : initialSafeAreaInsets) !== null && _ref1 !== void 0 ? _ref1 : parentInsets) !== null && _ref !== void 0 ? _ref : ZERO_INSETS);
|
|
67
|
+
var [frame, setFrame] = React.useState((_ref3 = (_ref4 = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.frame) !== null && _ref4 !== void 0 ? _ref4 : parentFrame) !== null && _ref3 !== void 0 ? _ref3 : (0, import_getWindowFrame.getWindowFrame)());
|
|
68
|
+
var onInsetsChange = React.useCallback(function(event) {
|
|
69
|
+
var { nativeEvent: { frame: nextFrame, insets: nextInsets } } = event;
|
|
70
|
+
React.startTransition(function() {
|
|
71
|
+
setFrame(function(curFrame) {
|
|
72
|
+
if (nextFrame && (nextFrame.height !== curFrame.height || nextFrame.width !== curFrame.width || nextFrame.x !== curFrame.x || nextFrame.y !== curFrame.y)) {
|
|
73
|
+
return nextFrame;
|
|
74
|
+
}
|
|
75
|
+
return curFrame;
|
|
76
|
+
});
|
|
77
|
+
setInsets(function(curInsets) {
|
|
78
|
+
if (!curInsets || nextInsets.bottom !== curInsets.bottom || nextInsets.left !== curInsets.left || nextInsets.right !== curInsets.right || nextInsets.top !== curInsets.top) {
|
|
79
|
+
return nextInsets;
|
|
80
|
+
}
|
|
81
|
+
return curInsets;
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}, []);
|
|
85
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_NativeSafeAreaProvider.NativeSafeAreaProvider, {
|
|
86
|
+
onInsetsChange,
|
|
87
|
+
...others,
|
|
88
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SafeAreaFrameContext.Provider, {
|
|
89
|
+
value: frame,
|
|
90
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SafeAreaInsetsContext.Provider, {
|
|
91
|
+
value: insets,
|
|
92
|
+
children
|
|
93
|
+
})
|
|
94
|
+
})
|
|
95
|
+
});
|
|
117
96
|
}
|
|
118
97
|
function useParentSafeAreaInsets() {
|
|
119
|
-
|
|
98
|
+
return React.useContext(SafeAreaInsetsContext);
|
|
120
99
|
}
|
|
121
100
|
function useParentSafeAreaFrame() {
|
|
122
|
-
|
|
101
|
+
return React.useContext(SafeAreaFrameContext);
|
|
123
102
|
}
|
|
124
103
|
var NO_INSETS_ERROR = "No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.";
|
|
125
104
|
function useSafeAreaInsets() {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
105
|
+
var insets = React.useContext(SafeAreaInsetsContext);
|
|
106
|
+
if (insets == null) {
|
|
107
|
+
throw new Error(NO_INSETS_ERROR);
|
|
108
|
+
}
|
|
109
|
+
return insets;
|
|
131
110
|
}
|
|
132
111
|
function useSafeAreaFrame() {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
112
|
+
var frame = React.useContext(SafeAreaFrameContext);
|
|
113
|
+
if (frame == null) {
|
|
114
|
+
throw new Error(NO_INSETS_ERROR);
|
|
115
|
+
}
|
|
116
|
+
return frame;
|
|
138
117
|
}
|
|
139
118
|
function withSafeAreaInsets(WrappedComponent) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
119
|
+
return /* @__PURE__ */ React.forwardRef(function(props, ref) {
|
|
120
|
+
var insets = useSafeAreaInsets();
|
|
121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrappedComponent, {
|
|
122
|
+
...props,
|
|
123
|
+
insets,
|
|
124
|
+
ref
|
|
125
|
+
});
|
|
126
|
+
});
|
|
148
127
|
}
|
|
149
128
|
function useSafeArea() {
|
|
150
|
-
|
|
129
|
+
return useSafeAreaInsets();
|
|
151
130
|
}
|
|
152
131
|
var SafeAreaConsumer = SafeAreaInsetsContext.Consumer;
|
|
153
132
|
var SafeAreaContext = SafeAreaInsetsContext;
|
|
133
|
+
|
|
154
134
|
//# sourceMappingURL=SafeAreaContext.native.js.map
|