@xhsreds/reds-rn-next 0.9.1-beta202510291556 → 0.9.1-beta202512012032
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/coverage/.tmp/coverage-0.json +1 -1
- package/coverage/.tmp/coverage-1.json +1 -1
- package/coverage/.tmp/coverage-10.json +1 -1
- package/coverage/.tmp/coverage-12.json +1 -1
- package/coverage/.tmp/coverage-13.json +1 -1
- package/coverage/.tmp/coverage-14.json +1 -1
- package/coverage/.tmp/coverage-16.json +1 -1
- package/coverage/.tmp/coverage-17.json +1 -1
- package/coverage/.tmp/coverage-18.json +1 -1
- package/coverage/.tmp/coverage-19.json +1 -1
- package/coverage/.tmp/coverage-2.json +1 -1
- package/coverage/.tmp/coverage-20.json +1 -1
- package/coverage/.tmp/coverage-21.json +1 -1
- package/coverage/.tmp/coverage-22.json +1 -1
- package/coverage/.tmp/coverage-23.json +1 -1
- package/coverage/.tmp/coverage-25.json +1 -1
- package/coverage/.tmp/coverage-26.json +1 -1
- package/coverage/.tmp/coverage-27.json +1 -1
- package/coverage/.tmp/coverage-29.json +1 -1
- package/coverage/.tmp/coverage-3.json +1 -1
- package/coverage/.tmp/coverage-30.json +1 -1
- package/coverage/.tmp/coverage-33.json +1 -1
- package/coverage/.tmp/coverage-34.json +1 -1
- package/coverage/.tmp/coverage-35.json +1 -1
- package/coverage/.tmp/coverage-36.json +1 -1
- package/coverage/.tmp/coverage-37.json +1 -1
- package/coverage/.tmp/coverage-38.json +1 -1
- package/coverage/.tmp/coverage-39.json +1 -1
- package/coverage/.tmp/coverage-4.json +1 -1
- package/coverage/.tmp/coverage-40.json +1 -1
- package/coverage/.tmp/coverage-41.json +1 -1
- package/coverage/.tmp/coverage-42.json +1 -1
- package/coverage/.tmp/coverage-5.json +1 -1
- package/coverage/.tmp/coverage-6.json +1 -1
- package/coverage/.tmp/coverage-7.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/lib/cjs/_chunks/{CIr5S84J.js → DUU5wf2f.js} +4 -2
- package/lib/cjs/_chunks/DUU5wf2f.js.map +1 -0
- package/lib/cjs/components/ActionablePopover/ActionablePopover.js +2 -2
- package/lib/cjs/components/ActionablePopover/ActionablePopover.js.map +1 -1
- package/lib/cjs/components/Divider/Divider.js +33 -12
- package/lib/cjs/components/Divider/Divider.js.map +1 -1
- package/lib/cjs/components/Divider/index.js +3 -3
- package/lib/cjs/components/Divider/styles.js +36 -30
- package/lib/cjs/components/Divider/styles.js.map +1 -1
- package/lib/cjs/components/Image/Image.js +29 -92
- package/lib/cjs/components/Image/Image.js.map +1 -1
- package/lib/cjs/components/Image/VisibilitySensor.js +1 -1
- package/lib/cjs/components/Image/VisibilitySensor.js.map +1 -1
- package/lib/cjs/components/Image/index.js +4 -3
- package/lib/cjs/components/Image/index.js.map +1 -1
- package/lib/cjs/components/Image/queryCacheBatcher.js +96 -0
- package/lib/cjs/components/Image/queryCacheBatcher.js.map +1 -0
- package/lib/cjs/components/PickerView/Wheel.js +38 -4
- package/lib/cjs/components/PickerView/Wheel.js.map +1 -1
- package/lib/cjs/components/PullRefresh/PullRefresh.js +104 -40
- package/lib/cjs/components/PullRefresh/PullRefresh.js.map +1 -1
- package/lib/cjs/components/PullRefresh/component.js +1 -1
- package/lib/cjs/components/PullRefresh/index.js +1 -1
- package/lib/cjs/components/PullRefresh/interface/index.js +1 -1
- package/lib/cjs/components/Radio/Radio.js +3 -2
- package/lib/cjs/components/Radio/Radio.js.map +1 -1
- package/lib/cjs/components/Radio/index.js +3 -2
- package/lib/cjs/components/Radio/index.js.map +1 -1
- package/lib/cjs/components/StatusBar/hook/getStatusHeight.js +14 -1
- package/lib/cjs/components/StatusBar/hook/getStatusHeight.js.map +1 -1
- package/lib/cjs/index.js +3 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/_chunks/{CZtagXcj.js → gC9g4Fr_.js} +4 -2
- package/lib/esm/_chunks/gC9g4Fr_.js.map +1 -0
- package/lib/esm/components/ActionablePopover/ActionablePopover.js +1 -1
- package/lib/esm/components/ActionablePopover/ActionablePopover.js.map +1 -1
- package/lib/esm/components/Divider/Divider.js +35 -14
- package/lib/esm/components/Divider/Divider.js.map +1 -1
- package/lib/esm/components/Divider/index.js +3 -3
- package/lib/esm/components/Divider/styles.js +36 -30
- package/lib/esm/components/Divider/styles.js.map +1 -1
- package/lib/esm/components/Image/Image.js +31 -94
- package/lib/esm/components/Image/Image.js.map +1 -1
- package/lib/esm/components/Image/VisibilitySensor.js +1 -1
- package/lib/esm/components/Image/VisibilitySensor.js.map +1 -1
- package/lib/esm/components/Image/index.js +4 -3
- package/lib/esm/components/Image/index.js.map +1 -1
- package/lib/esm/components/Image/queryCacheBatcher.js +92 -0
- package/lib/esm/components/Image/queryCacheBatcher.js.map +1 -0
- package/lib/esm/components/PickerView/Wheel.js +38 -4
- package/lib/esm/components/PickerView/Wheel.js.map +1 -1
- package/lib/esm/components/PullRefresh/PullRefresh.js +105 -41
- package/lib/esm/components/PullRefresh/PullRefresh.js.map +1 -1
- package/lib/esm/components/PullRefresh/component.js +1 -1
- package/lib/esm/components/PullRefresh/index.js +1 -1
- package/lib/esm/components/PullRefresh/interface/index.js +1 -1
- package/lib/esm/components/Radio/Radio.js +3 -2
- package/lib/esm/components/Radio/Radio.js.map +1 -1
- package/lib/esm/components/Radio/index.js +3 -2
- package/lib/esm/components/Radio/index.js.map +1 -1
- package/lib/esm/components/StatusBar/hook/getStatusHeight.js +14 -2
- package/lib/esm/components/StatusBar/hook/getStatusHeight.js.map +1 -1
- package/lib/esm/index.js +3 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/src/components/Divider/styles.d.ts +3 -2
- package/lib/src/components/Image/queryCacheBatcher.d.ts +5 -0
- package/lib/src/components/PullRefresh/PullRefresh.d.ts +2 -0
- package/lib/src/components/PullRefresh/interface/index.d.ts +5 -0
- package/lib/src/components/StatusBar/hook/getStatusHeight.d.ts +1 -0
- package/lib/types/components/Divider/styles.d.ts +3 -2
- package/lib/types/components/Image/queryCacheBatcher.d.ts +5 -0
- package/lib/types/components/PullRefresh/PullRefresh.d.ts +2 -0
- package/lib/types/components/PullRefresh/interface/index.d.ts +5 -0
- package/lib/types/components/StatusBar/hook/getStatusHeight.d.ts +1 -0
- package/package.json +2 -2
- package/src/components/ActionablePopover/ActionablePopover.tsx +10 -1
- package/src/components/Divider/Divider.tsx +29 -9
- package/src/components/Divider/demo/index.tsx +12 -6
- package/src/components/Divider/styles.ts +33 -30
- package/src/components/Image/Image.tsx +53 -115
- package/src/components/Image/VisibilitySensor.tsx +1 -2
- package/src/components/Image/queryCacheBatcher.ts +84 -0
- package/src/components/PickerView/Wheel.tsx +35 -0
- package/src/components/PullRefresh/PullRefresh.tsx +146 -55
- package/src/components/PullRefresh/doc/index.mdx +19 -16
- package/src/components/PullRefresh/interface/index.ts +6 -0
- package/src/components/StatusBar/hook/getStatusHeight.ts +20 -1
- package/src/i18n/@types/resources.d.ts +18 -18
- package/src/i18n/index.json +31 -31
- package/lib/cjs/_chunks/CIr5S84J.js.map +0 -1
- package/lib/esm/_chunks/CZtagXcj.js.map +0 -1
|
@@ -188,9 +188,10 @@ import '../Image/styles.js';
|
|
|
188
188
|
import '../Image/hook/index.js';
|
|
189
189
|
import '../Image/CircularProgress.js';
|
|
190
190
|
import '../Image/utils.js';
|
|
191
|
-
import '../Image/VisibilitySensor.js';
|
|
192
191
|
import '../Image/apm.js';
|
|
192
|
+
import '../Image/queryCacheBatcher.js';
|
|
193
193
|
import '../Image/Image69.js';
|
|
194
|
+
import '../Image/VisibilitySensor.js';
|
|
194
195
|
import '../Popover/Popover.js';
|
|
195
196
|
import '../Popover/component.js';
|
|
196
197
|
import '../../_chunks/Da9cW8JG.js';
|
|
@@ -223,7 +224,7 @@ import '../../_chunks/BKS4Pa1R.js';
|
|
|
223
224
|
import '../Result/styles.js';
|
|
224
225
|
import '../Result/hooks/useDefaultIcon.js';
|
|
225
226
|
import '../PullRefresh/PullRefresh.js';
|
|
226
|
-
import '../../_chunks/
|
|
227
|
+
import '../../_chunks/gC9g4Fr_.js';
|
|
227
228
|
import '../PullRefresh/component.js';
|
|
228
229
|
import '../PullRefresh/Refresh.js';
|
|
229
230
|
import '../Avatar/Avatar.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -25,6 +25,12 @@ var IPADPRO11_WIDTH = 834;
|
|
|
25
25
|
var IPADPRO11_HEIGHT = 1194;
|
|
26
26
|
var IPADPRO129_HEIGHT = 1024;
|
|
27
27
|
var IPADPRO129_WIDTH = 1366;
|
|
28
|
+
var IPHONE17AIR_WIDTH = 420;
|
|
29
|
+
var IPHONE17AIR_HEIGHT = 912;
|
|
30
|
+
var IPHONE17_WIDTH = 402;
|
|
31
|
+
var IPHONE17_HEIGHT = 874;
|
|
32
|
+
var IPHONE17PROMAX_WIDTH = 440;
|
|
33
|
+
var IPHONE17PROMAX_HEIGHT = 956;
|
|
28
34
|
var getResolvedDimensions = function getResolvedDimensions() {
|
|
29
35
|
var _Dimensions$get = Dimensions.get("window"),
|
|
30
36
|
width = _Dimensions$get.width,
|
|
@@ -58,6 +64,9 @@ var isIPhoneX = function () {
|
|
|
58
64
|
if (Platform.OS === "web") return false;
|
|
59
65
|
return Platform.OS === "ios" && (D_HEIGHT === X_HEIGHT && D_WIDTH === X_WIDTH || D_HEIGHT === X_WIDTH && D_WIDTH === X_HEIGHT) || D_HEIGHT === XSMAX_HEIGHT && D_WIDTH === XSMAX_WIDTH || D_HEIGHT === XSMAX_WIDTH && D_WIDTH === XSMAX_HEIGHT || isIPhone12;
|
|
60
66
|
}();
|
|
67
|
+
var isIPhone17 = /* @__PURE__ */function () {
|
|
68
|
+
return D_HEIGHT === IPHONE17_HEIGHT && D_WIDTH === IPHONE17_WIDTH || D_HEIGHT === IPHONE17PROMAX_HEIGHT && D_WIDTH === IPHONE17PROMAX_WIDTH || D_HEIGHT === IPHONE17AIR_HEIGHT && D_WIDTH === IPHONE17AIR_WIDTH;
|
|
69
|
+
}();
|
|
61
70
|
var isNewIPadPro = function () {
|
|
62
71
|
if (Platform.OS !== "ios") return false;
|
|
63
72
|
return D_HEIGHT === IPADPRO11_HEIGHT && D_WIDTH === IPADPRO11_WIDTH || D_HEIGHT === IPADPRO11_HEIGHT && D_WIDTH === IPADPRO11_WIDTH || D_HEIGHT === IPADPRO129_HEIGHT && D_WIDTH === IPADPRO129_WIDTH || D_HEIGHT === IPADPRO129_HEIGHT && D_WIDTH === IPADPRO129_WIDTH;
|
|
@@ -94,6 +103,9 @@ var statusBarHeight = function statusBarHeight(isLandscape) {
|
|
|
94
103
|
if (isIPhoneX) {
|
|
95
104
|
return isLandscape ? 0 : 44;
|
|
96
105
|
}
|
|
106
|
+
if (isIPhone17) {
|
|
107
|
+
return isLandscape ? 0 : 34;
|
|
108
|
+
}
|
|
97
109
|
if (isNewIPadPro) {
|
|
98
110
|
return 24;
|
|
99
111
|
}
|
|
@@ -106,7 +118,7 @@ var statusBarHeight = function statusBarHeight(isLandscape) {
|
|
|
106
118
|
return isLandscape ? 0 : 20;
|
|
107
119
|
};
|
|
108
120
|
var safeAreaBottomInset = function safeAreaBottomInset() {
|
|
109
|
-
if (isIPhoneX || isIPhone14Pro || isIPhone16Pro || isIPhoneAir) {
|
|
121
|
+
if (isIPhoneX || isIPhone14Pro || isIPhone16Pro || isIPhoneAir || isIPhone17) {
|
|
110
122
|
return 34;
|
|
111
123
|
}
|
|
112
124
|
if (isNewIPadPro) {
|
|
@@ -151,5 +163,5 @@ function getStatusHeight() {
|
|
|
151
163
|
return top;
|
|
152
164
|
}
|
|
153
165
|
|
|
154
|
-
export { getStatusHeight as default, getResolvedDimensions, getSafeAreaInsets, isIPhone12, isIPhone14Pro, isIPhone16Pro, isIPhoneAir, isIPhoneX, isNewIPadPro, safeAreaBottomInset, statusBarHeight };
|
|
166
|
+
export { getStatusHeight as default, getResolvedDimensions, getSafeAreaInsets, isIPhone12, isIPhone14Pro, isIPhone16Pro, isIPhone17, isIPhoneAir, isIPhoneX, isNewIPadPro, safeAreaBottomInset, statusBarHeight };
|
|
155
167
|
//# sourceMappingURL=getStatusHeight.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStatusHeight.js","sources":["../../../../../src/components/StatusBar/hook/getStatusHeight.ts"],"sourcesContent":["import { Dimensions, Platform, StatusBar } from \"react-native\";\n\n// See https://mydevice.io/devices/ for device dimensions\nconst X_WIDTH = 375;\nconst X_HEIGHT = 812;\nconst XSMAX_WIDTH = 414;\nconst XSMAX_HEIGHT = 896;\nconst IPHOME12_WIDTH = 390;\nconst IPHOME12_HEIGHT = 844;\nconst IPHONE12MAX_WIDTH = 428;\nconst IPHONE12MAX_HEIGHT = 926;\nconst IPHONE14PRO_WIDTH = 393;\nconst IPHONE14PRO_HEIGHT = 852;\nconst IPHONE14PROMAX_WIDTH = 430;\nconst IPHONE14PROMAX_HEIGHT = 932;\nconst IPHONE16PRO_WIDTH = 402;\nconst IPHONE16PRO_HEIGHT = 874;\nconst IPHONE16PROMAX_WIDTH = 430;\nconst IPHONE16PROMAX_HEIGHT = 932;\n// 小红书客户端8.76版本及以上获取的16promax高度\nconst IPHONE16PROMAX_HEIGHT_876 = 956;\nconst IPHONE16PROMAX_WIDTH_876 = 440;\nconst IPHONEAIR_WIDTH = 420;\nconst IPHONEAIR_HEIGHT = 912;\n\nconst PAD_WIDTH = 768;\nconst IPADPRO11_WIDTH = 834;\nconst IPADPRO11_HEIGHT = 1194;\nconst IPADPRO129_HEIGHT = 1024;\nconst IPADPRO129_WIDTH = 1366;\n\nexport const getResolvedDimensions = () => {\n const { width, height } = Dimensions.get(\"window\");\n if (width === 0 && height === 0) return Dimensions.get(\"screen\");\n return { width, height };\n};\n\nconst { height: D_HEIGHT, width: D_WIDTH } = getResolvedDimensions();\n\nexport const isIPhone16Pro = (() => {\n if (Platform.OS === \"web\") return false;\n return (\n Platform.OS === \"ios\" &&\n ((D_HEIGHT === IPHONE16PROMAX_HEIGHT && D_WIDTH === IPHONE16PROMAX_WIDTH) ||\n (D_HEIGHT === IPHONE16PRO_HEIGHT && D_WIDTH === IPHONE16PRO_WIDTH) ||\n (D_HEIGHT === IPHONE16PROMAX_HEIGHT_876 && D_WIDTH === IPHONE16PROMAX_WIDTH_876)) // eslint-disable-line no-mixed-operators\n );\n})();\n\nexport const isIPhone14Pro = (() => {\n if (Platform.OS === \"web\") return false;\n\n return (\n (Platform.OS === \"ios\" && D_HEIGHT === IPHONE14PRO_HEIGHT && D_WIDTH === IPHONE14PRO_WIDTH) || // eslint-disable-line no-mixed-operators\n (D_HEIGHT === IPHONE14PROMAX_HEIGHT && D_WIDTH === IPHONE14PROMAX_WIDTH) // eslint-disable-line no-mixed-operators\n );\n})();\n\nexport const isIPhone12 = (() => {\n if (Platform.OS === \"web\") return false;\n\n return (\n (Platform.OS === \"ios\" && D_HEIGHT === IPHOME12_HEIGHT && D_WIDTH === IPHOME12_WIDTH) || // eslint-disable-line no-mixed-operators\n (D_HEIGHT === IPHONE12MAX_HEIGHT && D_WIDTH === IPHONE12MAX_WIDTH) // eslint-disable-line no-mixed-operators\n );\n})();\n\nexport const isIPhoneX = (() => {\n if (Platform.OS === \"web\") return false;\n\n return (\n (Platform.OS === \"ios\" &&\n ((D_HEIGHT === X_HEIGHT && D_WIDTH === X_WIDTH) || (D_HEIGHT === X_WIDTH && D_WIDTH === X_HEIGHT))) ||\n (D_HEIGHT === XSMAX_HEIGHT && D_WIDTH === XSMAX_WIDTH) ||\n (D_HEIGHT === XSMAX_WIDTH && D_WIDTH === XSMAX_HEIGHT) ||\n isIPhone12\n );\n})();\n\nexport const isNewIPadPro = (() => {\n if (Platform.OS !== \"ios\") return false;\n\n return (\n (D_HEIGHT === IPADPRO11_HEIGHT && D_WIDTH === IPADPRO11_WIDTH) ||\n (D_HEIGHT === IPADPRO11_HEIGHT && D_WIDTH === IPADPRO11_WIDTH) ||\n (D_HEIGHT === IPADPRO129_HEIGHT && D_WIDTH === IPADPRO129_WIDTH) ||\n (D_HEIGHT === IPADPRO129_HEIGHT && D_WIDTH === IPADPRO129_WIDTH)\n );\n})();\n\nexport const isIPhoneAir = (() => {\n if (Platform.OS === \"web\") return false;\n\n return Platform.OS === \"ios\" && D_HEIGHT === IPHONEAIR_HEIGHT && D_WIDTH === IPHONEAIR_WIDTH;\n})();\n\nconst isIPad = (() => {\n if (Platform.OS !== \"ios\" || isIPhoneX) return false;\n\n // if portrait and width is smaller than iPad width\n if (D_HEIGHT > D_WIDTH && D_WIDTH < PAD_WIDTH) {\n return false;\n }\n\n // if landscape and height is smaller that iPad height\n if (D_WIDTH > D_HEIGHT && D_HEIGHT < PAD_WIDTH) {\n return false;\n }\n\n return true;\n})();\n\nexport const statusBarHeight = (isLandscape: boolean, immersive: boolean = false) => {\n /**\n * This is a temporary workaround because we don't have a way to detect\n * if the status bar is translucent or opaque. If opaque, we don't need to\n * factor in the height here if translucent (content renders under it) then\n * we do.\n */\n if (Platform.OS === \"android\") {\n if (!immersive) {\n return 0;\n }\n\n // currentHeight d.ts 定义中可能是 undefined,这里做一个兼容,为了解决 ts 报错\n return StatusBar.currentHeight ?? 0;\n }\n\n if (isIPhone16Pro) {\n return isLandscape ? 0 : 59;\n }\n\n if (isIPhone14Pro) {\n return isLandscape ? 0 : 59;\n }\n\n if (isIPhoneX) {\n return isLandscape ? 0 : 44;\n }\n\n if (isNewIPadPro) {\n return 24;\n }\n\n if (isIPad) {\n return 20;\n }\n\n if (isIPhoneAir) {\n return isLandscape ? 0 : 68;\n }\n\n return isLandscape ? 0 : 20;\n};\n\nexport const safeAreaBottomInset = () => {\n if (isIPhoneX || isIPhone14Pro || isIPhone16Pro || isIPhoneAir) {\n return 34;\n }\n\n if (isNewIPadPro) {\n return 20;\n }\n\n if (Platform.OS === \"android\") {\n return 20;\n }\n\n return 0;\n};\n\n/**\n * 这里统一按照竖屏场景来处理,等后续 react-native 大版本升级,统计接入处理横竖屏、分屏、屏中屏等 case。\n *\n * @param immersive\n */\ntype insetsCacheKey = \"top\" | \"bottom\";\nconst insetsCache: Map<insetsCacheKey, number> = new Map();\n\nexport function getSafeAreaInsets(immersive: boolean = false): Record<insetsCacheKey, number> {\n // @ts-ignore\n if (Platform.OS === \"harmony\") {\n return {\n top: StatusBar.currentHeight || 0,\n bottom: 20,\n };\n }\n let top = 0;\n let bottom = 0;\n\n if (insetsCache.has(\"top\")) {\n top = insetsCache.get(\"top\") || 0;\n } else {\n top = statusBarHeight(false, immersive);\n }\n\n if (insetsCache.has(\"bottom\")) {\n bottom = insetsCache.get(\"bottom\") || 0;\n } else {\n bottom = safeAreaBottomInset();\n }\n\n return {\n top,\n bottom,\n };\n}\n\nexport default function getStatusHeight(): any {\n // @ts-ignore\n if (Platform.OS === \"harmony\") {\n return StatusBar.currentHeight || 0;\n }\n let top = statusBarHeight(false, true);\n\n return top;\n}\n"],"names":["X_WIDTH","X_HEIGHT","XSMAX_WIDTH","XSMAX_HEIGHT","IPHOME12_WIDTH","IPHOME12_HEIGHT","IPHONE12MAX_WIDTH","IPHONE12MAX_HEIGHT","IPHONE14PRO_WIDTH","IPHONE14PRO_HEIGHT","IPHONE14PROMAX_WIDTH","IPHONE14PROMAX_HEIGHT","IPHONE16PRO_WIDTH","IPHONE16PRO_HEIGHT","IPHONE16PROMAX_WIDTH","IPHONE16PROMAX_HEIGHT","IPHONE16PROMAX_HEIGHT_876","IPHONE16PROMAX_WIDTH_876","IPHONEAIR_WIDTH","IPHONEAIR_HEIGHT","PAD_WIDTH","IPADPRO11_WIDTH","IPADPRO11_HEIGHT","IPADPRO129_HEIGHT","IPADPRO129_WIDTH","getResolvedDimensions","_Dimensions$get","Dimensions","get","width","height","_getResolvedDimension","D_HEIGHT","D_WIDTH","isIPhone16Pro","Platform","OS","isIPhone14Pro","isIPhone12","isIPhoneX","isNewIPadPro","isIPhoneAir","isIPad","statusBarHeight","isLandscape","immersive","arguments","length","undefined","_StatusBar$currentHei","StatusBar","currentHeight","safeAreaBottomInset","insetsCache","Map","getSafeAreaInsets","top","bottom","has","getStatusHeight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getStatusHeight.js","sources":["../../../../../src/components/StatusBar/hook/getStatusHeight.ts"],"sourcesContent":["import { Dimensions, Platform, StatusBar } from \"react-native\";\n\n// See https://mydevice.io/devices/ for device dimensions\nconst X_WIDTH = 375;\nconst X_HEIGHT = 812;\nconst XSMAX_WIDTH = 414;\nconst XSMAX_HEIGHT = 896;\nconst IPHOME12_WIDTH = 390;\nconst IPHOME12_HEIGHT = 844;\nconst IPHONE12MAX_WIDTH = 428;\nconst IPHONE12MAX_HEIGHT = 926;\nconst IPHONE14PRO_WIDTH = 393;\nconst IPHONE14PRO_HEIGHT = 852;\nconst IPHONE14PROMAX_WIDTH = 430;\nconst IPHONE14PROMAX_HEIGHT = 932;\nconst IPHONE16PRO_WIDTH = 402;\nconst IPHONE16PRO_HEIGHT = 874;\nconst IPHONE16PROMAX_WIDTH = 430;\nconst IPHONE16PROMAX_HEIGHT = 932;\n// 小红书客户端8.76版本及以上获取的16promax高度\nconst IPHONE16PROMAX_HEIGHT_876 = 956;\nconst IPHONE16PROMAX_WIDTH_876 = 440;\nconst IPHONEAIR_WIDTH = 420;\nconst IPHONEAIR_HEIGHT = 912;\n\nconst PAD_WIDTH = 768;\nconst IPADPRO11_WIDTH = 834;\nconst IPADPRO11_HEIGHT = 1194;\nconst IPADPRO129_HEIGHT = 1024;\nconst IPADPRO129_WIDTH = 1366;\n\nconst IPHONE17AIR_WIDTH = 420;\nconst IPHONE17AIR_HEIGHT = 912;\nconst IPHONE17_WIDTH = 402;\nconst IPHONE17_HEIGHT = 874;\nconst IPHONE17PROMAX_WIDTH = 440;\nconst IPHONE17PROMAX_HEIGHT = 956;\n\nexport const getResolvedDimensions = () => {\n const { width, height } = Dimensions.get(\"window\");\n if (width === 0 && height === 0) return Dimensions.get(\"screen\");\n return { width, height };\n};\n\nconst { height: D_HEIGHT, width: D_WIDTH } = getResolvedDimensions();\n\nexport const isIPhone16Pro = (() => {\n if (Platform.OS === \"web\") return false;\n return (\n Platform.OS === \"ios\" &&\n ((D_HEIGHT === IPHONE16PROMAX_HEIGHT && D_WIDTH === IPHONE16PROMAX_WIDTH) ||\n (D_HEIGHT === IPHONE16PRO_HEIGHT && D_WIDTH === IPHONE16PRO_WIDTH) ||\n (D_HEIGHT === IPHONE16PROMAX_HEIGHT_876 && D_WIDTH === IPHONE16PROMAX_WIDTH_876)) // eslint-disable-line no-mixed-operators\n );\n})();\n\nexport const isIPhone14Pro = (() => {\n if (Platform.OS === \"web\") return false;\n\n return (\n (Platform.OS === \"ios\" && D_HEIGHT === IPHONE14PRO_HEIGHT && D_WIDTH === IPHONE14PRO_WIDTH) || // eslint-disable-line no-mixed-operators\n (D_HEIGHT === IPHONE14PROMAX_HEIGHT && D_WIDTH === IPHONE14PROMAX_WIDTH) // eslint-disable-line no-mixed-operators\n );\n})();\n\nexport const isIPhone12 = (() => {\n if (Platform.OS === \"web\") return false;\n\n return (\n (Platform.OS === \"ios\" && D_HEIGHT === IPHOME12_HEIGHT && D_WIDTH === IPHOME12_WIDTH) || // eslint-disable-line no-mixed-operators\n (D_HEIGHT === IPHONE12MAX_HEIGHT && D_WIDTH === IPHONE12MAX_WIDTH) // eslint-disable-line no-mixed-operators\n );\n})();\n\nexport const isIPhoneX = (() => {\n if (Platform.OS === \"web\") return false;\n\n return (\n (Platform.OS === \"ios\" &&\n ((D_HEIGHT === X_HEIGHT && D_WIDTH === X_WIDTH) || (D_HEIGHT === X_WIDTH && D_WIDTH === X_HEIGHT))) ||\n (D_HEIGHT === XSMAX_HEIGHT && D_WIDTH === XSMAX_WIDTH) ||\n (D_HEIGHT === XSMAX_WIDTH && D_WIDTH === XSMAX_HEIGHT) ||\n isIPhone12\n );\n})();\n\nexport const isIPhone17 = (() => {\n return (\n (D_HEIGHT === IPHONE17_HEIGHT && D_WIDTH === IPHONE17_WIDTH) ||\n (D_HEIGHT === IPHONE17PROMAX_HEIGHT && D_WIDTH === IPHONE17PROMAX_WIDTH) ||\n (D_HEIGHT === IPHONE17AIR_HEIGHT && D_WIDTH === IPHONE17AIR_WIDTH)\n );\n})();\n\nexport const isNewIPadPro = (() => {\n if (Platform.OS !== \"ios\") return false;\n\n return (\n (D_HEIGHT === IPADPRO11_HEIGHT && D_WIDTH === IPADPRO11_WIDTH) ||\n (D_HEIGHT === IPADPRO11_HEIGHT && D_WIDTH === IPADPRO11_WIDTH) ||\n (D_HEIGHT === IPADPRO129_HEIGHT && D_WIDTH === IPADPRO129_WIDTH) ||\n (D_HEIGHT === IPADPRO129_HEIGHT && D_WIDTH === IPADPRO129_WIDTH)\n );\n})();\n\nexport const isIPhoneAir = (() => {\n if (Platform.OS === \"web\") return false;\n\n return Platform.OS === \"ios\" && D_HEIGHT === IPHONEAIR_HEIGHT && D_WIDTH === IPHONEAIR_WIDTH;\n})();\n\nconst isIPad = (() => {\n if (Platform.OS !== \"ios\" || isIPhoneX) return false;\n\n // if portrait and width is smaller than iPad width\n if (D_HEIGHT > D_WIDTH && D_WIDTH < PAD_WIDTH) {\n return false;\n }\n\n // if landscape and height is smaller that iPad height\n if (D_WIDTH > D_HEIGHT && D_HEIGHT < PAD_WIDTH) {\n return false;\n }\n\n return true;\n})();\n\nexport const statusBarHeight = (isLandscape: boolean, immersive: boolean = false) => {\n /**\n * This is a temporary workaround because we don't have a way to detect\n * if the status bar is translucent or opaque. If opaque, we don't need to\n * factor in the height here if translucent (content renders under it) then\n * we do.\n */\n if (Platform.OS === \"android\") {\n if (!immersive) {\n return 0;\n }\n\n // currentHeight d.ts 定义中可能是 undefined,这里做一个兼容,为了解决 ts 报错\n return StatusBar.currentHeight ?? 0;\n }\n\n if (isIPhone16Pro) {\n return isLandscape ? 0 : 59;\n }\n\n if (isIPhone14Pro) {\n return isLandscape ? 0 : 59;\n }\n\n if (isIPhoneX) {\n return isLandscape ? 0 : 44;\n }\n\n if (isIPhone17) {\n return isLandscape ? 0 : 34;\n }\n\n if (isNewIPadPro) {\n return 24;\n }\n\n if (isIPad) {\n return 20;\n }\n\n if (isIPhoneAir) {\n return isLandscape ? 0 : 68;\n }\n\n return isLandscape ? 0 : 20;\n};\n\nexport const safeAreaBottomInset = () => {\n if (isIPhoneX || isIPhone14Pro || isIPhone16Pro || isIPhoneAir || isIPhone17) {\n return 34;\n }\n\n if (isNewIPadPro) {\n return 20;\n }\n\n if (Platform.OS === \"android\") {\n return 20;\n }\n\n return 0;\n};\n\n/**\n * 这里统一按照竖屏场景来处理,等后续 react-native 大版本升级,统计接入处理横竖屏、分屏、屏中屏等 case。\n *\n * @param immersive\n */\ntype insetsCacheKey = \"top\" | \"bottom\";\nconst insetsCache: Map<insetsCacheKey, number> = new Map();\n\nexport function getSafeAreaInsets(immersive: boolean = false): Record<insetsCacheKey, number> {\n // @ts-ignore\n if (Platform.OS === \"harmony\") {\n return {\n top: StatusBar.currentHeight || 0,\n bottom: 20,\n };\n }\n let top = 0;\n let bottom = 0;\n\n if (insetsCache.has(\"top\")) {\n top = insetsCache.get(\"top\") || 0;\n } else {\n top = statusBarHeight(false, immersive);\n }\n\n if (insetsCache.has(\"bottom\")) {\n bottom = insetsCache.get(\"bottom\") || 0;\n } else {\n bottom = safeAreaBottomInset();\n }\n\n return {\n top,\n bottom,\n };\n}\n\nexport default function getStatusHeight(): any {\n // @ts-ignore\n if (Platform.OS === \"harmony\") {\n return StatusBar.currentHeight || 0;\n }\n let top = statusBarHeight(false, true);\n\n return top;\n}\n"],"names":["X_WIDTH","X_HEIGHT","XSMAX_WIDTH","XSMAX_HEIGHT","IPHOME12_WIDTH","IPHOME12_HEIGHT","IPHONE12MAX_WIDTH","IPHONE12MAX_HEIGHT","IPHONE14PRO_WIDTH","IPHONE14PRO_HEIGHT","IPHONE14PROMAX_WIDTH","IPHONE14PROMAX_HEIGHT","IPHONE16PRO_WIDTH","IPHONE16PRO_HEIGHT","IPHONE16PROMAX_WIDTH","IPHONE16PROMAX_HEIGHT","IPHONE16PROMAX_HEIGHT_876","IPHONE16PROMAX_WIDTH_876","IPHONEAIR_WIDTH","IPHONEAIR_HEIGHT","PAD_WIDTH","IPADPRO11_WIDTH","IPADPRO11_HEIGHT","IPADPRO129_HEIGHT","IPADPRO129_WIDTH","IPHONE17AIR_WIDTH","IPHONE17AIR_HEIGHT","IPHONE17_WIDTH","IPHONE17_HEIGHT","IPHONE17PROMAX_WIDTH","IPHONE17PROMAX_HEIGHT","getResolvedDimensions","_Dimensions$get","Dimensions","get","width","height","_getResolvedDimension","D_HEIGHT","D_WIDTH","isIPhone16Pro","Platform","OS","isIPhone14Pro","isIPhone12","isIPhoneX","isIPhone17","isNewIPadPro","isIPhoneAir","isIPad","statusBarHeight","isLandscape","immersive","arguments","length","undefined","_StatusBar$currentHei","StatusBar","currentHeight","safeAreaBottomInset","insetsCache","Map","getSafeAreaInsets","top","bottom","has","getStatusHeight"],"mappings":";;AAGA,IAAMA,OAAU,GAAA,GAAA,CAAA;AAChB,IAAMC,QAAW,GAAA,GAAA,CAAA;AACjB,IAAMC,WAAc,GAAA,GAAA,CAAA;AACpB,IAAMC,YAAe,GAAA,GAAA,CAAA;AACrB,IAAMC,cAAiB,GAAA,GAAA,CAAA;AACvB,IAAMC,eAAkB,GAAA,GAAA,CAAA;AACxB,IAAMC,iBAAoB,GAAA,GAAA,CAAA;AAC1B,IAAMC,kBAAqB,GAAA,GAAA,CAAA;AAC3B,IAAMC,iBAAoB,GAAA,GAAA,CAAA;AAC1B,IAAMC,kBAAqB,GAAA,GAAA,CAAA;AAC3B,IAAMC,oBAAuB,GAAA,GAAA,CAAA;AAC7B,IAAMC,qBAAwB,GAAA,GAAA,CAAA;AAC9B,IAAMC,iBAAoB,GAAA,GAAA,CAAA;AAC1B,IAAMC,kBAAqB,GAAA,GAAA,CAAA;AAC3B,IAAMC,oBAAuB,GAAA,GAAA,CAAA;AAC7B,IAAMC,qBAAwB,GAAA,GAAA,CAAA;AAE9B,IAAMC,yBAA4B,GAAA,GAAA,CAAA;AAClC,IAAMC,wBAA2B,GAAA,GAAA,CAAA;AACjC,IAAMC,eAAkB,GAAA,GAAA,CAAA;AACxB,IAAMC,gBAAmB,GAAA,GAAA,CAAA;AAEzB,IAAMC,SAAY,GAAA,GAAA,CAAA;AAClB,IAAMC,eAAkB,GAAA,GAAA,CAAA;AACxB,IAAMC,gBAAmB,GAAA,IAAA,CAAA;AACzB,IAAMC,iBAAoB,GAAA,IAAA,CAAA;AAC1B,IAAMC,gBAAmB,GAAA,IAAA,CAAA;AAEzB,IAAMC,iBAAoB,GAAA,GAAA,CAAA;AAC1B,IAAMC,kBAAqB,GAAA,GAAA,CAAA;AAC3B,IAAMC,cAAiB,GAAA,GAAA,CAAA;AACvB,IAAMC,eAAkB,GAAA,GAAA,CAAA;AACxB,IAAMC,oBAAuB,GAAA,GAAA,CAAA;AAC7B,IAAMC,qBAAwB,GAAA,GAAA,CAAA;IAEjBC,wBAAwB,SAAxBA,wBAA8B;AACzC,EAAA,IAAAC,eAAA,GAA0BC,UAAA,CAAWC,IAAI,QAAQ,CAAA;IAAzCC,KAAO,GAAAH,eAAA,CAAPG,KAAO;IAAAC,MAAA,GAAAJ,eAAA,CAAAI,MAAA,CAAA;AACf,EAAA,IAAID,UAAU,CAAK,IAAAC,MAAA,KAAW,GAAU,OAAAH,UAAA,CAAWC,IAAI,QAAQ,CAAA,CAAA;EACxD,OAAA;AAAEC,IAAAA,OAAAA;AAAOC,IAAAA,MAAO,EAAPA,MAAAA;GAAO,CAAA;AACzB,EAAA;AAEA,IAAAC,qBAAA,GAA6CN,qBAAsB,EAAA;EAAnDO,QAAA,GAAAD,qBAAA,CAARD,MAAQ;EAAiBG,OAAA,GAAAF,qBAAA,CAAPF,KAAO,CAAA;AAE1B,IAAMK,gBAAiB,YAAM;AAC9B,EAAA,IAAAC,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAClC,EAAA,OACED,QAAS,CAAAC,EAAA,KAAO,KACd,KAAAJ,QAAA,KAAavB,qBAAyB,IAAAwB,OAAA,KAAYzB,oBACjD,IAAAwB,QAAA,KAAazB,kBAAsB,IAAA0B,OAAA,KAAY3B,iBAC/C,IAAA0B,QAAA,KAAatB,6BAA6BuB,OAAY,KAAAtB,wBAAA,CAAA,CAAA;AAE7D,CAAG,GAAA;AAEI,IAAM0B,gBAAiB,YAAM;AAC9B,EAAA,IAAAF,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGD,QAAS,CAAAC,EAAA,KAAO,KAAS,IAAAJ,QAAA,KAAa7B,sBAAsB8B,OAAY,KAAA/B,iBAAA;AAAA;AACxE8B,EAAAA,QAAA,KAAa3B,yBAAyB4B,OAAY,KAAA7B,oBAAA,CAAA;AAEvD,CAAG,GAAA;AAEI,IAAMkC,aAAc,YAAM;AAC3B,EAAA,IAAAH,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGD,QAAS,CAAAC,EAAA,KAAO,KAAS,IAAAJ,QAAA,KAAajC,mBAAmBkC,OAAY,KAAAnC,cAAA;AAAA;AACrEkC,EAAAA,QAAA,KAAa/B,sBAAsBgC,OAAY,KAAAjC,iBAAA,CAAA;AAEpD,CAAG,GAAA;AAEI,IAAMuC,YAAa,YAAM;AAC1B,EAAA,IAAAJ,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGD,SAASC,EAAO,KAAA,KAAA,KACbJ,aAAarC,QAAY,IAAAsC,OAAA,KAAYvC,WAAasC,QAAa,KAAAtC,OAAA,IAAWuC,OAAY,KAAAtC,QAAA,CAAA,IACzFqC,aAAanC,YAAgB,IAAAoC,OAAA,KAAYrC,eACzCoC,QAAa,KAAApC,WAAA,IAAeqC,YAAYpC,YACzC,IAAAyC,UAAA,CAAA;AAEJ,CAAG,GAAA;AAEUE,IAAAA,4BAAoB,YAAA;EAE5B,OAAAR,QAAA,KAAaV,eAAmB,IAAAW,OAAA,KAAYZ,cAC5C,IAAAW,QAAA,KAAaR,yBAAyBS,OAAY,KAAAV,oBAAA,IAClDS,QAAa,KAAAZ,kBAAA,IAAsBa,OAAY,KAAAd,iBAAA,CAAA;AAEpD,CAAG,GAAA;AAEI,IAAMsB,eAAgB,YAAM;AAC7B,EAAA,IAAAN,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGJ,QAAa,KAAAhB,gBAAA,IAAoBiB,OAAY,KAAAlB,eAAA,IAC7CiB,aAAahB,gBAAoB,IAAAiB,OAAA,KAAYlB,eAC7C,IAAAiB,QAAA,KAAaf,iBAAqB,IAAAgB,OAAA,KAAYf,gBAC9C,IAAAc,QAAA,KAAaf,qBAAqBgB,OAAY,KAAAf,gBAAA,CAAA;AAEnD,CAAG,GAAA;AAEI,IAAMwB,cAAe,YAAM;AAC5B,EAAA,IAAAP,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OAAOD,QAAS,CAAAC,EAAA,KAAO,KAAS,IAAAJ,QAAA,KAAanB,oBAAoBoB,OAAY,KAAArB,eAAA,CAAA;AAC/E,CAAG,GAAA;AAEH,IAAM+B,SAAU,YAAM;EACpB,IAAIR,QAAS,CAAAC,EAAA,KAAO,KAAS,IAAAG,SAAA,EAAkB,OAAA,KAAA,CAAA;AAG3C,EAAA,IAAAP,QAAA,GAAWC,OAAW,IAAAA,OAAA,GAAUnB,SAAW,EAAA;AACtC,IAAA,OAAA,KAAA,CAAA;AACT,GAAA;AAGI,EAAA,IAAAmB,OAAA,GAAUD,QAAY,IAAAA,QAAA,GAAWlB,SAAW,EAAA;AACvC,IAAA,OAAA,KAAA,CAAA;AACT,GAAA;AAEO,EAAA,OAAA,IAAA,CAAA;AACT,CAAG,EAAA,CAAA;IAEU8B,eAAkB,GAAA,SAAlBA,eAAkBA,CAACC,WAAsB,EAA+B;AAAA,EAAA,IAA/BC,SAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAqB,KAAU,CAAA;AAO/E,EAAA,IAAAZ,QAAA,CAASC,OAAO,SAAW,EAAA;AAAA,IAAA,IAAAc,qBAAA,CAAA;IAC7B,IAAI,CAACJ,SAAW,EAAA;AACP,MAAA,OAAA,CAAA,CAAA;AACT,KAAA;IAGA,OAAAI,CAAAA,qBAAA,GAAOC,UAAUC,aAAiB,cAAAF,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAA,CAAA,CAAA;AACpC,GAAA;AAEA,EAAA,IAAIhB,aAAe,EAAA;AACjB,IAAA,OAAOW,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,GAAA;AAEA,EAAA,IAAIR,aAAe,EAAA;AACjB,IAAA,OAAOQ,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,GAAA;AAEA,EAAA,IAAIN,SAAW,EAAA;AACb,IAAA,OAAOM,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,GAAA;AAEA,EAAA,IAAIL,UAAY,EAAA;AACd,IAAA,OAAOK,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,GAAA;AAEA,EAAA,IAAIJ,YAAc,EAAA;AACT,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEA,EAAA,IAAIE,MAAQ,EAAA;AACH,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEA,EAAA,IAAID,WAAa,EAAA;AACf,IAAA,OAAOG,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,GAAA;AAEA,EAAA,OAAOA,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,EAAA;IAEaQ,sBAAsB,SAAtBA,sBAA4B;EACvC,IAAId,SAAa,IAAAF,aAAA,IAAiBH,aAAiB,IAAAQ,WAAA,IAAeF,UAAY,EAAA;AACrE,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEA,EAAA,IAAIC,YAAc,EAAA;AACT,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEI,EAAA,IAAAN,QAAA,CAASC,OAAO,SAAW,EAAA;AACtB,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEO,EAAA,OAAA,CAAA,CAAA;AACT,EAAA;AAQA,IAAMkB,WAAA,sBAA+CC,GAAI,EAAA,CAAA;AAEzC,SAAAC,iBAAAA,GAA8E;AAAA,EAAA,IAA5DV,gFAAqB,KAAuC,CAAA;AAExF,EAAA,IAAAX,QAAA,CAASC,OAAO,SAAW,EAAA;IACtB,OAAA;AACLqB,MAAAA,GAAA,EAAKN,UAAUC,aAAiB,IAAA,CAAA;AAChCM,MAAAA,MAAQ,EAAA,EAAA;KACV,CAAA;AACF,GAAA;EACA,IAAID,GAAM,GAAA,CAAA,CAAA;EACV,IAAIC,MAAS,GAAA,CAAA,CAAA;AAET,EAAA,IAAAJ,WAAA,CAAYK,GAAI,CAAA,KAAK,CAAG,EAAA;IACpBF,GAAA,GAAAH,WAAA,CAAY1B,GAAI,CAAA,KAAK,CAAK,IAAA,CAAA,CAAA;AAClC,GAAO,MAAA;AACC6B,IAAAA,GAAA,GAAAb,eAAA,CAAgB,OAAOE,SAAS,CAAA,CAAA;AACxC,GAAA;AAEI,EAAA,IAAAQ,WAAA,CAAYK,GAAI,CAAA,QAAQ,CAAG,EAAA;IACpBD,MAAA,GAAAJ,WAAA,CAAY1B,GAAI,CAAA,QAAQ,CAAK,IAAA,CAAA,CAAA;AACxC,GAAO,MAAA;IACL8B,MAAA,GAASL,mBAAoB,EAAA,CAAA;AAC/B,GAAA;EAEO,OAAA;AACLI,IAAAA,GAAA,EAAAA,GAAA;AACAC,IAAAA,MAAA,EAAAA,MAAAA;GACF,CAAA;AACF,CAAA;AAEA,SAAwBE,eAAuBA,GAAA;AAEzC,EAAA,IAAAzB,QAAA,CAASC,OAAO,SAAW,EAAA;AAC7B,IAAA,OAAOe,UAAUC,aAAiB,IAAA,CAAA,CAAA;AACpC,GAAA;AACI,EAAA,IAAAK,GAAA,GAAMb,eAAgB,CAAA,KAAA,EAAO,IAAI,CAAA,CAAA;AAE9B,EAAA,OAAAa,GAAA,CAAA;AACT;;;;"}
|
package/lib/esm/index.js
CHANGED
|
@@ -114,7 +114,7 @@ export { i as EmptyType } from './_chunks/BoucDqUg.js';
|
|
|
114
114
|
export { default as Result } from './components/Result/Result.js';
|
|
115
115
|
export { i as ResultType } from './_chunks/BKS4Pa1R.js';
|
|
116
116
|
export { default as PullRefresh } from './components/PullRefresh/PullRefresh.js';
|
|
117
|
-
export { i as PullRefreshType } from './_chunks/
|
|
117
|
+
export { i as PullRefreshType } from './_chunks/gC9g4Fr_.js';
|
|
118
118
|
export { default as Icon } from './components/Icon/Icon.js';
|
|
119
119
|
export { a as IconType } from './_chunks/xi-gXLIR.js';
|
|
120
120
|
export { default as Badge } from './components/Badge/Badge.js';
|
|
@@ -230,8 +230,9 @@ import './components/Image/styles.js';
|
|
|
230
230
|
import './components/Image/hook/index.js';
|
|
231
231
|
import './components/Image/CircularProgress.js';
|
|
232
232
|
import './components/Image/utils.js';
|
|
233
|
-
import './components/Image/VisibilitySensor.js';
|
|
234
233
|
import './components/Image/apm.js';
|
|
234
|
+
import './components/Image/queryCacheBatcher.js';
|
|
235
|
+
import './components/Image/VisibilitySensor.js';
|
|
235
236
|
import './components/Popover/component.js';
|
|
236
237
|
import './components/Switch/styles.js';
|
|
237
238
|
import './components/Text/hooks/cloneContainer.js';
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { ViewStyle, TextStyle } from "react-native";
|
|
2
2
|
import { RedsDivider } from "./interface";
|
|
3
|
-
declare const getStyles: (p: RedsDivider) => {
|
|
3
|
+
declare const getStyles: (p: RedsDivider, textWidth: number, containerWidth: number, themeColor: any, typography: any) => {
|
|
4
4
|
divider: ViewStyle;
|
|
5
5
|
horizontal: ViewStyle;
|
|
6
6
|
vertical: ViewStyle;
|
|
7
7
|
primary: TextStyle;
|
|
8
8
|
secondary: TextStyle;
|
|
9
|
-
textContainer:
|
|
9
|
+
textContainer: ViewStyle;
|
|
10
10
|
text: TextStyle;
|
|
11
11
|
before: ViewStyle;
|
|
12
12
|
after: ViewStyle;
|
|
13
|
+
noTextBorderStyle: ViewStyle;
|
|
13
14
|
};
|
|
14
15
|
export { getStyles };
|
|
@@ -16,6 +16,9 @@ export interface RedsPullRefresh {
|
|
|
16
16
|
showText?: boolean;
|
|
17
17
|
initRefresh?: boolean;
|
|
18
18
|
refresh?: boolean;
|
|
19
|
+
nativeAndroidPullRefresh?: boolean;
|
|
20
|
+
androidRefreshProps?: Object;
|
|
21
|
+
androidColors?: string[];
|
|
19
22
|
}
|
|
20
23
|
export declare enum PullState {
|
|
21
24
|
INIT = 0,// 初始化
|
|
@@ -35,4 +38,6 @@ export declare const PullRefreshDefaultProps: {
|
|
|
35
38
|
showText: boolean;
|
|
36
39
|
initRefresh: boolean;
|
|
37
40
|
refresh: boolean;
|
|
41
|
+
nativeAndroidPullRefresh: boolean;
|
|
42
|
+
androidRefreshProps: {};
|
|
38
43
|
};
|
|
@@ -6,6 +6,7 @@ export declare const isIPhone16Pro: boolean;
|
|
|
6
6
|
export declare const isIPhone14Pro: boolean;
|
|
7
7
|
export declare const isIPhone12: boolean;
|
|
8
8
|
export declare const isIPhoneX: boolean;
|
|
9
|
+
export declare const isIPhone17: boolean;
|
|
9
10
|
export declare const isNewIPadPro: boolean;
|
|
10
11
|
export declare const isIPhoneAir: boolean;
|
|
11
12
|
export declare const statusBarHeight: (isLandscape: boolean, immersive?: boolean) => number;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { ViewStyle, TextStyle } from "react-native";
|
|
2
2
|
import { RedsDivider } from "./interface";
|
|
3
|
-
declare const getStyles: (p: RedsDivider) => {
|
|
3
|
+
declare const getStyles: (p: RedsDivider, textWidth: number, containerWidth: number, themeColor: any, typography: any) => {
|
|
4
4
|
divider: ViewStyle;
|
|
5
5
|
horizontal: ViewStyle;
|
|
6
6
|
vertical: ViewStyle;
|
|
7
7
|
primary: TextStyle;
|
|
8
8
|
secondary: TextStyle;
|
|
9
|
-
textContainer:
|
|
9
|
+
textContainer: ViewStyle;
|
|
10
10
|
text: TextStyle;
|
|
11
11
|
before: ViewStyle;
|
|
12
12
|
after: ViewStyle;
|
|
13
|
+
noTextBorderStyle: ViewStyle;
|
|
13
14
|
};
|
|
14
15
|
export { getStyles };
|
|
@@ -16,6 +16,9 @@ export interface RedsPullRefresh {
|
|
|
16
16
|
showText?: boolean;
|
|
17
17
|
initRefresh?: boolean;
|
|
18
18
|
refresh?: boolean;
|
|
19
|
+
nativeAndroidPullRefresh?: boolean;
|
|
20
|
+
androidRefreshProps?: Object;
|
|
21
|
+
androidColors?: string[];
|
|
19
22
|
}
|
|
20
23
|
export declare enum PullState {
|
|
21
24
|
INIT = 0,// 初始化
|
|
@@ -35,4 +38,6 @@ export declare const PullRefreshDefaultProps: {
|
|
|
35
38
|
showText: boolean;
|
|
36
39
|
initRefresh: boolean;
|
|
37
40
|
refresh: boolean;
|
|
41
|
+
nativeAndroidPullRefresh: boolean;
|
|
42
|
+
androidRefreshProps: {};
|
|
38
43
|
};
|
|
@@ -6,6 +6,7 @@ export declare const isIPhone16Pro: boolean;
|
|
|
6
6
|
export declare const isIPhone14Pro: boolean;
|
|
7
7
|
export declare const isIPhone12: boolean;
|
|
8
8
|
export declare const isIPhoneX: boolean;
|
|
9
|
+
export declare const isIPhone17: boolean;
|
|
9
10
|
export declare const isNewIPadPro: boolean;
|
|
10
11
|
export declare const isIPhoneAir: boolean;
|
|
11
12
|
export declare const statusBarHeight: (isLandscape: boolean, immersive?: boolean) => number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xhsreds/reds-rn-next",
|
|
3
|
-
"version": "0.9.1-
|
|
3
|
+
"version": "0.9.1-beta202512012032",
|
|
4
4
|
"author": "贾斌(呀哈) <jiabin@xiaohongshu.com>",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"dependencies": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"react-native-fs": "2.20.0",
|
|
27
27
|
"react-native-svg": "13.14.0",
|
|
28
28
|
"@xhs/react-native-harmony": "*",
|
|
29
|
-
"@xhsreds/reds-token-next": "0.9.1-
|
|
29
|
+
"@xhsreds/reds-token-next": "0.9.1-beta202512012032"
|
|
30
30
|
},
|
|
31
31
|
"peerDependenciesMeta": {
|
|
32
32
|
"ozone-schema-web": {
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import React, { useState, useMemo, isValidElement, useEffect, useRef } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Text,
|
|
4
|
+
View,
|
|
5
|
+
TouchableWithoutFeedback,
|
|
6
|
+
GestureResponderEvent,
|
|
7
|
+
Animated,
|
|
8
|
+
Image,
|
|
9
|
+
Dimensions,
|
|
10
|
+
Platform,
|
|
11
|
+
} from "react-native";
|
|
3
12
|
import { RedsActionablePopover, ActionablePopoverData } from "./interface/index";
|
|
4
13
|
import { ModalWrapper } from "./component";
|
|
5
14
|
import useMounted from "../../pvCount/useUnmountedProcess";
|
|
@@ -1,28 +1,48 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { useState, useMemo } from "react";
|
|
2
2
|
import { View, Text } from "react-native";
|
|
3
3
|
import { RedsDivider, DividerDefaultProps } from "./interface";
|
|
4
4
|
import { getStyles } from "./styles";
|
|
5
5
|
import useMounted from "../../pvCount/useUnmountedProcess";
|
|
6
|
+
import { useThemeColor, useThemeTypography } from "../ConfigProvider";
|
|
6
7
|
|
|
7
8
|
const Divider = (props: RedsDivider) => {
|
|
9
|
+
const [textWidth, setTextWidth] = useState(0);
|
|
10
|
+
const [containerWidth, setContainerWidth] = useState(0);
|
|
11
|
+
const themeColor = useThemeColor("Divider");
|
|
12
|
+
const typography = useThemeTypography("Divider");
|
|
8
13
|
useMounted("Divider");
|
|
9
14
|
const finalProps: RedsDivider = {
|
|
10
15
|
...DividerDefaultProps,
|
|
11
16
|
...props,
|
|
12
|
-
direction: props.direction as RedsDivider["direction"],
|
|
13
|
-
orientation: props.orientation as RedsDivider["orientation"],
|
|
17
|
+
direction: (props.direction || DividerDefaultProps.direction) as RedsDivider["direction"],
|
|
18
|
+
orientation: (props.orientation || DividerDefaultProps.orientation) as RedsDivider["orientation"],
|
|
14
19
|
};
|
|
15
20
|
|
|
16
|
-
const styles =
|
|
17
|
-
|
|
21
|
+
const styles = useMemo(() => {
|
|
22
|
+
return getStyles(finalProps, textWidth, containerWidth, themeColor, typography);
|
|
23
|
+
}, [textWidth, containerWidth, themeColor, typography]);
|
|
24
|
+
|
|
25
|
+
const handleLayout = (e: any) => {
|
|
26
|
+
setTextWidth(e.nativeEvent.layout.width);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const handlerContainerWidth = (e: any) => {
|
|
30
|
+
setContainerWidth(e.nativeEvent.layout.width);
|
|
31
|
+
};
|
|
18
32
|
|
|
19
33
|
return (
|
|
20
|
-
<View style={[styles.divider, styles[finalProps.direction!]]}>
|
|
34
|
+
<View style={[styles.divider, styles[finalProps.direction!]]} onLayout={handlerContainerWidth}>
|
|
21
35
|
{finalProps.orientation && finalProps.direction !== "vertical" && (
|
|
22
36
|
<View style={styles.textContainer}>
|
|
23
|
-
|
|
24
|
-
{props.children
|
|
25
|
-
|
|
37
|
+
<View style={styles.before} />
|
|
38
|
+
{props.children ? (
|
|
39
|
+
<Text style={styles.text} onLayout={handleLayout}>
|
|
40
|
+
{props.children}
|
|
41
|
+
</Text>
|
|
42
|
+
) : (
|
|
43
|
+
<Text style={styles.noTextBorderStyle}></Text>
|
|
44
|
+
)}
|
|
45
|
+
<View style={styles.after} />
|
|
26
46
|
</View>
|
|
27
47
|
)}
|
|
28
48
|
</View>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
|
-
import { View, Text, StyleSheet } from "react-native";
|
|
2
|
+
import { View, Text, StyleSheet, ScrollView } from "react-native";
|
|
3
3
|
import { Divider } from "@xhs/reds-rn-next";
|
|
4
4
|
|
|
5
5
|
const styles = StyleSheet.create({
|
|
@@ -21,23 +21,29 @@ const Br = (props: { height?: number }) => <View style={{ height: props.height |
|
|
|
21
21
|
|
|
22
22
|
export default function App() {
|
|
23
23
|
return (
|
|
24
|
-
<
|
|
24
|
+
<ScrollView>
|
|
25
|
+
<Br />
|
|
26
|
+
<Br />
|
|
25
27
|
<Desc>默认用法</Desc>
|
|
26
28
|
<Divider>测试</Divider>
|
|
27
29
|
<Br />
|
|
28
|
-
<Desc>direction
|
|
30
|
+
<Desc>direction="primary"</Desc>
|
|
29
31
|
<Divider direction="primary" orientation={"center"}>
|
|
30
32
|
测试
|
|
31
33
|
</Divider>
|
|
32
34
|
<Br />
|
|
33
|
-
<
|
|
35
|
+
<Desc>direction="secondary"</Desc>
|
|
36
|
+
<Divider direction="secondary" orientation={"center"}>
|
|
37
|
+
测试
|
|
38
|
+
</Divider>
|
|
34
39
|
<Br />
|
|
35
40
|
|
|
41
|
+
<Desc>direction="vertical"</Desc>
|
|
36
42
|
<View style={styles.itemBox}>
|
|
37
43
|
<Divider direction="vertical">测试</Divider>
|
|
38
44
|
</View>
|
|
45
|
+
<Desc>direction="horizontal"</Desc>
|
|
39
46
|
<Divider direction="horizontal">测试</Divider>
|
|
40
|
-
<Divider direction="horizontal"></Divider>
|
|
41
47
|
<Br />
|
|
42
48
|
<Br />
|
|
43
49
|
|
|
@@ -67,6 +73,6 @@ export default function App() {
|
|
|
67
73
|
<Desc>margin 数组:horizontal / [上下,左右] vertical / [左右]</Desc>
|
|
68
74
|
<Divider margin={[10, 20]} stroke={2} direction="horizontal" />
|
|
69
75
|
<Divider margin={[10, 0]} stroke={2} direction="vertical" />
|
|
70
|
-
</
|
|
76
|
+
</ScrollView>
|
|
71
77
|
);
|
|
72
78
|
}
|
|
@@ -1,38 +1,30 @@
|
|
|
1
1
|
import { StyleSheet, ViewStyle, TextStyle, DimensionValue } from "react-native";
|
|
2
2
|
import { RedsDivider, DividerDefaultProps } from "./interface";
|
|
3
|
-
import { useThemeColor, useThemeTypography } from "../ConfigProvider";
|
|
4
3
|
|
|
5
4
|
const baseDivider: ViewStyle = {
|
|
6
5
|
position: "relative",
|
|
7
6
|
};
|
|
8
7
|
|
|
9
|
-
const
|
|
10
|
-
paddingVertical: 0,
|
|
11
|
-
paddingHorizontal: 16,
|
|
12
|
-
position: "absolute",
|
|
13
|
-
backgroundColor: "#fff",
|
|
14
|
-
lineHeight: 18,
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const getStyles = (p: RedsDivider) => {
|
|
8
|
+
const getStyles = (p: RedsDivider, textWidth: number, containerWidth: number, themeColor: any, typography: any) => {
|
|
18
9
|
const props = { ...DividerDefaultProps, ...p };
|
|
19
|
-
const themeColor = useThemeColor("Divider");
|
|
20
|
-
const typography = useThemeTypography("Divider");
|
|
21
10
|
const isHorizontal = props.direction === "horizontal";
|
|
11
|
+
const hasTextContent = p.children;
|
|
12
|
+
|
|
13
|
+
const remainingWidth = containerWidth - textWidth;
|
|
14
|
+
|
|
22
15
|
const beforeAfterCommon: ViewStyle = {
|
|
23
16
|
borderStyle: "solid",
|
|
24
|
-
borderTopWidth: 0.5,
|
|
17
|
+
borderTopWidth: props.stroke || 0.5,
|
|
25
18
|
borderColor: props.color || themeColor.Separator2,
|
|
26
|
-
width: 8,
|
|
27
19
|
};
|
|
28
20
|
|
|
29
21
|
const dividerStyle: ViewStyle = {
|
|
30
22
|
...baseDivider,
|
|
31
|
-
borderBottomWidth: isHorizontal ? (props.stroke ? props.stroke : StyleSheet.hairlineWidth) : 0,
|
|
32
|
-
borderLeftWidth: isHorizontal ? 0 : props.stroke ? props.stroke : StyleSheet.hairlineWidth,
|
|
33
|
-
borderBottomColor: isHorizontal ? props.color || themeColor.Separator2 : undefined,
|
|
34
|
-
borderLeftColor: isHorizontal ? undefined : props.color || themeColor.Separator2,
|
|
35
|
-
borderStyle: "solid",
|
|
23
|
+
// borderBottomWidth: isHorizontal && hasTextContent ? 0 : (isHorizontal ? (props.stroke ? props.stroke : StyleSheet.hairlineWidth) : 0),
|
|
24
|
+
// borderLeftWidth: isHorizontal ? 0 : props.stroke ? props.stroke : StyleSheet.hairlineWidth,
|
|
25
|
+
// borderBottomColor: isHorizontal && !hasTextContent ? props.color || themeColor.Separator2 : undefined,
|
|
26
|
+
// borderLeftColor: isHorizontal ? undefined : props.color || themeColor.Separator2,
|
|
27
|
+
// borderStyle: "solid",
|
|
36
28
|
marginVertical: (props.margin && props.margin[0] && Number(props.margin[0])) || (isHorizontal ? 20 : 0),
|
|
37
29
|
marginHorizontal: (props.margin && props.margin[1] && Number(props.margin[1])) || (isHorizontal ? 0 : 12),
|
|
38
30
|
marginLeft:
|
|
@@ -47,17 +39,11 @@ const getStyles = (p: RedsDivider) => {
|
|
|
47
39
|
width: (isHorizontal ? props.size : "auto") as DimensionValue,
|
|
48
40
|
};
|
|
49
41
|
|
|
50
|
-
const textContainer:
|
|
51
|
-
paddingVertical: 0,
|
|
52
|
-
paddingHorizontal: 16,
|
|
53
|
-
position: "absolute",
|
|
54
|
-
lineHeight: 18,
|
|
55
|
-
left: props.orientation === "left" ? 24 : undefined,
|
|
56
|
-
right: props.orientation === "right" ? 24 : undefined,
|
|
57
|
-
alignSelf: props.orientation === "center" ? "center" : undefined,
|
|
42
|
+
const textContainer: ViewStyle = {
|
|
58
43
|
flexDirection: "row",
|
|
59
44
|
alignItems: "center",
|
|
60
|
-
|
|
45
|
+
width: "100%",
|
|
46
|
+
// 移除 position absolute,改为正常布局
|
|
61
47
|
};
|
|
62
48
|
|
|
63
49
|
const textStyle: TextStyle = {
|
|
@@ -78,13 +64,29 @@ const getStyles = (p: RedsDivider) => {
|
|
|
78
64
|
|
|
79
65
|
const beforeStyle: ViewStyle = {
|
|
80
66
|
...beforeAfterCommon,
|
|
81
|
-
marginRight: 8,
|
|
67
|
+
marginRight: props.children ? 8 : 0,
|
|
68
|
+
...(isHorizontal
|
|
69
|
+
? props.orientation === "center"
|
|
70
|
+
? { flex: 1 }
|
|
71
|
+
: { width: props.orientation === "left" ? remainingWidth * 0.15 : remainingWidth * 0.85 }
|
|
72
|
+
: { width: 8 }),
|
|
82
73
|
borderColor: props.direction === "secondary" ? "rgba(51, 51, 51, .3)" : props.color || themeColor.Separator2,
|
|
83
74
|
};
|
|
84
75
|
|
|
85
76
|
const afterStyle: ViewStyle = {
|
|
86
77
|
...beforeAfterCommon,
|
|
87
|
-
marginLeft: 8,
|
|
78
|
+
marginLeft: props.children ? 8 : 0,
|
|
79
|
+
...(isHorizontal
|
|
80
|
+
? props.orientation === "center"
|
|
81
|
+
? { flex: 1 }
|
|
82
|
+
: { width: props.orientation === "right" ? remainingWidth * 0.15 : remainingWidth * 0.85 }
|
|
83
|
+
: { width: 8 }),
|
|
84
|
+
borderColor: props.direction === "secondary" ? "rgba(51, 51, 51, .3)" : props.color || themeColor.Separator2,
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const noTextBorderStyle: ViewStyle = {
|
|
88
|
+
...beforeAfterCommon,
|
|
89
|
+
width: "auto",
|
|
88
90
|
borderColor: props.direction === "secondary" ? "rgba(51, 51, 51, .3)" : props.color || themeColor.Separator2,
|
|
89
91
|
};
|
|
90
92
|
|
|
@@ -104,6 +106,7 @@ const getStyles = (p: RedsDivider) => {
|
|
|
104
106
|
text: textStyle,
|
|
105
107
|
before: beforeStyle,
|
|
106
108
|
after: afterStyle,
|
|
109
|
+
noTextBorderStyle: noTextBorderStyle,
|
|
107
110
|
});
|
|
108
111
|
};
|
|
109
112
|
|