@xhsreds/reds-rn-next 0.8.1-beta202509121727 → 0.8.1-iphone-air202509121823
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-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-15.json +1 -1
- package/coverage/.tmp/coverage-16.json +1 -1
- package/coverage/.tmp/coverage-18.json +1 -1
- package/coverage/.tmp/coverage-20.json +1 -1
- package/coverage/.tmp/coverage-22.json +1 -1
- package/coverage/.tmp/coverage-23.json +1 -1
- package/coverage/.tmp/coverage-24.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-31.json +1 -1
- package/coverage/.tmp/coverage-33.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-5.json +1 -1
- package/coverage/.tmp/coverage-7.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/coverage/.tmp/coverage-9.json +1 -1
- package/lib/cjs/components/PickerView/Wheel.js +1 -1
- package/lib/cjs/components/PickerView/Wheel.js.map +1 -1
- package/lib/cjs/components/StatusBar/hook/getStatusHeight.js +10 -0
- package/lib/cjs/components/StatusBar/hook/getStatusHeight.js.map +1 -1
- package/lib/esm/components/PickerView/Wheel.js +1 -1
- package/lib/esm/components/PickerView/Wheel.js.map +1 -1
- package/lib/esm/components/StatusBar/hook/getStatusHeight.js +10 -1
- package/lib/esm/components/StatusBar/hook/getStatusHeight.js.map +1 -1
- package/lib/src/components/StatusBar/hook/getStatusHeight.d.ts +1 -0
- package/lib/types/components/StatusBar/hook/getStatusHeight.d.ts +1 -0
- package/package.json +2 -2
- package/src/components/PickerView/Wheel.tsx +1 -1
- package/src/components/StatusBar/hook/getStatusHeight.ts +12 -0
- package/src/i18n/@types/resources.d.ts +18 -18
- package/src/i18n/index.json +31 -31
|
@@ -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;\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\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 return isLandscape ? 0 : 20;\n};\n\nexport const safeAreaBottomInset = () => {\n if (isIPhoneX || isIPhone14Pro || isIPhone16Pro) {\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","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","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\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) {\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":";;;;;;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;IAEZC,wBAAwB,SAAxBA,wBAA8B;AACzC,EAAA,IAAAC,eAAA,GAA0BC,sBAAA,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,sBAAA,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,oBAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAClC,EAAA,OACED,oBAAS,CAAAC,EAAA,KAAO,KACd,KAAAJ,QAAA,KAAajB,qBAAyB,IAAAkB,OAAA,KAAYnB,oBACjD,IAAAkB,QAAA,KAAanB,kBAAsB,IAAAoB,OAAA,KAAYrB,iBAC/C,IAAAoB,QAAA,KAAahB,6BAA6BiB,OAAY,KAAAhB,wBAAA,CAAA,CAAA;AAE7D,CAAG,GAAA;AAEI,IAAMoB,gBAAiB,YAAM;AAC9B,EAAA,IAAAF,oBAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGD,oBAAS,CAAAC,EAAA,KAAO,KAAS,IAAAJ,QAAA,KAAavB,sBAAsBwB,OAAY,KAAAzB,iBAAA;AAAA;AACxEwB,EAAAA,QAAA,KAAarB,yBAAyBsB,OAAY,KAAAvB,oBAAA,CAAA;AAEvD,CAAG,GAAA;AAEI,IAAM4B,aAAc,YAAM;AAC3B,EAAA,IAAAH,oBAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGD,oBAAS,CAAAC,EAAA,KAAO,KAAS,IAAAJ,QAAA,KAAa3B,mBAAmB4B,OAAY,KAAA7B,cAAA;AAAA;AACrE4B,EAAAA,QAAA,KAAazB,sBAAsB0B,OAAY,KAAA3B,iBAAA,CAAA;AAEpD,CAAG,GAAA;AAEI,IAAMiC,YAAa,YAAM;AAC1B,EAAA,IAAAJ,oBAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGD,qBAASC,EAAO,KAAA,KAAA,KACbJ,aAAa/B,QAAY,IAAAgC,OAAA,KAAYjC,WAAagC,QAAa,KAAAhC,OAAA,IAAWiC,OAAY,KAAAhC,QAAA,CAAA,IACzF+B,aAAa7B,YAAgB,IAAA8B,OAAA,KAAY/B,eACzC8B,QAAa,KAAA9B,WAAA,IAAe+B,YAAY9B,YACzC,IAAAmC,UAAA,CAAA;AAEJ,CAAG,GAAA;AAEI,IAAME,eAAgB,YAAM;AAC7B,EAAA,IAAAL,oBAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGJ,QAAa,KAAAV,gBAAA,IAAoBW,OAAY,KAAAZ,eAAA,IAC7CW,aAAaV,gBAAoB,IAAAW,OAAA,KAAYZ,eAC7C,IAAAW,QAAA,KAAaT,iBAAqB,IAAAU,OAAA,KAAYT,gBAC9C,IAAAQ,QAAA,KAAaT,qBAAqBU,OAAY,KAAAT,gBAAA,CAAA;AAEnD,CAAG,GAAA;AAEI,IAAMiB,cAAe,YAAM;AAC5B,EAAA,IAAAN,oBAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OAAOD,oBAAS,CAAAC,EAAA,KAAO,KAAS,IAAAJ,QAAA,KAAab,oBAAoBc,OAAY,KAAAf,eAAA,CAAA;AAC/E,CAAG,GAAA;AAEH,IAAMwB,SAAU,YAAM;EACpB,IAAIP,oBAAS,CAAAC,EAAA,KAAO,KAAS,IAAAG,SAAA,EAAkB,OAAA,KAAA,CAAA;AAG3C,EAAA,IAAAP,QAAA,GAAWC,OAAW,IAAAA,OAAA,GAAUb,SAAW,EAAA;AACtC,IAAA,OAAA,KAAA,CAAA;AACT,GAAA;AAGI,EAAA,IAAAa,OAAA,GAAUD,QAAY,IAAAA,QAAA,GAAWZ,SAAW,EAAA;AACvC,IAAA,OAAA,KAAA,CAAA;AACT,GAAA;AAEO,EAAA,OAAA,IAAA,CAAA;AACT,CAAG,EAAA,CAAA;IAEUuB,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,IAAAX,oBAAA,CAASC,OAAO,SAAW,EAAA;AAAA,IAAA,IAAAa,qBAAA,CAAA;IAC7B,IAAI,CAACJ,SAAW,EAAA;AACP,MAAA,OAAA,CAAA,CAAA;AACT,KAAA;IAGA,OAAAI,CAAAA,qBAAA,GAAOC,sBAAUC,aAAiB,cAAAF,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAA,CAAA,CAAA;AACpC,GAAA;AAEA,EAAA,IAAIf,aAAe,EAAA;AACjB,IAAA,OAAOU,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,GAAA;AAEA,EAAA,IAAIP,aAAe,EAAA;AACjB,IAAA,OAAOO,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,GAAA;AAEA,EAAA,IAAIL,SAAW,EAAA;AACb,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;AACnC,EAAA,IAAAb,SAAA,IAAaF,iBAAiBH,aAAe,EAAA;AACxC,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEA,EAAA,IAAIM,YAAc,EAAA;AACT,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEI,EAAA,IAAAL,oBAAA,CAASC,OAAO,SAAW,EAAA;AACtB,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEO,EAAA,OAAA,CAAA,CAAA;AACT,EAAA;AAQA,IAAMiB,WAAA,sBAA+CC,GAAI,EAAA,CAAA;AAEzC,SAAAC,iBAAAA,GAA8E;AAAA,EAAA,IAA5DV,gFAAqB,KAAuC,CAAA;AAExF,EAAA,IAAAV,oBAAA,CAASC,OAAO,SAAW,EAAA;IACtB,OAAA;AACLoB,MAAAA,GAAA,EAAKN,sBAAUC,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,CAAYzB,GAAI,CAAA,KAAK,CAAK,IAAA,CAAA,CAAA;AAClC,GAAO,MAAA;AACC4B,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,CAAYzB,GAAI,CAAA,QAAQ,CAAK,IAAA,CAAA,CAAA;AACxC,GAAO,MAAA;IACL6B,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,IAAAxB,oBAAA,CAASC,OAAO,SAAW,EAAA;AAC7B,IAAA,OAAOc,sBAAUC,aAAiB,IAAA,CAAA,CAAA;AACpC,GAAA;AACI,EAAA,IAAAK,GAAA,GAAMb,eAAgB,CAAA,KAAA,EAAO,IAAI,CAAA,CAAA;AAE9B,EAAA,OAAAa,GAAA,CAAA;AACT;;;;;;;;;;;;;;"}
|
|
@@ -28,7 +28,7 @@ var Wheel = function Wheel(props) {
|
|
|
28
28
|
}, [column, value]);
|
|
29
29
|
useEffect(function () {
|
|
30
30
|
var _column$index;
|
|
31
|
-
var newVal =
|
|
31
|
+
var newVal = (_column$index = column[index]) === null || _column$index === void 0 ? void 0 : _column$index.value;
|
|
32
32
|
scrollTo(index * itemHeight);
|
|
33
33
|
if (newVal) {
|
|
34
34
|
onSelect(newVal, props.index);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wheel.js","sources":["../../../../src/components/PickerView/Wheel.tsx"],"sourcesContent":["import React, { useRef, useState, useEffect } from \"react\";\nimport { NativeScrollEvent, NativeSyntheticEvent, ScrollView, View, Text, TouchableNativeFeedback } from \"react-native\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { typography } from \"@xhsreds/reds-token-next\";\nimport { RedsWheel, Column } from \"./interface/index\";\nimport styles from \"./styles\";\n\nconst itemHeight = 40;\n\nconst Wheel = (props: RedsWheel) => {\n const { value, column = [], onSelect = () => {}, accessibility = {} } = props;\n\n /**\n * 滚动ref\n */\n const scrollerRef = useRef();\n\n /**\n * themeColor\n */\n const themeColor = useThemeColor();\n\n /**\n * index\n */\n const [index, setIndex] = useState<any>();\n\n /**\n * 初始化滚动高度\n */\n useEffect(() => {\n value && setIndex(getSelectIndex(column, value));\n }, [column, value]);\n\n useEffect(() => {\n const newVal = column
|
|
1
|
+
{"version":3,"file":"Wheel.js","sources":["../../../../src/components/PickerView/Wheel.tsx"],"sourcesContent":["import React, { useRef, useState, useEffect } from \"react\";\nimport { NativeScrollEvent, NativeSyntheticEvent, ScrollView, View, Text, TouchableNativeFeedback } from \"react-native\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { typography } from \"@xhsreds/reds-token-next\";\nimport { RedsWheel, Column } from \"./interface/index\";\nimport styles from \"./styles\";\n\nconst itemHeight = 40;\n\nconst Wheel = (props: RedsWheel) => {\n const { value, column = [], onSelect = () => {}, accessibility = {} } = props;\n\n /**\n * 滚动ref\n */\n const scrollerRef = useRef();\n\n /**\n * themeColor\n */\n const themeColor = useThemeColor();\n\n /**\n * index\n */\n const [index, setIndex] = useState<any>();\n\n /**\n * 初始化滚动高度\n */\n useEffect(() => {\n value && setIndex(getSelectIndex(column, value));\n }, [column, value]);\n\n useEffect(() => {\n const newVal = column[index]?.value;\n scrollTo(index * itemHeight);\n if (newVal) {\n onSelect(newVal, props.index);\n }\n }, [index, props.index]);\n\n /**\n * 滚动ScrollView\n * @param y 滚动距离\n */\n const scrollTo = (y: any) => {\n setTimeout(() => {\n // @ts-ignore\n scrollerRef?.current?.scrollTo?.({\n y,\n animated: true,\n });\n });\n };\n\n /**\n * 计算当前滚动高度\n * @param column 数组\n * @param value 选中值\n * @returns\n */\n const getSelectIndex = (column: Column[], value?: string) => {\n return value\n ? Math.max(\n column.findIndex((item) => {\n if (isNaN(parseInt(item.value)) || isNaN(parseInt(value))) {\n return value && item.value === value;\n } else {\n return value && parseInt(item.value) === parseInt(value);\n }\n }),\n 0,\n )\n : 0;\n };\n\n /**\n * 结束滚动\n * @param e\n */\n const onMomentumScrollEnd = (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n e.persist?.();\n let contentOffset = e.nativeEvent.contentOffset;\n const selectIndex = Math.round(contentOffset.y / itemHeight);\n setIndex(selectIndex);\n };\n\n const handleClick = (index: number) => {\n setIndex(index);\n };\n\n /**\n * 渲染item\n * @returns ReactNode\n */\n const renderItems = () => {\n return column.map((item, index) => (\n <TouchableNativeFeedback onPress={() => handleClick(index)} key={item.value}>\n <View\n style={[styles.wheel, { height: itemHeight, backgroundColor: themeColor.Bg2 }]}\n key={item.value}\n {...item.accessibility}\n >\n <Text {...item.accessibility} style={{ color: themeColor.Title, fontSize: typography.B1FontSize }}>\n {item.label}\n </Text>\n </View>\n </TouchableNativeFeedback>\n ));\n };\n\n return (\n <ScrollView\n style={{ flex: 1 }}\n nestedScrollEnabled\n horizontal={false}\n ref={(el: any) => (scrollerRef.current = el)}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n pagingEnabled={false}\n automaticallyAdjustContentInsets={false}\n directionalLockEnabled={true}\n decelerationRate=\"fast\"\n snapToInterval={itemHeight}\n onMomentumScrollEnd={onMomentumScrollEnd}\n testID={`wheel${props.index}`}\n {...accessibility}\n >\n <View style={{ height: 2 * itemHeight, backgroundColor: themeColor.Bg2 }} />\n {renderItems()}\n <View style={{ height: 2 * itemHeight, backgroundColor: themeColor.Bg2 }} />\n </ScrollView>\n );\n};\n\nexport default Wheel;\n"],"names":["itemHeight","Wheel","props","value","_props$column","column","_props$onSelect","onSelect","_props$accessibility","accessibility","scrollerRef","useRef","themeColor","useThemeColor","_useState","useState","_useState2","_slicedToArray","index","setIndex","useEffect","getSelectIndex","_column$index","newVal","scrollTo","y","setTimeout","_scrollerRef$current","_scrollerRef$current$","current","call","animated","Math","max","findIndex","item","isNaN","parseInt","onMomentumScrollEnd","e","_e$persist","persist","contentOffset","nativeEvent","selectIndex","round","handleClick","renderItems","map","React","createElement","TouchableNativeFeedback","onPress","key","View","_objectSpread","style","styles","wheel","height","backgroundColor","Bg2","Text","color","Title","fontSize","typography","B1FontSize","label","ScrollView","flex","nestedScrollEnabled","horizontal","ref","el","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","pagingEnabled","automaticallyAdjustContentInsets","directionalLockEnabled","decelerationRate","snapToInterval","testID","concat"],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ var IPHONE16PROMAX_WIDTH = 430;
|
|
|
18
18
|
var IPHONE16PROMAX_HEIGHT = 932;
|
|
19
19
|
var IPHONE16PROMAX_HEIGHT_876 = 956;
|
|
20
20
|
var IPHONE16PROMAX_WIDTH_876 = 440;
|
|
21
|
+
var IPHONEAIR_WIDTH = 420;
|
|
22
|
+
var IPHONEAIR_HEIGHT = 912;
|
|
21
23
|
var PAD_WIDTH = 768;
|
|
22
24
|
var IPADPRO11_WIDTH = 834;
|
|
23
25
|
var IPADPRO11_HEIGHT = 1194;
|
|
@@ -60,6 +62,10 @@ var isNewIPadPro = function () {
|
|
|
60
62
|
if (Platform.OS !== "ios") return false;
|
|
61
63
|
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;
|
|
62
64
|
}();
|
|
65
|
+
var isIPhoneAir = function () {
|
|
66
|
+
if (Platform.OS === "web") return false;
|
|
67
|
+
return Platform.OS === "ios" && D_HEIGHT === IPHONEAIR_HEIGHT && D_WIDTH === IPHONEAIR_WIDTH;
|
|
68
|
+
}();
|
|
63
69
|
var isIPad = function () {
|
|
64
70
|
if (Platform.OS !== "ios" || isIPhoneX) return false;
|
|
65
71
|
if (D_HEIGHT > D_WIDTH && D_WIDTH < PAD_WIDTH) {
|
|
@@ -94,6 +100,9 @@ var statusBarHeight = function statusBarHeight(isLandscape) {
|
|
|
94
100
|
if (isIPad) {
|
|
95
101
|
return 20;
|
|
96
102
|
}
|
|
103
|
+
if (isIPhoneAir) {
|
|
104
|
+
return isLandscape ? 0 : 68;
|
|
105
|
+
}
|
|
97
106
|
return isLandscape ? 0 : 20;
|
|
98
107
|
};
|
|
99
108
|
var safeAreaBottomInset = function safeAreaBottomInset() {
|
|
@@ -142,5 +151,5 @@ function getStatusHeight() {
|
|
|
142
151
|
return top;
|
|
143
152
|
}
|
|
144
153
|
|
|
145
|
-
export { getStatusHeight as default, getResolvedDimensions, getSafeAreaInsets, isIPhone12, isIPhone14Pro, isIPhone16Pro, isIPhoneX, isNewIPadPro, safeAreaBottomInset, statusBarHeight };
|
|
154
|
+
export { getStatusHeight as default, getResolvedDimensions, getSafeAreaInsets, isIPhone12, isIPhone14Pro, isIPhone16Pro, isIPhoneAir, isIPhoneX, isNewIPadPro, safeAreaBottomInset, statusBarHeight };
|
|
146
155
|
//# 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;\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\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 return isLandscape ? 0 : 20;\n};\n\nexport const safeAreaBottomInset = () => {\n if (isIPhoneX || isIPhone14Pro || isIPhone16Pro) {\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","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","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\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) {\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":";;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;IAEZC,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,KAAajB,qBAAyB,IAAAkB,OAAA,KAAYnB,oBACjD,IAAAkB,QAAA,KAAanB,kBAAsB,IAAAoB,OAAA,KAAYrB,iBAC/C,IAAAoB,QAAA,KAAahB,6BAA6BiB,OAAY,KAAAhB,wBAAA,CAAA,CAAA;AAE7D,CAAG,GAAA;AAEI,IAAMoB,gBAAiB,YAAM;AAC9B,EAAA,IAAAF,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGD,QAAS,CAAAC,EAAA,KAAO,KAAS,IAAAJ,QAAA,KAAavB,sBAAsBwB,OAAY,KAAAzB,iBAAA;AAAA;AACxEwB,EAAAA,QAAA,KAAarB,yBAAyBsB,OAAY,KAAAvB,oBAAA,CAAA;AAEvD,CAAG,GAAA;AAEI,IAAM4B,aAAc,YAAM;AAC3B,EAAA,IAAAH,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGD,QAAS,CAAAC,EAAA,KAAO,KAAS,IAAAJ,QAAA,KAAa3B,mBAAmB4B,OAAY,KAAA7B,cAAA;AAAA;AACrE4B,EAAAA,QAAA,KAAazB,sBAAsB0B,OAAY,KAAA3B,iBAAA,CAAA;AAEpD,CAAG,GAAA;AAEI,IAAMiC,YAAa,YAAM;AAC1B,EAAA,IAAAJ,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGD,SAASC,EAAO,KAAA,KAAA,KACbJ,aAAa/B,QAAY,IAAAgC,OAAA,KAAYjC,WAAagC,QAAa,KAAAhC,OAAA,IAAWiC,OAAY,KAAAhC,QAAA,CAAA,IACzF+B,aAAa7B,YAAgB,IAAA8B,OAAA,KAAY/B,eACzC8B,QAAa,KAAA9B,WAAA,IAAe+B,YAAY9B,YACzC,IAAAmC,UAAA,CAAA;AAEJ,CAAG,GAAA;AAEI,IAAME,eAAgB,YAAM;AAC7B,EAAA,IAAAL,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OACGJ,QAAa,KAAAV,gBAAA,IAAoBW,OAAY,KAAAZ,eAAA,IAC7CW,aAAaV,gBAAoB,IAAAW,OAAA,KAAYZ,eAC7C,IAAAW,QAAA,KAAaT,iBAAqB,IAAAU,OAAA,KAAYT,gBAC9C,IAAAQ,QAAA,KAAaT,qBAAqBU,OAAY,KAAAT,gBAAA,CAAA;AAEnD,CAAG,GAAA;AAEI,IAAMiB,cAAe,YAAM;AAC5B,EAAA,IAAAN,QAAA,CAASC,EAAO,KAAA,KAAA,EAAc,OAAA,KAAA,CAAA;AAElC,EAAA,OAAOD,QAAS,CAAAC,EAAA,KAAO,KAAS,IAAAJ,QAAA,KAAab,oBAAoBc,OAAY,KAAAf,eAAA,CAAA;AAC/E,CAAG,GAAA;AAEH,IAAMwB,SAAU,YAAM;EACpB,IAAIP,QAAS,CAAAC,EAAA,KAAO,KAAS,IAAAG,SAAA,EAAkB,OAAA,KAAA,CAAA;AAG3C,EAAA,IAAAP,QAAA,GAAWC,OAAW,IAAAA,OAAA,GAAUb,SAAW,EAAA;AACtC,IAAA,OAAA,KAAA,CAAA;AACT,GAAA;AAGI,EAAA,IAAAa,OAAA,GAAUD,QAAY,IAAAA,QAAA,GAAWZ,SAAW,EAAA;AACvC,IAAA,OAAA,KAAA,CAAA;AACT,GAAA;AAEO,EAAA,OAAA,IAAA,CAAA;AACT,CAAG,EAAA,CAAA;IAEUuB,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,IAAAX,QAAA,CAASC,OAAO,SAAW,EAAA;AAAA,IAAA,IAAAa,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,IAAIf,aAAe,EAAA;AACjB,IAAA,OAAOU,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,GAAA;AAEA,EAAA,IAAIP,aAAe,EAAA;AACjB,IAAA,OAAOO,cAAc,CAAI,GAAA,EAAA,CAAA;AAC3B,GAAA;AAEA,EAAA,IAAIL,SAAW,EAAA;AACb,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;AACnC,EAAA,IAAAb,SAAA,IAAaF,iBAAiBH,aAAe,EAAA;AACxC,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEA,EAAA,IAAIM,YAAc,EAAA;AACT,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEI,EAAA,IAAAL,QAAA,CAASC,OAAO,SAAW,EAAA;AACtB,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAEO,EAAA,OAAA,CAAA,CAAA;AACT,EAAA;AAQA,IAAMiB,WAAA,sBAA+CC,GAAI,EAAA,CAAA;AAEzC,SAAAC,iBAAAA,GAA8E;AAAA,EAAA,IAA5DV,gFAAqB,KAAuC,CAAA;AAExF,EAAA,IAAAV,QAAA,CAASC,OAAO,SAAW,EAAA;IACtB,OAAA;AACLoB,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,CAAYzB,GAAI,CAAA,KAAK,CAAK,IAAA,CAAA,CAAA;AAClC,GAAO,MAAA;AACC4B,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,CAAYzB,GAAI,CAAA,QAAQ,CAAK,IAAA,CAAA,CAAA;AACxC,GAAO,MAAA;IACL6B,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,IAAAxB,QAAA,CAASC,OAAO,SAAW,EAAA;AAC7B,IAAA,OAAOc,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;;;;"}
|
|
@@ -7,6 +7,7 @@ export declare const isIPhone14Pro: boolean;
|
|
|
7
7
|
export declare const isIPhone12: boolean;
|
|
8
8
|
export declare const isIPhoneX: boolean;
|
|
9
9
|
export declare const isNewIPadPro: boolean;
|
|
10
|
+
export declare const isIPhoneAir: boolean;
|
|
10
11
|
export declare const statusBarHeight: (isLandscape: boolean, immersive?: boolean) => number;
|
|
11
12
|
export declare const safeAreaBottomInset: () => 0 | 20 | 34;
|
|
12
13
|
/**
|
|
@@ -7,6 +7,7 @@ export declare const isIPhone14Pro: boolean;
|
|
|
7
7
|
export declare const isIPhone12: boolean;
|
|
8
8
|
export declare const isIPhoneX: boolean;
|
|
9
9
|
export declare const isNewIPadPro: boolean;
|
|
10
|
+
export declare const isIPhoneAir: boolean;
|
|
10
11
|
export declare const statusBarHeight: (isLandscape: boolean, immersive?: boolean) => number;
|
|
11
12
|
export declare const safeAreaBottomInset: () => 0 | 20 | 34;
|
|
12
13
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xhsreds/reds-rn-next",
|
|
3
|
-
"version": "0.8.1-
|
|
3
|
+
"version": "0.8.1-iphone-air202509121823",
|
|
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.8.
|
|
29
|
+
"@xhsreds/reds-token-next": "0.8.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependenciesMeta": {
|
|
32
32
|
"ozone-schema-web": {
|
|
@@ -20,6 +20,8 @@ const IPHONE16PROMAX_HEIGHT = 932;
|
|
|
20
20
|
// 小红书客户端8.76版本及以上获取的16promax高度
|
|
21
21
|
const IPHONE16PROMAX_HEIGHT_876 = 956;
|
|
22
22
|
const IPHONE16PROMAX_WIDTH_876 = 440;
|
|
23
|
+
const IPHONEAIR_WIDTH = 420;
|
|
24
|
+
const IPHONEAIR_HEIGHT = 912;
|
|
23
25
|
|
|
24
26
|
const PAD_WIDTH = 768;
|
|
25
27
|
const IPADPRO11_WIDTH = 834;
|
|
@@ -86,6 +88,12 @@ export const isNewIPadPro = (() => {
|
|
|
86
88
|
);
|
|
87
89
|
})();
|
|
88
90
|
|
|
91
|
+
export const isIPhoneAir = (() => {
|
|
92
|
+
if (Platform.OS === "web") return false;
|
|
93
|
+
|
|
94
|
+
return Platform.OS === "ios" && D_HEIGHT === IPHONEAIR_HEIGHT && D_WIDTH === IPHONEAIR_WIDTH;
|
|
95
|
+
})();
|
|
96
|
+
|
|
89
97
|
const isIPad = (() => {
|
|
90
98
|
if (Platform.OS !== "ios" || isIPhoneX) return false;
|
|
91
99
|
|
|
@@ -138,6 +146,10 @@ export const statusBarHeight = (isLandscape: boolean, immersive: boolean = false
|
|
|
138
146
|
return 20;
|
|
139
147
|
}
|
|
140
148
|
|
|
149
|
+
if (isIPhoneAir) {
|
|
150
|
+
return isLandscape ? 0 : 68;
|
|
151
|
+
}
|
|
152
|
+
|
|
141
153
|
return isLandscape ? 0 : 20;
|
|
142
154
|
};
|
|
143
155
|
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
interface Resources {
|
|
2
2
|
componentKey: {
|
|
3
|
-
sureKey: "
|
|
4
|
-
satisfyKey: "
|
|
5
|
-
confirmKey: "
|
|
6
|
-
uploadingKey: "
|
|
3
|
+
sureKey: "確定";
|
|
4
|
+
satisfyKey: "滿意";
|
|
5
|
+
confirmKey: "確認";
|
|
6
|
+
uploadingKey: "上傳中";
|
|
7
7
|
resetKey: "重置";
|
|
8
|
-
NoDataKey: "
|
|
8
|
+
NoDataKey: "暫無數據";
|
|
9
9
|
liveStreamingKey: "直播";
|
|
10
10
|
generallyKey: "一般";
|
|
11
|
-
uploadFailedKey: "
|
|
11
|
+
uploadFailedKey: "上傳失敗";
|
|
12
12
|
submitKey: "提交";
|
|
13
|
-
requestSuccessfulKey: "
|
|
13
|
+
requestSuccessfulKey: "請求成功";
|
|
14
14
|
cancelKey: "取消";
|
|
15
|
-
PullDownToRefreshKey: "
|
|
16
|
-
selectAllKey: "
|
|
17
|
-
requestDataKey: "
|
|
15
|
+
PullDownToRefreshKey: "下拉重繪";
|
|
16
|
+
selectAllKey: "全選";
|
|
17
|
+
requestDataKey: "請求數據中";
|
|
18
18
|
closeKey: "收起";
|
|
19
|
-
veryBadKey: "
|
|
20
|
-
searchKey: "
|
|
21
|
-
expandKey: "
|
|
22
|
-
IDCardPhotoKey: "
|
|
19
|
+
veryBadKey: "極差";
|
|
20
|
+
searchKey: "蒐索";
|
|
21
|
+
expandKey: "展開";
|
|
22
|
+
IDCardPhotoKey: "身份證人像面";
|
|
23
23
|
finishKey: "完成";
|
|
24
|
-
surpriseKey: "
|
|
25
|
-
releaseRefreshKey: "
|
|
24
|
+
surpriseKey: "驚喜";
|
|
25
|
+
releaseRefreshKey: "鬆開重繪";
|
|
26
26
|
nationalEmblemSideOfIDCardKey: "身份证国徽面";
|
|
27
|
-
buttonKey: "
|
|
28
|
-
jumpKey: "
|
|
27
|
+
buttonKey: "按鈕";
|
|
28
|
+
jumpKey: "跳轉";
|
|
29
29
|
disappointmentKey: "失望";
|
|
30
30
|
};
|
|
31
31
|
}
|
package/src/i18n/index.json
CHANGED
|
@@ -1,35 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"zh_cn": {
|
|
3
|
-
"componentKey": {
|
|
4
|
-
"sureKey": "确定",
|
|
5
|
-
"satisfyKey": "满意",
|
|
6
|
-
"confirmKey": "确认",
|
|
7
|
-
"uploadingKey": "上传中",
|
|
8
|
-
"resetKey": "重置",
|
|
9
|
-
"NoDataKey": "暂无数据",
|
|
10
|
-
"liveStreamingKey": "直播",
|
|
11
|
-
"generallyKey": "一般",
|
|
12
|
-
"uploadFailedKey": "上传失败",
|
|
13
|
-
"submitKey": "提交",
|
|
14
|
-
"requestSuccessfulKey": "请求成功",
|
|
15
|
-
"cancelKey": "取消",
|
|
16
|
-
"PullDownToRefreshKey": "下拉刷新",
|
|
17
|
-
"selectAllKey": "全选",
|
|
18
|
-
"requestDataKey": "请求数据中",
|
|
19
|
-
"closeKey": "收起",
|
|
20
|
-
"veryBadKey": "极差",
|
|
21
|
-
"searchKey": "搜索",
|
|
22
|
-
"expandKey": "展开",
|
|
23
|
-
"IDCardPhotoKey": "身份证人像面",
|
|
24
|
-
"finishKey": "完成",
|
|
25
|
-
"surpriseKey": "惊喜",
|
|
26
|
-
"releaseRefreshKey": "松开刷新",
|
|
27
|
-
"nationalEmblemSideOfIDCardKey": "身份证国徽面",
|
|
28
|
-
"buttonKey": "按钮",
|
|
29
|
-
"jumpKey": "跳转",
|
|
30
|
-
"disappointmentKey": "失望"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
2
|
"zh_tw": {
|
|
34
3
|
"componentKey": {
|
|
35
4
|
"sureKey": "確定",
|
|
@@ -91,5 +60,36 @@
|
|
|
91
60
|
"jumpKey": "Jump",
|
|
92
61
|
"disappointmentKey": "Disappointment"
|
|
93
62
|
}
|
|
63
|
+
},
|
|
64
|
+
"zh_cn": {
|
|
65
|
+
"componentKey": {
|
|
66
|
+
"sureKey": "确定",
|
|
67
|
+
"satisfyKey": "满意",
|
|
68
|
+
"confirmKey": "确认",
|
|
69
|
+
"uploadingKey": "上传中",
|
|
70
|
+
"resetKey": "重置",
|
|
71
|
+
"NoDataKey": "暂无数据",
|
|
72
|
+
"liveStreamingKey": "直播",
|
|
73
|
+
"generallyKey": "一般",
|
|
74
|
+
"uploadFailedKey": "上传失败",
|
|
75
|
+
"submitKey": "提交",
|
|
76
|
+
"requestSuccessfulKey": "请求成功",
|
|
77
|
+
"cancelKey": "取消",
|
|
78
|
+
"PullDownToRefreshKey": "下拉刷新",
|
|
79
|
+
"selectAllKey": "全选",
|
|
80
|
+
"requestDataKey": "请求数据中",
|
|
81
|
+
"closeKey": "收起",
|
|
82
|
+
"veryBadKey": "极差",
|
|
83
|
+
"searchKey": "搜索",
|
|
84
|
+
"expandKey": "展开",
|
|
85
|
+
"IDCardPhotoKey": "身份证人像面",
|
|
86
|
+
"finishKey": "完成",
|
|
87
|
+
"surpriseKey": "惊喜",
|
|
88
|
+
"releaseRefreshKey": "松开刷新",
|
|
89
|
+
"nationalEmblemSideOfIDCardKey": "身份证国徽面",
|
|
90
|
+
"buttonKey": "按钮",
|
|
91
|
+
"jumpKey": "跳转",
|
|
92
|
+
"disappointmentKey": "失望"
|
|
93
|
+
}
|
|
94
94
|
}
|
|
95
95
|
}
|