@react-navigation/elements 1.2.1 → 1.3.0
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/lib/commonjs/Background.js +5 -4
- package/lib/commonjs/Background.js.map +1 -1
- package/lib/commonjs/Header/HeaderBackButton.js +20 -19
- package/lib/commonjs/Header/HeaderBackButton.js.map +1 -1
- package/lib/commonjs/Header/HeaderBackground.js +5 -4
- package/lib/commonjs/Header/HeaderBackground.js.map +1 -1
- package/lib/commonjs/Header/HeaderTitle.js +6 -5
- package/lib/commonjs/Header/HeaderTitle.js.map +1 -1
- package/lib/commonjs/Header/getDefaultHeaderHeight.js +1 -1
- package/lib/commonjs/Header/getDefaultHeaderHeight.js.map +1 -1
- package/lib/commonjs/MaskedView.js +4 -3
- package/lib/commonjs/MaskedView.js.map +1 -1
- package/lib/commonjs/MaskedViewNative.js +6 -4
- package/lib/commonjs/MaskedViewNative.js.map +1 -1
- package/lib/commonjs/MissingIcon.js +6 -5
- package/lib/commonjs/MissingIcon.js.map +1 -1
- package/lib/commonjs/PlatformPressable.js +10 -9
- package/lib/commonjs/PlatformPressable.js.map +1 -1
- package/lib/commonjs/ResourceSavingView.js +8 -6
- package/lib/commonjs/ResourceSavingView.js.map +1 -1
- package/lib/commonjs/SafeAreaProviderCompat.js +5 -4
- package/lib/commonjs/SafeAreaProviderCompat.js.map +1 -1
- package/lib/commonjs/index.js +19 -19
- package/lib/module/Background.js +5 -4
- package/lib/module/Background.js.map +1 -1
- package/lib/module/Header/HeaderBackButton.js +20 -19
- package/lib/module/Header/HeaderBackButton.js.map +1 -1
- package/lib/module/Header/HeaderBackground.js +5 -4
- package/lib/module/Header/HeaderBackground.js.map +1 -1
- package/lib/module/Header/HeaderTitle.js +6 -5
- package/lib/module/Header/HeaderTitle.js.map +1 -1
- package/lib/module/Header/getDefaultHeaderHeight.js +1 -1
- package/lib/module/Header/getDefaultHeaderHeight.js.map +1 -1
- package/lib/module/MaskedView.js +4 -3
- package/lib/module/MaskedView.js.map +1 -1
- package/lib/module/MaskedViewNative.js +6 -4
- package/lib/module/MaskedViewNative.js.map +1 -1
- package/lib/module/MissingIcon.js +6 -5
- package/lib/module/MissingIcon.js.map +1 -1
- package/lib/module/PlatformPressable.js +10 -9
- package/lib/module/PlatformPressable.js.map +1 -1
- package/lib/module/ResourceSavingView.js +8 -6
- package/lib/module/ResourceSavingView.js.map +1 -1
- package/lib/module/SafeAreaProviderCompat.js +5 -4
- package/lib/module/SafeAreaProviderCompat.js.map +1 -1
- package/lib/typescript/src/types.d.ts +18 -16
- package/package.json +5 -5
- package/src/Header/HeaderBackButton.tsx +3 -2
- package/src/Header/getDefaultHeaderHeight.tsx +1 -1
- package/src/types.tsx +19 -16
|
@@ -17,10 +17,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
17
17
|
|
|
18
18
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
19
19
|
|
|
20
|
-
function Background({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
function Background(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
style,
|
|
23
|
+
...rest
|
|
24
|
+
} = _ref;
|
|
24
25
|
const {
|
|
25
26
|
colors
|
|
26
27
|
} = (0, _native.useTheme)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Background.tsx"],"names":["Background","style","rest","colors","flex","backgroundColor","background"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAMe,SAASA,UAAT,
|
|
1
|
+
{"version":3,"sources":["Background.tsx"],"names":["Background","style","rest","colors","flex","backgroundColor","background"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAMe,SAASA,UAAT,OAA+C;AAAA,MAA3B;AAAEC,IAAAA,KAAF;AAAS,OAAGC;AAAZ,GAA2B;AAC5D,QAAM;AAAEC,IAAAA;AAAF,MAAa,uBAAnB;AAEA,sBACE,oBAAC,iBAAD,eACMD,IADN;AAEE,IAAA,KAAK,EAAE,CAAC;AAAEE,MAAAA,IAAI,EAAE,CAAR;AAAWC,MAAAA,eAAe,EAAEF,MAAM,CAACG;AAAnC,KAAD,EAAkDL,KAAlD;AAFT,KADF;AAMD","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { View, ViewProps } from 'react-native';\n\ntype Props = ViewProps & {\n children: React.ReactNode;\n};\n\nexport default function Background({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n <View\n {...rest}\n style={[{ flex: 1, backgroundColor: colors.background }, style]}\n />\n );\n}\n"]}
|
|
@@ -21,25 +21,26 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
21
21
|
|
|
22
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
23
|
|
|
24
|
-
function HeaderBackButton({
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
24
|
+
function HeaderBackButton(_ref) {
|
|
25
|
+
let {
|
|
26
|
+
disabled,
|
|
27
|
+
allowFontScaling,
|
|
28
|
+
backImage,
|
|
29
|
+
label,
|
|
30
|
+
labelStyle,
|
|
31
|
+
labelVisible,
|
|
32
|
+
onLabelLayout,
|
|
33
|
+
onPress,
|
|
34
|
+
pressColor,
|
|
35
|
+
pressOpacity,
|
|
36
|
+
screenLayout,
|
|
37
|
+
tintColor: customTintColor,
|
|
38
|
+
titleLayout,
|
|
39
|
+
truncatedLabel = 'Back',
|
|
40
|
+
accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',
|
|
41
|
+
testID,
|
|
42
|
+
style
|
|
43
|
+
} = _ref;
|
|
43
44
|
const {
|
|
44
45
|
colors
|
|
45
46
|
} = (0, _native.useTheme)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeaderBackButton.tsx"],"names":["HeaderBackButton","disabled","allowFontScaling","backImage","label","labelStyle","labelVisible","onLabelLayout","onPress","pressColor","pressOpacity","screenLayout","tintColor","customTintColor","titleLayout","truncatedLabel","accessibilityLabel","testID","style","colors","initialLabelWidth","setInitialLabelWidth","React","useState","undefined","Platform","select","ios","primary","default","text","handleLabelLayout","e","nativeEvent","layout","x","width","shouldTruncateLabel","renderBackImage","styles","icon","Boolean","iconWithLabel","require","renderLabel","leftLabelText","labelElement","labelWrapper","minWidth","color","OS","iconMaskContainer","iconMask","iconMaskFillerRect","handlePress","requestAnimationFrame","borderless","container","top","right","bottom","left","StyleSheet","create","alignItems","flexDirection","hairlineWidth","marginVertical","marginHorizontal","opacity","fontSize","letterSpacing","height","marginLeft","marginRight","resizeMode","transform","scaleX","I18nManager","isRTL","margin","flex","justifyContent","backgroundColor","alignSelf"],"mappings":"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","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n I18nManager,\n Image,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport MaskedView from '../MaskedView';\nimport PlatformPressable from '../PlatformPressable';\nimport type { HeaderBackButtonProps } from '../types';\n\nexport default function HeaderBackButton({\n disabled,\n allowFontScaling,\n backImage,\n label,\n labelStyle,\n labelVisible,\n onLabelLayout,\n onPress,\n pressColor,\n pressOpacity,\n screenLayout,\n tintColor: customTintColor,\n titleLayout,\n truncatedLabel = 'Back',\n accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',\n testID,\n style,\n}: HeaderBackButtonProps) {\n const { colors } = useTheme();\n\n const [initialLabelWidth, setInitialLabelWidth] =\n React.useState<undefined | number>(undefined);\n\n const tintColor =\n customTintColor !== undefined\n ? customTintColor\n : Platform.select({\n ios: colors.primary,\n default: colors.text,\n });\n\n const handleLabelLayout = (e: LayoutChangeEvent) => {\n onLabelLayout?.(e);\n\n setInitialLabelWidth(e.nativeEvent.layout.x + e.nativeEvent.layout.width);\n };\n\n const shouldTruncateLabel = () => {\n return (\n !label ||\n (initialLabelWidth &&\n titleLayout &&\n screenLayout &&\n (screenLayout.width - titleLayout.width) / 2 < initialLabelWidth + 26)\n );\n };\n\n const renderBackImage = () => {\n if (backImage) {\n return backImage({ tintColor });\n } else {\n return (\n <Image\n style={[\n styles.icon,\n Boolean(labelVisible) && styles.iconWithLabel,\n Boolean(tintColor) && { tintColor },\n ]}\n source={require('../assets/back-icon.png')}\n fadeDuration={0}\n />\n );\n }\n };\n\n const renderLabel = () => {\n const leftLabelText = shouldTruncateLabel() ? truncatedLabel : label;\n\n if (!labelVisible || leftLabelText === undefined) {\n return null;\n }\n\n const labelElement = (\n <View\n style={\n screenLayout\n ? // We make the button extend till the middle of the screen\n // Otherwise it appears to cut off when translating\n [styles.labelWrapper, { minWidth: screenLayout.width / 2 - 27 }]\n : null\n }\n >\n <Animated.Text\n accessible={false}\n onLayout={\n // This measurement is used to determine if we should truncate the label when it doesn't fit\n // Only measure it when label is not truncated because we want the measurement of full label\n leftLabelText === label ? handleLabelLayout : undefined\n }\n style={[\n styles.label,\n tintColor ? { color: tintColor } : null,\n labelStyle,\n ]}\n numberOfLines={1}\n allowFontScaling={!!allowFontScaling}\n >\n {leftLabelText}\n </Animated.Text>\n </View>\n );\n\n if (backImage || Platform.OS !== 'ios') {\n // When a custom backimage is specified, we can't mask the label\n // Otherwise there might be weird effect due to our mask not being the same as the image\n return labelElement;\n }\n\n return (\n <MaskedView\n maskElement={\n <View style={styles.iconMaskContainer}>\n <Image\n source={require('../assets/back-icon-mask.png')}\n style={styles.iconMask}\n />\n <View style={styles.iconMaskFillerRect} />\n </View>\n }\n >\n {labelElement}\n </MaskedView>\n );\n };\n\n const handlePress = () => onPress && requestAnimationFrame(onPress);\n\n return (\n <PlatformPressable\n disabled={disabled}\n accessible\n accessibilityRole=\"button\"\n accessibilityLabel={accessibilityLabel}\n testID={testID}\n onPress={disabled ? undefined : handlePress}\n pressColor={pressColor}\n pressOpacity={pressOpacity}\n android_ripple={{ borderless: true }}\n style={[styles.container, disabled && styles.disabled, style]}\n hitSlop={Platform.select({\n ios: undefined,\n default: { top: 16, right: 16, bottom: 16, left: 16 },\n })}\n >\n <React.Fragment>\n {renderBackImage()}\n {renderLabel()}\n </React.Fragment>\n </PlatformPressable>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n minWidth: StyleSheet.hairlineWidth, // Avoid collapsing when title is long\n ...Platform.select({\n ios: null,\n default: {\n marginVertical: 3,\n marginHorizontal: 11,\n },\n }),\n },\n disabled: {\n opacity: 0.5,\n },\n label: {\n fontSize: 17,\n // Title and back label are a bit different width due to title being bold\n // Adjusting the letterSpacing makes them coincide better\n letterSpacing: 0.35,\n },\n labelWrapper: {\n // These styles will make sure that the label doesn't fill the available space\n // Otherwise it messes with the measurement of the label\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n icon: Platform.select({\n ios: {\n height: 21,\n width: 13,\n marginLeft: 8,\n marginRight: 22,\n marginVertical: 12,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n default: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n }),\n iconWithLabel:\n Platform.OS === 'ios'\n ? {\n marginRight: 6,\n }\n : {},\n iconMaskContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n },\n iconMaskFillerRect: {\n flex: 1,\n backgroundColor: '#000',\n },\n iconMask: {\n height: 21,\n width: 13,\n marginLeft: -14.5,\n marginVertical: 12,\n alignSelf: 'center',\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["HeaderBackButton.tsx"],"names":["HeaderBackButton","disabled","allowFontScaling","backImage","label","labelStyle","labelVisible","onLabelLayout","onPress","pressColor","pressOpacity","screenLayout","tintColor","customTintColor","titleLayout","truncatedLabel","accessibilityLabel","testID","style","colors","initialLabelWidth","setInitialLabelWidth","React","useState","undefined","Platform","select","ios","primary","default","text","handleLabelLayout","e","nativeEvent","layout","x","width","shouldTruncateLabel","renderBackImage","styles","icon","Boolean","iconWithLabel","require","renderLabel","leftLabelText","labelElement","labelWrapper","minWidth","color","OS","iconMaskContainer","iconMask","iconMaskFillerRect","handlePress","requestAnimationFrame","borderless","container","top","right","bottom","left","StyleSheet","create","alignItems","flexDirection","hairlineWidth","marginVertical","marginHorizontal","opacity","fontSize","letterSpacing","height","marginLeft","marginRight","resizeMode","transform","scaleX","I18nManager","isRTL","margin","flex","justifyContent","backgroundColor","alignSelf"],"mappings":"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","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n I18nManager,\n Image,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport MaskedView from '../MaskedView';\nimport PlatformPressable from '../PlatformPressable';\nimport type { HeaderBackButtonProps } from '../types';\n\nexport default function HeaderBackButton({\n disabled,\n allowFontScaling,\n backImage,\n label,\n labelStyle,\n labelVisible,\n onLabelLayout,\n onPress,\n pressColor,\n pressOpacity,\n screenLayout,\n tintColor: customTintColor,\n titleLayout,\n truncatedLabel = 'Back',\n accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',\n testID,\n style,\n}: HeaderBackButtonProps) {\n const { colors } = useTheme();\n\n const [initialLabelWidth, setInitialLabelWidth] = React.useState<\n undefined | number\n >(undefined);\n\n const tintColor =\n customTintColor !== undefined\n ? customTintColor\n : Platform.select({\n ios: colors.primary,\n default: colors.text,\n });\n\n const handleLabelLayout = (e: LayoutChangeEvent) => {\n onLabelLayout?.(e);\n\n setInitialLabelWidth(e.nativeEvent.layout.x + e.nativeEvent.layout.width);\n };\n\n const shouldTruncateLabel = () => {\n return (\n !label ||\n (initialLabelWidth &&\n titleLayout &&\n screenLayout &&\n (screenLayout.width - titleLayout.width) / 2 < initialLabelWidth + 26)\n );\n };\n\n const renderBackImage = () => {\n if (backImage) {\n return backImage({ tintColor });\n } else {\n return (\n <Image\n style={[\n styles.icon,\n Boolean(labelVisible) && styles.iconWithLabel,\n Boolean(tintColor) && { tintColor },\n ]}\n source={require('../assets/back-icon.png')}\n fadeDuration={0}\n />\n );\n }\n };\n\n const renderLabel = () => {\n const leftLabelText = shouldTruncateLabel() ? truncatedLabel : label;\n\n if (!labelVisible || leftLabelText === undefined) {\n return null;\n }\n\n const labelElement = (\n <View\n style={\n screenLayout\n ? // We make the button extend till the middle of the screen\n // Otherwise it appears to cut off when translating\n [styles.labelWrapper, { minWidth: screenLayout.width / 2 - 27 }]\n : null\n }\n >\n <Animated.Text\n accessible={false}\n onLayout={\n // This measurement is used to determine if we should truncate the label when it doesn't fit\n // Only measure it when label is not truncated because we want the measurement of full label\n leftLabelText === label ? handleLabelLayout : undefined\n }\n style={[\n styles.label,\n tintColor ? { color: tintColor } : null,\n labelStyle,\n ]}\n numberOfLines={1}\n allowFontScaling={!!allowFontScaling}\n >\n {leftLabelText}\n </Animated.Text>\n </View>\n );\n\n if (backImage || Platform.OS !== 'ios') {\n // When a custom backimage is specified, we can't mask the label\n // Otherwise there might be weird effect due to our mask not being the same as the image\n return labelElement;\n }\n\n return (\n <MaskedView\n maskElement={\n <View style={styles.iconMaskContainer}>\n <Image\n source={require('../assets/back-icon-mask.png')}\n style={styles.iconMask}\n />\n <View style={styles.iconMaskFillerRect} />\n </View>\n }\n >\n {labelElement}\n </MaskedView>\n );\n };\n\n const handlePress = () => onPress && requestAnimationFrame(onPress);\n\n return (\n <PlatformPressable\n disabled={disabled}\n accessible\n accessibilityRole=\"button\"\n accessibilityLabel={accessibilityLabel}\n testID={testID}\n onPress={disabled ? undefined : handlePress}\n pressColor={pressColor}\n pressOpacity={pressOpacity}\n android_ripple={{ borderless: true }}\n style={[styles.container, disabled && styles.disabled, style]}\n hitSlop={Platform.select({\n ios: undefined,\n default: { top: 16, right: 16, bottom: 16, left: 16 },\n })}\n >\n <React.Fragment>\n {renderBackImage()}\n {renderLabel()}\n </React.Fragment>\n </PlatformPressable>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n minWidth: StyleSheet.hairlineWidth, // Avoid collapsing when title is long\n ...Platform.select({\n ios: null,\n default: {\n marginVertical: 3,\n marginHorizontal: 11,\n },\n }),\n },\n disabled: {\n opacity: 0.5,\n },\n label: {\n fontSize: 17,\n // Title and back label are a bit different width due to title being bold\n // Adjusting the letterSpacing makes them coincide better\n letterSpacing: 0.35,\n },\n labelWrapper: {\n // These styles will make sure that the label doesn't fill the available space\n // Otherwise it messes with the measurement of the label\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n icon: Platform.select({\n ios: {\n height: 21,\n width: 13,\n marginLeft: 8,\n marginRight: 22,\n marginVertical: 12,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n default: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n }),\n iconWithLabel:\n Platform.OS === 'ios'\n ? {\n marginRight: 6,\n }\n : {},\n iconMaskContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n },\n iconMaskFillerRect: {\n flex: 1,\n backgroundColor: '#000',\n },\n iconMask: {\n height: 21,\n width: 13,\n marginLeft: -14.5,\n marginVertical: 12,\n alignSelf: 'center',\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n});\n"]}
|
|
@@ -17,10 +17,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
17
17
|
|
|
18
18
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
19
19
|
|
|
20
|
-
function HeaderBackground({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
function HeaderBackground(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
style,
|
|
23
|
+
...rest
|
|
24
|
+
} = _ref;
|
|
24
25
|
const {
|
|
25
26
|
colors
|
|
26
27
|
} = (0, _native.useTheme)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeaderBackground.tsx"],"names":["HeaderBackground","style","rest","colors","styles","container","backgroundColor","card","borderBottomColor","border","shadowColor","StyleSheet","create","flex","Platform","select","android","elevation","ios","shadowOpacity","shadowRadius","shadowOffset","width","height","hairlineWidth","default","borderBottomWidth"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAce,SAASA,gBAAT,
|
|
1
|
+
{"version":3,"sources":["HeaderBackground.tsx"],"names":["HeaderBackground","style","rest","colors","styles","container","backgroundColor","card","borderBottomColor","border","shadowColor","StyleSheet","create","flex","Platform","select","android","elevation","ios","shadowOpacity","shadowRadius","shadowOffset","width","height","hairlineWidth","default","borderBottomWidth"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAce,SAASA,gBAAT,OAAqD;AAAA,MAA3B;AAAEC,IAAAA,KAAF;AAAS,OAAGC;AAAZ,GAA2B;AAClE,QAAM;AAAEC,IAAAA;AAAF,MAAa,uBAAnB;AAEA,sBACE,oBAAC,qBAAD,CAAU,IAAV;AACE,IAAA,KAAK,EAAE,CACLC,MAAM,CAACC,SADF,EAEL;AACEC,MAAAA,eAAe,EAAEH,MAAM,CAACI,IAD1B;AAEEC,MAAAA,iBAAiB,EAAEL,MAAM,CAACM,MAF5B;AAGEC,MAAAA,WAAW,EAAEP,MAAM,CAACM;AAHtB,KAFK,EAOLR,KAPK;AADT,KAUMC,IAVN,EADF;AAcD;;AAED,MAAME,MAAM,GAAGO,wBAAWC,MAAX,CAAkB;AAC/BP,EAAAA,SAAS,EAAE;AACTQ,IAAAA,IAAI,EAAE,CADG;AAET,OAAGC,sBAASC,MAAT,CAAgB;AACjBC,MAAAA,OAAO,EAAE;AACPC,QAAAA,SAAS,EAAE;AADJ,OADQ;AAIjBC,MAAAA,GAAG,EAAE;AACHC,QAAAA,aAAa,EAAE,IADZ;AAEHC,QAAAA,YAAY,EAAE,CAFX;AAGHC,QAAAA,YAAY,EAAE;AACZC,UAAAA,KAAK,EAAE,CADK;AAEZC,UAAAA,MAAM,EAAEZ,wBAAWa;AAFP;AAHX,OAJY;AAYjBC,MAAAA,OAAO,EAAE;AACPC,QAAAA,iBAAiB,EAAEf,wBAAWa;AADvB;AAZQ,KAAhB;AAFM;AADoB,CAAlB,CAAf","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n ViewProps,\n ViewStyle,\n} from 'react-native';\n\ntype Props = ViewProps & {\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n children?: React.ReactNode;\n};\n\nexport default function HeaderBackground({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n <Animated.View\n style={[\n styles.container,\n {\n backgroundColor: colors.card,\n borderBottomColor: colors.border,\n shadowColor: colors.border,\n },\n style,\n ]}\n {...rest}\n />\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowOpacity: 0.85,\n shadowRadius: 0,\n shadowOffset: {\n width: 0,\n height: StyleSheet.hairlineWidth,\n },\n },\n default: {\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n }),\n },\n});\n"]}
|
|
@@ -17,11 +17,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
17
17
|
|
|
18
18
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
19
19
|
|
|
20
|
-
function HeaderTitle({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
function HeaderTitle(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
tintColor,
|
|
23
|
+
style,
|
|
24
|
+
...rest
|
|
25
|
+
} = _ref;
|
|
25
26
|
const {
|
|
26
27
|
colors
|
|
27
28
|
} = (0, _native.useTheme)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeaderTitle.tsx"],"names":["HeaderTitle","tintColor","style","rest","colors","styles","title","color","undefined","text","StyleSheet","create","Platform","select","ios","fontSize","fontWeight","android","fontFamily","default"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAee,SAASA,WAAT,
|
|
1
|
+
{"version":3,"sources":["HeaderTitle.tsx"],"names":["HeaderTitle","tintColor","style","rest","colors","styles","title","color","undefined","text","StyleSheet","create","Platform","select","ios","fontSize","fontWeight","android","fontFamily","default"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAee,SAASA,WAAT,OAA2D;AAAA,MAAtC;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,KAAb;AAAoB,OAAGC;AAAvB,GAAsC;AACxE,QAAM;AAAEC,IAAAA;AAAF,MAAa,uBAAnB;AAEA,sBACE,oBAAC,qBAAD,CAAU,IAAV;AACE,IAAA,iBAAiB,EAAC,QADpB;AAEE,kBAAW,GAFb;AAGE,IAAA,aAAa,EAAE;AAHjB,KAIMD,IAJN;AAKE,IAAA,KAAK,EAAE,CACLE,MAAM,CAACC,KADF,EAEL;AAAEC,MAAAA,KAAK,EAAEN,SAAS,KAAKO,SAAd,GAA0BJ,MAAM,CAACK,IAAjC,GAAwCR;AAAjD,KAFK,EAGLC,KAHK;AALT,KADF;AAaD;;AAED,MAAMG,MAAM,GAAGK,wBAAWC,MAAX,CAAkB;AAC/BL,EAAAA,KAAK,EAAEM,sBAASC,MAAT,CAAgB;AACrBC,IAAAA,GAAG,EAAE;AACHC,MAAAA,QAAQ,EAAE,EADP;AAEHC,MAAAA,UAAU,EAAE;AAFT,KADgB;AAKrBC,IAAAA,OAAO,EAAE;AACPF,MAAAA,QAAQ,EAAE,EADH;AAEPG,MAAAA,UAAU,EAAE,mBAFL;AAGPF,MAAAA,UAAU,EAAE;AAHL,KALY;AAUrBG,IAAAA,OAAO,EAAE;AACPJ,MAAAA,QAAQ,EAAE,EADH;AAEPC,MAAAA,UAAU,EAAE;AAFL;AAVY,GAAhB;AADwB,CAAlB,CAAf","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n TextProps,\n TextStyle,\n} from 'react-native';\n\ntype Props = Omit<TextProps, 'style'> & {\n tintColor?: string;\n children?: string;\n style?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;\n};\n\nexport default function HeaderTitle({ tintColor, style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n <Animated.Text\n accessibilityRole=\"header\"\n aria-level=\"1\"\n numberOfLines={1}\n {...rest}\n style={[\n styles.title,\n { color: tintColor === undefined ? colors.text : tintColor },\n style,\n ]}\n />\n );\n}\n\nconst styles = StyleSheet.create({\n title: Platform.select({\n ios: {\n fontSize: 17,\n fontWeight: '600',\n },\n android: {\n fontSize: 20,\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal',\n },\n default: {\n fontSize: 18,\n fontWeight: '500',\n },\n }),\n});\n"]}
|
|
@@ -12,7 +12,7 @@ function getDefaultHeaderHeight(layout, modalPresentation, statusBarHeight) {
|
|
|
12
12
|
const isLandscape = layout.width > layout.height;
|
|
13
13
|
|
|
14
14
|
if (_reactNative.Platform.OS === 'ios') {
|
|
15
|
-
if (_reactNative.Platform.isPad) {
|
|
15
|
+
if (_reactNative.Platform.isPad || _reactNative.Platform.isTVOS) {
|
|
16
16
|
if (modalPresentation) {
|
|
17
17
|
headerHeight = 56;
|
|
18
18
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["getDefaultHeaderHeight.tsx"],"names":["getDefaultHeaderHeight","layout","modalPresentation","statusBarHeight","headerHeight","isLandscape","width","height","Platform","OS","isPad"],"mappings":";;;;;;;AAAA;;AAIe,SAASA,sBAAT,CACbC,MADa,EAEbC,iBAFa,EAGbC,eAHa,EAIL;AACR,MAAIC,YAAJ;AAEA,QAAMC,WAAW,GAAGJ,MAAM,CAACK,KAAP,GAAeL,MAAM,CAACM,MAA1C;;AAEA,MAAIC,sBAASC,EAAT,KAAgB,KAApB,EAA2B;AACzB,QAAID,sBAASE,
|
|
1
|
+
{"version":3,"sources":["getDefaultHeaderHeight.tsx"],"names":["getDefaultHeaderHeight","layout","modalPresentation","statusBarHeight","headerHeight","isLandscape","width","height","Platform","OS","isPad","isTVOS"],"mappings":";;;;;;;AAAA;;AAIe,SAASA,sBAAT,CACbC,MADa,EAEbC,iBAFa,EAGbC,eAHa,EAIL;AACR,MAAIC,YAAJ;AAEA,QAAMC,WAAW,GAAGJ,MAAM,CAACK,KAAP,GAAeL,MAAM,CAACM,MAA1C;;AAEA,MAAIC,sBAASC,EAAT,KAAgB,KAApB,EAA2B;AACzB,QAAID,sBAASE,KAAT,IAAkBF,sBAASG,MAA/B,EAAuC;AACrC,UAAIT,iBAAJ,EAAuB;AACrBE,QAAAA,YAAY,GAAG,EAAf;AACD,OAFD,MAEO;AACLA,QAAAA,YAAY,GAAG,EAAf;AACD;AACF,KAND,MAMO;AACL,UAAIC,WAAJ,EAAiB;AACfD,QAAAA,YAAY,GAAG,EAAf;AACD,OAFD,MAEO;AACL,YAAIF,iBAAJ,EAAuB;AACrBE,UAAAA,YAAY,GAAG,EAAf;AACD,SAFD,MAEO;AACLA,UAAAA,YAAY,GAAG,EAAf;AACD;AACF;AACF;AACF,GAlBD,MAkBO,IAAII,sBAASC,EAAT,KAAgB,SAApB,EAA+B;AACpCL,IAAAA,YAAY,GAAG,EAAf;AACD,GAFM,MAEA;AACLA,IAAAA,YAAY,GAAG,EAAf;AACD;;AAED,SAAOA,YAAY,GAAGD,eAAtB;AACD","sourcesContent":["import { Platform } from 'react-native';\n\nimport type { Layout } from '../types';\n\nexport default function getDefaultHeaderHeight(\n layout: Layout,\n modalPresentation: boolean,\n statusBarHeight: number\n): number {\n let headerHeight;\n\n const isLandscape = layout.width > layout.height;\n\n if (Platform.OS === 'ios') {\n if (Platform.isPad || Platform.isTVOS) {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 50;\n }\n } else {\n if (isLandscape) {\n headerHeight = 32;\n } else {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 44;\n }\n }\n }\n } else if (Platform.OS === 'android') {\n headerHeight = 56;\n } else {\n headerHeight = 64;\n }\n\n return headerHeight + statusBarHeight;\n}\n"]}
|
|
@@ -8,9 +8,10 @@ exports.default = MaskedView;
|
|
|
8
8
|
/**
|
|
9
9
|
* Use a stub for MaskedView on all Platforms that don't support it.
|
|
10
10
|
*/
|
|
11
|
-
function MaskedView({
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
function MaskedView(_ref) {
|
|
12
|
+
let {
|
|
13
|
+
children
|
|
14
|
+
} = _ref;
|
|
14
15
|
return children;
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=MaskedView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MaskedView.tsx"],"names":["MaskedView","children"],"mappings":";;;;;;;AAAA;AACA;AACA;AAQe,SAASA,UAAT,
|
|
1
|
+
{"version":3,"sources":["MaskedView.tsx"],"names":["MaskedView","children"],"mappings":";;;;;;;AAAA;AACA;AACA;AAQe,SAASA,UAAT,OAAyC;AAAA,MAArB;AAAEC,IAAAA;AAAF,GAAqB;AACtD,SAAOA,QAAP;AACD","sourcesContent":["/**\n * Use a stub for MaskedView on all Platforms that don't support it.\n */\nimport type * as React from 'react';\n\ntype Props = {\n maskElement: React.ReactElement;\n children: React.ReactElement;\n};\n\nexport default function MaskedView({ children }: Props) {\n return children;\n}\n"]}
|
|
@@ -27,10 +27,12 @@ try {
|
|
|
27
27
|
|
|
28
28
|
const isMaskedViewAvailable = _reactNative.UIManager.getViewManagerConfig('RNCMaskedView') != null;
|
|
29
29
|
|
|
30
|
-
function MaskedView({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
function MaskedView(_ref) {
|
|
31
|
+
let {
|
|
32
|
+
children,
|
|
33
|
+
...rest
|
|
34
|
+
} = _ref;
|
|
35
|
+
|
|
34
36
|
if (isMaskedViewAvailable && RNCMaskedView) {
|
|
35
37
|
return /*#__PURE__*/React.createElement(RNCMaskedView, rest, children);
|
|
36
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MaskedViewNative.tsx"],"names":["RNCMaskedView","require","default","e","isMaskedViewAvailable","UIManager","getViewManagerConfig","MaskedView","children","rest"],"mappings":";;;;;;;AAGA;;AACA;;;;;;AAJA;AACA;AACA;AAWA,IAAIA,aAAJ;;AAEA,IAAI;AACF;AACA;AACAA,EAAAA,aAAa,GAAGC,OAAO,CAAC,uCAAD,CAAP,CAAiDC,OAAjE;AACD,CAJD,CAIE,OAAOC,CAAP,EAAU,CACV;AACD;;AAED,MAAMC,qBAAqB,GACzBC,uBAAUC,oBAAV,CAA+B,eAA/B,KAAmD,IADrD;;AAGe,SAASC,UAAT,
|
|
1
|
+
{"version":3,"sources":["MaskedViewNative.tsx"],"names":["RNCMaskedView","require","default","e","isMaskedViewAvailable","UIManager","getViewManagerConfig","MaskedView","children","rest"],"mappings":";;;;;;;AAGA;;AACA;;;;;;AAJA;AACA;AACA;AAWA,IAAIA,aAAJ;;AAEA,IAAI;AACF;AACA;AACAA,EAAAA,aAAa,GAAGC,OAAO,CAAC,uCAAD,CAAP,CAAiDC,OAAjE;AACD,CAJD,CAIE,OAAOC,CAAP,EAAU,CACV;AACD;;AAED,MAAMC,qBAAqB,GACzBC,uBAAUC,oBAAV,CAA+B,eAA/B,KAAmD,IADrD;;AAGe,SAASC,UAAT,OAAkD;AAAA,MAA9B;AAAEC,IAAAA,QAAF;AAAY,OAAGC;AAAf,GAA8B;;AAC/D,MAAIL,qBAAqB,IAAIJ,aAA7B,EAA4C;AAC1C,wBAAO,oBAAC,aAAD,EAAmBS,IAAnB,EAA0BD,QAA1B,CAAP;AACD;;AAED,SAAOA,QAAP;AACD","sourcesContent":["/**\n * The native MaskedView that we explicitly re-export for supported platforms: Android, iOS.\n */\nimport * as React from 'react';\nimport { UIManager } from 'react-native';\n\ntype MaskedViewType =\n typeof import('@react-native-masked-view/masked-view').default;\n\ntype Props = React.ComponentProps<MaskedViewType> & {\n children: React.ReactElement;\n};\n\nlet RNCMaskedView: MaskedViewType | undefined;\n\ntry {\n // Add try/catch to support usage even if it's not installed, since it's optional.\n // Newer versions of Metro will handle it properly.\n RNCMaskedView = require('@react-native-masked-view/masked-view').default;\n} catch (e) {\n // Ignore\n}\n\nconst isMaskedViewAvailable =\n UIManager.getViewManagerConfig('RNCMaskedView') != null;\n\nexport default function MaskedView({ children, ...rest }: Props) {\n if (isMaskedViewAvailable && RNCMaskedView) {\n return <RNCMaskedView {...rest}>{children}</RNCMaskedView>;\n }\n\n return children;\n}\n"]}
|
|
@@ -13,11 +13,12 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
15
|
|
|
16
|
-
function MissingIcon({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
function MissingIcon(_ref) {
|
|
17
|
+
let {
|
|
18
|
+
color,
|
|
19
|
+
size,
|
|
20
|
+
style
|
|
21
|
+
} = _ref;
|
|
21
22
|
return /*#__PURE__*/React.createElement(_reactNative.Text, {
|
|
22
23
|
style: [styles.icon, {
|
|
23
24
|
color,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MissingIcon.tsx"],"names":["MissingIcon","color","size","style","styles","icon","fontSize","StyleSheet","create","backgroundColor"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAQe,SAASA,WAAT,
|
|
1
|
+
{"version":3,"sources":["MissingIcon.tsx"],"names":["MissingIcon","color","size","style","styles","icon","fontSize","StyleSheet","create","backgroundColor"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAQe,SAASA,WAAT,OAAoD;AAAA,MAA/B;AAAEC,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeC,IAAAA;AAAf,GAA+B;AACjE,sBAAO,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACC,MAAM,CAACC,IAAR,EAAc;AAAEJ,MAAAA,KAAF;AAASK,MAAAA,QAAQ,EAAEJ;AAAnB,KAAd,EAAyCC,KAAzC;AAAb,cAAP;AACD;;AAED,MAAMC,MAAM,GAAGG,wBAAWC,MAAX,CAAkB;AAC/BH,EAAAA,IAAI,EAAE;AACJI,IAAAA,eAAe,EAAE;AADb;AADyB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport { StyleProp, StyleSheet, Text, TextStyle } from 'react-native';\n\ntype Props = {\n color?: string;\n size?: number;\n style?: StyleProp<TextStyle>;\n};\n\nexport default function MissingIcon({ color, size, style }: Props) {\n return <Text style={[styles.icon, { color, fontSize: size }, style]}>⏷</Text>;\n}\n\nconst styles = StyleSheet.create({\n icon: {\n backgroundColor: 'transparent',\n },\n});\n"]}
|
|
@@ -25,15 +25,16 @@ const ANDROID_SUPPORTS_RIPPLE = _reactNative.Platform.OS === 'android' && _react
|
|
|
25
25
|
* PlatformPressable provides an abstraction on top of Pressable to handle platform differences.
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
-
function PlatformPressable({
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
function PlatformPressable(_ref) {
|
|
29
|
+
let {
|
|
30
|
+
onPressIn,
|
|
31
|
+
onPressOut,
|
|
32
|
+
android_ripple,
|
|
33
|
+
pressColor,
|
|
34
|
+
pressOpacity = 0.3,
|
|
35
|
+
style,
|
|
36
|
+
...rest
|
|
37
|
+
} = _ref;
|
|
37
38
|
const {
|
|
38
39
|
dark
|
|
39
40
|
} = (0, _native.useTheme)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PlatformPressable.tsx"],"names":["AnimatedPressable","Animated","createAnimatedComponent","Pressable","ANDROID_VERSION_LOLLIPOP","ANDROID_SUPPORTS_RIPPLE","Platform","OS","Version","PlatformPressable","onPressIn","onPressOut","android_ripple","pressColor","pressOpacity","style","rest","dark","opacity","React","useState","Value","animateTo","toValue","duration","timing","easing","Easing","inOut","quad","useNativeDriver","start","handlePressIn","e","handlePressOut","color","undefined"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAkBA,MAAMA,iBAAiB,GAAGC,sBAASC,uBAAT,CAAiCC,sBAAjC,CAA1B;;AAEA,MAAMC,wBAAwB,GAAG,EAAjC;AACA,MAAMC,uBAAuB,GAC3BC,sBAASC,EAAT,KAAgB,SAAhB,IAA6BD,sBAASE,OAAT,IAAoBJ,wBADnD;AAGA;AACA;AACA;;AACe,SAASK,iBAAT,
|
|
1
|
+
{"version":3,"sources":["PlatformPressable.tsx"],"names":["AnimatedPressable","Animated","createAnimatedComponent","Pressable","ANDROID_VERSION_LOLLIPOP","ANDROID_SUPPORTS_RIPPLE","Platform","OS","Version","PlatformPressable","onPressIn","onPressOut","android_ripple","pressColor","pressOpacity","style","rest","dark","opacity","React","useState","Value","animateTo","toValue","duration","timing","easing","Easing","inOut","quad","useNativeDriver","start","handlePressIn","e","handlePressOut","color","undefined"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAkBA,MAAMA,iBAAiB,GAAGC,sBAASC,uBAAT,CAAiCC,sBAAjC,CAA1B;;AAEA,MAAMC,wBAAwB,GAAG,EAAjC;AACA,MAAMC,uBAAuB,GAC3BC,sBAASC,EAAT,KAAgB,SAAhB,IAA6BD,sBAASE,OAAT,IAAoBJ,wBADnD;AAGA;AACA;AACA;;AACe,SAASK,iBAAT,OAQL;AAAA,MARgC;AACxCC,IAAAA,SADwC;AAExCC,IAAAA,UAFwC;AAGxCC,IAAAA,cAHwC;AAIxCC,IAAAA,UAJwC;AAKxCC,IAAAA,YAAY,GAAG,GALyB;AAMxCC,IAAAA,KANwC;AAOxC,OAAGC;AAPqC,GAQhC;AACR,QAAM;AAAEC,IAAAA;AAAF,MAAW,uBAAjB;AACA,QAAM,CAACC,OAAD,IAAYC,KAAK,CAACC,QAAN,CAAe,MAAM,IAAInB,sBAASoB,KAAb,CAAmB,CAAnB,CAArB,CAAlB;;AAEA,QAAMC,SAAS,GAAG,CAACC,OAAD,EAAkBC,QAAlB,KAAuC;AACvD,QAAInB,uBAAJ,EAA6B;AAC3B;AACD;;AAEDJ,0BAASwB,MAAT,CAAgBP,OAAhB,EAAyB;AACvBK,MAAAA,OADuB;AAEvBC,MAAAA,QAFuB;AAGvBE,MAAAA,MAAM,EAAEC,oBAAOC,KAAP,CAAaD,oBAAOE,IAApB,CAHe;AAIvBC,MAAAA,eAAe,EAAE;AAJM,KAAzB,EAKGC,KALH;AAMD,GAXD;;AAaA,QAAMC,aAAa,GAAIC,CAAD,IAA8B;AAClDX,IAAAA,SAAS,CAACR,YAAD,EAAe,CAAf,CAAT;AACAJ,IAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGuB,CAAH,CAAT;AACD,GAHD;;AAKA,QAAMC,cAAc,GAAID,CAAD,IAA8B;AACnDX,IAAAA,SAAS,CAAC,CAAD,EAAI,GAAJ,CAAT;AACAX,IAAAA,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAGsB,CAAH,CAAV;AACD,GAHD;;AAKA,sBACE,oBAAC,iBAAD;AACE,IAAA,SAAS,EAAED,aADb;AAEE,IAAA,UAAU,EAAEE,cAFd;AAGE,IAAA,cAAc,EACZ7B,uBAAuB,GACnB;AACE8B,MAAAA,KAAK,EACHtB,UAAU,KAAKuB,SAAf,GACIvB,UADJ,GAEII,IAAI,GACJ,0BADI,GAEJ,oBANR;AAOE,SAAGL;AAPL,KADmB,GAUnBwB,SAdR;AAgBE,IAAA,KAAK,EAAE,CAAC;AAAElB,MAAAA,OAAO,EAAE,CAACb,uBAAD,GAA2Ba,OAA3B,GAAqC;AAAhD,KAAD,EAAsDH,KAAtD;AAhBT,KAiBMC,IAjBN,EADF;AAqBD","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Easing,\n GestureResponderEvent,\n Platform,\n Pressable,\n PressableProps,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nexport type Props = Omit<PressableProps, 'style'> & {\n pressColor?: string;\n pressOpacity?: number;\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n children: React.ReactNode;\n};\n\nconst AnimatedPressable = Animated.createAnimatedComponent(Pressable);\n\nconst ANDROID_VERSION_LOLLIPOP = 21;\nconst ANDROID_SUPPORTS_RIPPLE =\n Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;\n\n/**\n * PlatformPressable provides an abstraction on top of Pressable to handle platform differences.\n */\nexport default function PlatformPressable({\n onPressIn,\n onPressOut,\n android_ripple,\n pressColor,\n pressOpacity = 0.3,\n style,\n ...rest\n}: Props) {\n const { dark } = useTheme();\n const [opacity] = React.useState(() => new Animated.Value(1));\n\n const animateTo = (toValue: number, duration: number) => {\n if (ANDROID_SUPPORTS_RIPPLE) {\n return;\n }\n\n Animated.timing(opacity, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true,\n }).start();\n };\n\n const handlePressIn = (e: GestureResponderEvent) => {\n animateTo(pressOpacity, 0);\n onPressIn?.(e);\n };\n\n const handlePressOut = (e: GestureResponderEvent) => {\n animateTo(1, 200);\n onPressOut?.(e);\n };\n\n return (\n <AnimatedPressable\n onPressIn={handlePressIn}\n onPressOut={handlePressOut}\n android_ripple={\n ANDROID_SUPPORTS_RIPPLE\n ? {\n color:\n pressColor !== undefined\n ? pressColor\n : dark\n ? 'rgba(255, 255, 255, .32)'\n : 'rgba(0, 0, 0, .32)',\n ...android_ripple,\n }\n : undefined\n }\n style={[{ opacity: !ANDROID_SUPPORTS_RIPPLE ? opacity : 1 }, style]}\n {...rest}\n />\n );\n}\n"]}
|
|
@@ -17,12 +17,14 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
17
17
|
|
|
18
18
|
const FAR_FAR_AWAY = 30000; // this should be big enough to move the whole view out of its container
|
|
19
19
|
|
|
20
|
-
function ResourceSavingScene({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
function ResourceSavingScene(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
visible,
|
|
23
|
+
children,
|
|
24
|
+
style,
|
|
25
|
+
...rest
|
|
26
|
+
} = _ref;
|
|
27
|
+
|
|
26
28
|
if (_reactNative.Platform.OS === 'web') {
|
|
27
29
|
return /*#__PURE__*/React.createElement(_reactNative.View // @ts-expect-error: hidden exists on web, but not in React Native
|
|
28
30
|
, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ResourceSavingView.tsx"],"names":["FAR_FAR_AWAY","ResourceSavingScene","visible","children","style","rest","Platform","OS","display","styles","container","attached","detached","StyleSheet","create","flex","overflow","top"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAQA,MAAMA,YAAY,GAAG,KAArB,C,CAA4B;;AAEb,SAASC,mBAAT,
|
|
1
|
+
{"version":3,"sources":["ResourceSavingView.tsx"],"names":["FAR_FAR_AWAY","ResourceSavingScene","visible","children","style","rest","Platform","OS","display","styles","container","attached","detached","StyleSheet","create","flex","overflow","top"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAQA,MAAMA,YAAY,GAAG,KAArB,C,CAA4B;;AAEb,SAASC,mBAAT,OAKL;AAAA,MALkC;AAC1CC,IAAAA,OAD0C;AAE1CC,IAAAA,QAF0C;AAG1CC,IAAAA,KAH0C;AAI1C,OAAGC;AAJuC,GAKlC;;AACR,MAAIC,sBAASC,EAAT,KAAgB,KAApB,EAA2B;AACzB,wBACE,oBAAC,iBAAD,CACE;AADF;AAEE,MAAA,MAAM,EAAE,CAACL,OAFX;AAGE,MAAA,KAAK,EAAE,CACL;AAAEM,QAAAA,OAAO,EAAEN,OAAO,GAAG,MAAH,GAAY;AAA9B,OADK,EAELO,MAAM,CAACC,SAFF,EAGLN,KAHK,CAHT;AAQE,MAAA,aAAa,EAAEF,OAAO,GAAG,MAAH,GAAY;AARpC,OASMG,IATN,GAWGF,QAXH,CADF;AAeD;;AAED,sBACE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CAACM,MAAM,CAACC,SAAR,EAAmBN,KAAnB,CADT,CAEE;AAFF;AAGE,IAAA,aAAa,EAAEF,OAAO,GAAG,MAAH,GAAY;AAHpC,kBAKE,oBAAC,iBAAD;AACE,IAAA,WAAW,EAAE,KADf;AAEE,IAAA,qBAAqB,EACnB;AACA;AACAI,0BAASC,EAAT,KAAgB,KAAhB,IAAyBD,sBAASC,EAAT,KAAgB,OAAzC,GAAmD,CAACL,OAApD,GAA8D,IALlE;AAOE,IAAA,aAAa,EAAEA,OAAO,GAAG,MAAH,GAAY,MAPpC;AAQE,IAAA,KAAK,EAAEA,OAAO,GAAGO,MAAM,CAACE,QAAV,GAAqBF,MAAM,CAACG;AAR5C,KAUGT,QAVH,CALF,CADF;AAoBD;;AAED,MAAMM,MAAM,GAAGI,wBAAWC,MAAX,CAAkB;AAC/BJ,EAAAA,SAAS,EAAE;AACTK,IAAAA,IAAI,EAAE,CADG;AAETC,IAAAA,QAAQ,EAAE;AAFD,GADoB;AAK/BL,EAAAA,QAAQ,EAAE;AACRI,IAAAA,IAAI,EAAE;AADE,GALqB;AAQ/BH,EAAAA,QAAQ,EAAE;AACRG,IAAAA,IAAI,EAAE,CADE;AAERE,IAAAA,GAAG,EAAEjB;AAFG;AARqB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport { Platform, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\ntype Props = {\n visible: boolean;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nconst FAR_FAR_AWAY = 30000; // this should be big enough to move the whole view out of its container\n\nexport default function ResourceSavingScene({\n visible,\n children,\n style,\n ...rest\n}: Props) {\n if (Platform.OS === 'web') {\n return (\n <View\n // @ts-expect-error: hidden exists on web, but not in React Native\n hidden={!visible}\n style={[\n { display: visible ? 'flex' : 'none' },\n styles.container,\n style,\n ]}\n pointerEvents={visible ? 'auto' : 'none'}\n {...rest}\n >\n {children}\n </View>\n );\n }\n\n return (\n <View\n style={[styles.container, style]}\n // box-none doesn't seem to work properly on Android\n pointerEvents={visible ? 'auto' : 'none'}\n >\n <View\n collapsable={false}\n removeClippedSubviews={\n // On iOS & macOS, set removeClippedSubviews to true only when not focused\n // This is an workaround for a bug where the clipped view never re-appears\n Platform.OS === 'ios' || Platform.OS === 'macos' ? !visible : true\n }\n pointerEvents={visible ? 'auto' : 'none'}\n style={visible ? styles.attached : styles.detached}\n >\n {children}\n </View>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden',\n },\n attached: {\n flex: 1,\n },\n detached: {\n flex: 1,\n top: FAR_FAR_AWAY,\n },\n});\n"]}
|
|
@@ -38,10 +38,11 @@ const initialMetrics = _reactNative.Platform.OS === 'web' || _reactNativeSafeAre
|
|
|
38
38
|
}
|
|
39
39
|
} : _reactNativeSafeAreaContext.initialWindowMetrics;
|
|
40
40
|
|
|
41
|
-
function SafeAreaProviderCompat({
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
function SafeAreaProviderCompat(_ref) {
|
|
42
|
+
let {
|
|
43
|
+
children,
|
|
44
|
+
style
|
|
45
|
+
} = _ref;
|
|
45
46
|
return /*#__PURE__*/React.createElement(_reactNativeSafeAreaContext.SafeAreaInsetsContext.Consumer, null, insets => {
|
|
46
47
|
if (insets) {
|
|
47
48
|
// If we already have insets, don't wrap the stack in another safe area provider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SafeAreaProviderCompat.tsx"],"names":["width","height","Dimensions","get","initialMetrics","Platform","OS","initialWindowMetrics","frame","x","y","insets","top","left","right","bottom","SafeAreaProviderCompat","children","style","styles","container","StyleSheet","create","flex"],"mappings":";;;;;;;AAAA;;AACA;;AAQA;;;;;;AAWA,MAAM;AAAEA,EAAAA,KAAK,GAAG,CAAV;AAAaC,EAAAA,MAAM,GAAG;AAAtB,IAA4BC,wBAAWC,GAAX,CAAe,QAAf,CAAlC,C,CAEA;AACA;AACA;;;AACA,MAAMC,cAAc,GAClBC,sBAASC,EAAT,KAAgB,KAAhB,IAAyBC,oDAAwB,IAAjD,GACI;AACEC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,CAAC,EAAE,CAAL;AAAQC,IAAAA,CAAC,EAAE,CAAX;AAAcV,IAAAA,KAAd;AAAqBC,IAAAA;AAArB,GADT;AAEEU,EAAAA,MAAM,EAAE;AAAEC,IAAAA,GAAG,EAAE,CAAP;AAAUC,IAAAA,IAAI,EAAE,CAAhB;AAAmBC,IAAAA,KAAK,EAAE,CAA1B;AAA6BC,IAAAA,MAAM,EAAE;AAArC;AAFV,CADJ,GAKIR,gDANN;;AAQe,SAASS,sBAAT,
|
|
1
|
+
{"version":3,"sources":["SafeAreaProviderCompat.tsx"],"names":["width","height","Dimensions","get","initialMetrics","Platform","OS","initialWindowMetrics","frame","x","y","insets","top","left","right","bottom","SafeAreaProviderCompat","children","style","styles","container","StyleSheet","create","flex"],"mappings":";;;;;;;AAAA;;AACA;;AAQA;;;;;;AAWA,MAAM;AAAEA,EAAAA,KAAK,GAAG,CAAV;AAAaC,EAAAA,MAAM,GAAG;AAAtB,IAA4BC,wBAAWC,GAAX,CAAe,QAAf,CAAlC,C,CAEA;AACA;AACA;;;AACA,MAAMC,cAAc,GAClBC,sBAASC,EAAT,KAAgB,KAAhB,IAAyBC,oDAAwB,IAAjD,GACI;AACEC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,CAAC,EAAE,CAAL;AAAQC,IAAAA,CAAC,EAAE,CAAX;AAAcV,IAAAA,KAAd;AAAqBC,IAAAA;AAArB,GADT;AAEEU,EAAAA,MAAM,EAAE;AAAEC,IAAAA,GAAG,EAAE,CAAP;AAAUC,IAAAA,IAAI,EAAE,CAAhB;AAAmBC,IAAAA,KAAK,EAAE,CAA1B;AAA6BC,IAAAA,MAAM,EAAE;AAArC;AAFV,CADJ,GAKIR,gDANN;;AAQe,SAASS,sBAAT,OAA4D;AAAA,MAA5B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA4B;AACzE,sBACE,oBAAC,iDAAD,CAAuB,QAAvB,QACIP,MAAD,IAAY;AACX,QAAIA,MAAJ,EAAY;AACV;AACA;AACA;AACA,0BAAO,oBAAC,iBAAD;AAAM,QAAA,KAAK,EAAE,CAACQ,MAAM,CAACC,SAAR,EAAmBF,KAAnB;AAAb,SAAyCD,QAAzC,CAAP;AACD;;AAED,wBACE,oBAAC,4CAAD;AAAkB,MAAA,cAAc,EAAEb,cAAlC;AAAkD,MAAA,KAAK,EAAEc;AAAzD,OACGD,QADH,CADF;AAKD,GAdH,CADF;AAkBD;;AAEDD,sBAAsB,CAACZ,cAAvB,GAAwCA,cAAxC;;AAEA,MAAMe,MAAM,GAAGE,wBAAWC,MAAX,CAAkB;AAC/BF,EAAAA,SAAS,EAAE;AACTG,IAAAA,IAAI,EAAE;AADG;AADoB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport {\n Dimensions,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport {\n initialWindowMetrics,\n SafeAreaInsetsContext,\n SafeAreaProvider,\n} from 'react-native-safe-area-context';\n\ntype Props = {\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nconst { width = 0, height = 0 } = Dimensions.get('window');\n\n// To support SSR on web, we need to have empty insets for initial values\n// Otherwise there can be mismatch between SSR and client output\n// We also need to specify empty values to support tests environments\nconst initialMetrics =\n Platform.OS === 'web' || initialWindowMetrics == null\n ? {\n frame: { x: 0, y: 0, width, height },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n }\n : initialWindowMetrics;\n\nexport default function SafeAreaProviderCompat({ children, style }: Props) {\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets) => {\n if (insets) {\n // If we already have insets, don't wrap the stack in another safe area provider\n // This avoids an issue with updates at the cost of potentially incorrect values\n // https://github.com/react-navigation/react-navigation/issues/174\n return <View style={[styles.container, style]}>{children}</View>;\n }\n\n return (\n <SafeAreaProvider initialMetrics={initialMetrics} style={style}>\n {children}\n </SafeAreaProvider>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n}\n\nSafeAreaProviderCompat.initialMetrics = initialMetrics;\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n"]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -22,24 +22,13 @@ var _exportNames = {
|
|
|
22
22
|
SafeAreaProviderCompat: true,
|
|
23
23
|
Screen: true
|
|
24
24
|
};
|
|
25
|
+
exports.Assets = void 0;
|
|
25
26
|
Object.defineProperty(exports, "Background", {
|
|
26
27
|
enumerable: true,
|
|
27
28
|
get: function () {
|
|
28
29
|
return _Background.default;
|
|
29
30
|
}
|
|
30
31
|
});
|
|
31
|
-
Object.defineProperty(exports, "getDefaultHeaderHeight", {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
get: function () {
|
|
34
|
-
return _getDefaultHeaderHeight.default;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
Object.defineProperty(exports, "getHeaderTitle", {
|
|
38
|
-
enumerable: true,
|
|
39
|
-
get: function () {
|
|
40
|
-
return _getHeaderTitle.default;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
32
|
Object.defineProperty(exports, "Header", {
|
|
44
33
|
enumerable: true,
|
|
45
34
|
get: function () {
|
|
@@ -82,12 +71,6 @@ Object.defineProperty(exports, "HeaderTitle", {
|
|
|
82
71
|
return _HeaderTitle.default;
|
|
83
72
|
}
|
|
84
73
|
});
|
|
85
|
-
Object.defineProperty(exports, "useHeaderHeight", {
|
|
86
|
-
enumerable: true,
|
|
87
|
-
get: function () {
|
|
88
|
-
return _useHeaderHeight.default;
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
74
|
Object.defineProperty(exports, "MissingIcon", {
|
|
92
75
|
enumerable: true,
|
|
93
76
|
get: function () {
|
|
@@ -118,7 +101,24 @@ Object.defineProperty(exports, "Screen", {
|
|
|
118
101
|
return _Screen.default;
|
|
119
102
|
}
|
|
120
103
|
});
|
|
121
|
-
exports
|
|
104
|
+
Object.defineProperty(exports, "getDefaultHeaderHeight", {
|
|
105
|
+
enumerable: true,
|
|
106
|
+
get: function () {
|
|
107
|
+
return _getDefaultHeaderHeight.default;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
Object.defineProperty(exports, "getHeaderTitle", {
|
|
111
|
+
enumerable: true,
|
|
112
|
+
get: function () {
|
|
113
|
+
return _getHeaderTitle.default;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
Object.defineProperty(exports, "useHeaderHeight", {
|
|
117
|
+
enumerable: true,
|
|
118
|
+
get: function () {
|
|
119
|
+
return _useHeaderHeight.default;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
122
|
|
|
123
123
|
var _Background = _interopRequireDefault(require("./Background"));
|
|
124
124
|
|
package/lib/module/Background.js
CHANGED
|
@@ -3,10 +3,11 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
3
3
|
import { useTheme } from '@react-navigation/native';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { View } from 'react-native';
|
|
6
|
-
export default function Background({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export default function Background(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
style,
|
|
9
|
+
...rest
|
|
10
|
+
} = _ref;
|
|
10
11
|
const {
|
|
11
12
|
colors
|
|
12
13
|
} = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Background.tsx"],"names":["useTheme","React","View","Background","style","rest","colors","flex","backgroundColor","background"],"mappings":";;AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAASC,IAAT,QAAgC,cAAhC;AAMA,eAAe,SAASC,UAAT,
|
|
1
|
+
{"version":3,"sources":["Background.tsx"],"names":["useTheme","React","View","Background","style","rest","colors","flex","backgroundColor","background"],"mappings":";;AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAASC,IAAT,QAAgC,cAAhC;AAMA,eAAe,SAASC,UAAT,OAA+C;AAAA,MAA3B;AAAEC,IAAAA,KAAF;AAAS,OAAGC;AAAZ,GAA2B;AAC5D,QAAM;AAAEC,IAAAA;AAAF,MAAaN,QAAQ,EAA3B;AAEA,sBACE,oBAAC,IAAD,eACMK,IADN;AAEE,IAAA,KAAK,EAAE,CAAC;AAAEE,MAAAA,IAAI,EAAE,CAAR;AAAWC,MAAAA,eAAe,EAAEF,MAAM,CAACG;AAAnC,KAAD,EAAkDL,KAAlD;AAFT,KADF;AAMD","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { View, ViewProps } from 'react-native';\n\ntype Props = ViewProps & {\n children: React.ReactNode;\n};\n\nexport default function Background({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n <View\n {...rest}\n style={[{ flex: 1, backgroundColor: colors.background }, style]}\n />\n );\n}\n"]}
|
|
@@ -3,25 +3,26 @@ import * as React from 'react';
|
|
|
3
3
|
import { Animated, I18nManager, Image, Platform, StyleSheet, View } from 'react-native';
|
|
4
4
|
import MaskedView from '../MaskedView';
|
|
5
5
|
import PlatformPressable from '../PlatformPressable';
|
|
6
|
-
export default function HeaderBackButton({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
6
|
+
export default function HeaderBackButton(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
disabled,
|
|
9
|
+
allowFontScaling,
|
|
10
|
+
backImage,
|
|
11
|
+
label,
|
|
12
|
+
labelStyle,
|
|
13
|
+
labelVisible,
|
|
14
|
+
onLabelLayout,
|
|
15
|
+
onPress,
|
|
16
|
+
pressColor,
|
|
17
|
+
pressOpacity,
|
|
18
|
+
screenLayout,
|
|
19
|
+
tintColor: customTintColor,
|
|
20
|
+
titleLayout,
|
|
21
|
+
truncatedLabel = 'Back',
|
|
22
|
+
accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',
|
|
23
|
+
testID,
|
|
24
|
+
style
|
|
25
|
+
} = _ref;
|
|
25
26
|
const {
|
|
26
27
|
colors
|
|
27
28
|
} = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeaderBackButton.tsx"],"names":["useTheme","React","Animated","I18nManager","Image","Platform","StyleSheet","View","MaskedView","PlatformPressable","HeaderBackButton","disabled","allowFontScaling","backImage","label","labelStyle","labelVisible","onLabelLayout","onPress","pressColor","pressOpacity","screenLayout","tintColor","customTintColor","titleLayout","truncatedLabel","accessibilityLabel","testID","style","colors","initialLabelWidth","setInitialLabelWidth","useState","undefined","select","ios","primary","default","text","handleLabelLayout","e","nativeEvent","layout","x","width","shouldTruncateLabel","renderBackImage","styles","icon","Boolean","iconWithLabel","require","renderLabel","leftLabelText","labelElement","labelWrapper","minWidth","color","OS","iconMaskContainer","iconMask","iconMaskFillerRect","handlePress","requestAnimationFrame","borderless","container","top","right","bottom","left","create","alignItems","flexDirection","hairlineWidth","marginVertical","marginHorizontal","opacity","fontSize","letterSpacing","height","marginLeft","marginRight","resizeMode","transform","scaleX","isRTL","margin","flex","justifyContent","backgroundColor","alignSelf"],"mappings":"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","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n I18nManager,\n Image,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport MaskedView from '../MaskedView';\nimport PlatformPressable from '../PlatformPressable';\nimport type { HeaderBackButtonProps } from '../types';\n\nexport default function HeaderBackButton({\n disabled,\n allowFontScaling,\n backImage,\n label,\n labelStyle,\n labelVisible,\n onLabelLayout,\n onPress,\n pressColor,\n pressOpacity,\n screenLayout,\n tintColor: customTintColor,\n titleLayout,\n truncatedLabel = 'Back',\n accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',\n testID,\n style,\n}: HeaderBackButtonProps) {\n const { colors } = useTheme();\n\n const [initialLabelWidth, setInitialLabelWidth] =\n React.useState<undefined | number>(undefined);\n\n const tintColor =\n customTintColor !== undefined\n ? customTintColor\n : Platform.select({\n ios: colors.primary,\n default: colors.text,\n });\n\n const handleLabelLayout = (e: LayoutChangeEvent) => {\n onLabelLayout?.(e);\n\n setInitialLabelWidth(e.nativeEvent.layout.x + e.nativeEvent.layout.width);\n };\n\n const shouldTruncateLabel = () => {\n return (\n !label ||\n (initialLabelWidth &&\n titleLayout &&\n screenLayout &&\n (screenLayout.width - titleLayout.width) / 2 < initialLabelWidth + 26)\n );\n };\n\n const renderBackImage = () => {\n if (backImage) {\n return backImage({ tintColor });\n } else {\n return (\n <Image\n style={[\n styles.icon,\n Boolean(labelVisible) && styles.iconWithLabel,\n Boolean(tintColor) && { tintColor },\n ]}\n source={require('../assets/back-icon.png')}\n fadeDuration={0}\n />\n );\n }\n };\n\n const renderLabel = () => {\n const leftLabelText = shouldTruncateLabel() ? truncatedLabel : label;\n\n if (!labelVisible || leftLabelText === undefined) {\n return null;\n }\n\n const labelElement = (\n <View\n style={\n screenLayout\n ? // We make the button extend till the middle of the screen\n // Otherwise it appears to cut off when translating\n [styles.labelWrapper, { minWidth: screenLayout.width / 2 - 27 }]\n : null\n }\n >\n <Animated.Text\n accessible={false}\n onLayout={\n // This measurement is used to determine if we should truncate the label when it doesn't fit\n // Only measure it when label is not truncated because we want the measurement of full label\n leftLabelText === label ? handleLabelLayout : undefined\n }\n style={[\n styles.label,\n tintColor ? { color: tintColor } : null,\n labelStyle,\n ]}\n numberOfLines={1}\n allowFontScaling={!!allowFontScaling}\n >\n {leftLabelText}\n </Animated.Text>\n </View>\n );\n\n if (backImage || Platform.OS !== 'ios') {\n // When a custom backimage is specified, we can't mask the label\n // Otherwise there might be weird effect due to our mask not being the same as the image\n return labelElement;\n }\n\n return (\n <MaskedView\n maskElement={\n <View style={styles.iconMaskContainer}>\n <Image\n source={require('../assets/back-icon-mask.png')}\n style={styles.iconMask}\n />\n <View style={styles.iconMaskFillerRect} />\n </View>\n }\n >\n {labelElement}\n </MaskedView>\n );\n };\n\n const handlePress = () => onPress && requestAnimationFrame(onPress);\n\n return (\n <PlatformPressable\n disabled={disabled}\n accessible\n accessibilityRole=\"button\"\n accessibilityLabel={accessibilityLabel}\n testID={testID}\n onPress={disabled ? undefined : handlePress}\n pressColor={pressColor}\n pressOpacity={pressOpacity}\n android_ripple={{ borderless: true }}\n style={[styles.container, disabled && styles.disabled, style]}\n hitSlop={Platform.select({\n ios: undefined,\n default: { top: 16, right: 16, bottom: 16, left: 16 },\n })}\n >\n <React.Fragment>\n {renderBackImage()}\n {renderLabel()}\n </React.Fragment>\n </PlatformPressable>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n minWidth: StyleSheet.hairlineWidth, // Avoid collapsing when title is long\n ...Platform.select({\n ios: null,\n default: {\n marginVertical: 3,\n marginHorizontal: 11,\n },\n }),\n },\n disabled: {\n opacity: 0.5,\n },\n label: {\n fontSize: 17,\n // Title and back label are a bit different width due to title being bold\n // Adjusting the letterSpacing makes them coincide better\n letterSpacing: 0.35,\n },\n labelWrapper: {\n // These styles will make sure that the label doesn't fill the available space\n // Otherwise it messes with the measurement of the label\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n icon: Platform.select({\n ios: {\n height: 21,\n width: 13,\n marginLeft: 8,\n marginRight: 22,\n marginVertical: 12,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n default: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n }),\n iconWithLabel:\n Platform.OS === 'ios'\n ? {\n marginRight: 6,\n }\n : {},\n iconMaskContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n },\n iconMaskFillerRect: {\n flex: 1,\n backgroundColor: '#000',\n },\n iconMask: {\n height: 21,\n width: 13,\n marginLeft: -14.5,\n marginVertical: 12,\n alignSelf: 'center',\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["HeaderBackButton.tsx"],"names":["useTheme","React","Animated","I18nManager","Image","Platform","StyleSheet","View","MaskedView","PlatformPressable","HeaderBackButton","disabled","allowFontScaling","backImage","label","labelStyle","labelVisible","onLabelLayout","onPress","pressColor","pressOpacity","screenLayout","tintColor","customTintColor","titleLayout","truncatedLabel","accessibilityLabel","testID","style","colors","initialLabelWidth","setInitialLabelWidth","useState","undefined","select","ios","primary","default","text","handleLabelLayout","e","nativeEvent","layout","x","width","shouldTruncateLabel","renderBackImage","styles","icon","Boolean","iconWithLabel","require","renderLabel","leftLabelText","labelElement","labelWrapper","minWidth","color","OS","iconMaskContainer","iconMask","iconMaskFillerRect","handlePress","requestAnimationFrame","borderless","container","top","right","bottom","left","create","alignItems","flexDirection","hairlineWidth","marginVertical","marginHorizontal","opacity","fontSize","letterSpacing","height","marginLeft","marginRight","resizeMode","transform","scaleX","isRTL","margin","flex","justifyContent","backgroundColor","alignSelf"],"mappings":"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","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n I18nManager,\n Image,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport MaskedView from '../MaskedView';\nimport PlatformPressable from '../PlatformPressable';\nimport type { HeaderBackButtonProps } from '../types';\n\nexport default function HeaderBackButton({\n disabled,\n allowFontScaling,\n backImage,\n label,\n labelStyle,\n labelVisible,\n onLabelLayout,\n onPress,\n pressColor,\n pressOpacity,\n screenLayout,\n tintColor: customTintColor,\n titleLayout,\n truncatedLabel = 'Back',\n accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',\n testID,\n style,\n}: HeaderBackButtonProps) {\n const { colors } = useTheme();\n\n const [initialLabelWidth, setInitialLabelWidth] = React.useState<\n undefined | number\n >(undefined);\n\n const tintColor =\n customTintColor !== undefined\n ? customTintColor\n : Platform.select({\n ios: colors.primary,\n default: colors.text,\n });\n\n const handleLabelLayout = (e: LayoutChangeEvent) => {\n onLabelLayout?.(e);\n\n setInitialLabelWidth(e.nativeEvent.layout.x + e.nativeEvent.layout.width);\n };\n\n const shouldTruncateLabel = () => {\n return (\n !label ||\n (initialLabelWidth &&\n titleLayout &&\n screenLayout &&\n (screenLayout.width - titleLayout.width) / 2 < initialLabelWidth + 26)\n );\n };\n\n const renderBackImage = () => {\n if (backImage) {\n return backImage({ tintColor });\n } else {\n return (\n <Image\n style={[\n styles.icon,\n Boolean(labelVisible) && styles.iconWithLabel,\n Boolean(tintColor) && { tintColor },\n ]}\n source={require('../assets/back-icon.png')}\n fadeDuration={0}\n />\n );\n }\n };\n\n const renderLabel = () => {\n const leftLabelText = shouldTruncateLabel() ? truncatedLabel : label;\n\n if (!labelVisible || leftLabelText === undefined) {\n return null;\n }\n\n const labelElement = (\n <View\n style={\n screenLayout\n ? // We make the button extend till the middle of the screen\n // Otherwise it appears to cut off when translating\n [styles.labelWrapper, { minWidth: screenLayout.width / 2 - 27 }]\n : null\n }\n >\n <Animated.Text\n accessible={false}\n onLayout={\n // This measurement is used to determine if we should truncate the label when it doesn't fit\n // Only measure it when label is not truncated because we want the measurement of full label\n leftLabelText === label ? handleLabelLayout : undefined\n }\n style={[\n styles.label,\n tintColor ? { color: tintColor } : null,\n labelStyle,\n ]}\n numberOfLines={1}\n allowFontScaling={!!allowFontScaling}\n >\n {leftLabelText}\n </Animated.Text>\n </View>\n );\n\n if (backImage || Platform.OS !== 'ios') {\n // When a custom backimage is specified, we can't mask the label\n // Otherwise there might be weird effect due to our mask not being the same as the image\n return labelElement;\n }\n\n return (\n <MaskedView\n maskElement={\n <View style={styles.iconMaskContainer}>\n <Image\n source={require('../assets/back-icon-mask.png')}\n style={styles.iconMask}\n />\n <View style={styles.iconMaskFillerRect} />\n </View>\n }\n >\n {labelElement}\n </MaskedView>\n );\n };\n\n const handlePress = () => onPress && requestAnimationFrame(onPress);\n\n return (\n <PlatformPressable\n disabled={disabled}\n accessible\n accessibilityRole=\"button\"\n accessibilityLabel={accessibilityLabel}\n testID={testID}\n onPress={disabled ? undefined : handlePress}\n pressColor={pressColor}\n pressOpacity={pressOpacity}\n android_ripple={{ borderless: true }}\n style={[styles.container, disabled && styles.disabled, style]}\n hitSlop={Platform.select({\n ios: undefined,\n default: { top: 16, right: 16, bottom: 16, left: 16 },\n })}\n >\n <React.Fragment>\n {renderBackImage()}\n {renderLabel()}\n </React.Fragment>\n </PlatformPressable>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n minWidth: StyleSheet.hairlineWidth, // Avoid collapsing when title is long\n ...Platform.select({\n ios: null,\n default: {\n marginVertical: 3,\n marginHorizontal: 11,\n },\n }),\n },\n disabled: {\n opacity: 0.5,\n },\n label: {\n fontSize: 17,\n // Title and back label are a bit different width due to title being bold\n // Adjusting the letterSpacing makes them coincide better\n letterSpacing: 0.35,\n },\n labelWrapper: {\n // These styles will make sure that the label doesn't fill the available space\n // Otherwise it messes with the measurement of the label\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n icon: Platform.select({\n ios: {\n height: 21,\n width: 13,\n marginLeft: 8,\n marginRight: 22,\n marginVertical: 12,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n default: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n }),\n iconWithLabel:\n Platform.OS === 'ios'\n ? {\n marginRight: 6,\n }\n : {},\n iconMaskContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n },\n iconMaskFillerRect: {\n flex: 1,\n backgroundColor: '#000',\n },\n iconMask: {\n height: 21,\n width: 13,\n marginLeft: -14.5,\n marginVertical: 12,\n alignSelf: 'center',\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n});\n"]}
|
|
@@ -3,10 +3,11 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
3
3
|
import { useTheme } from '@react-navigation/native';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { Animated, Platform, StyleSheet } from 'react-native';
|
|
6
|
-
export default function HeaderBackground({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export default function HeaderBackground(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
style,
|
|
9
|
+
...rest
|
|
10
|
+
} = _ref;
|
|
10
11
|
const {
|
|
11
12
|
colors
|
|
12
13
|
} = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeaderBackground.tsx"],"names":["useTheme","React","Animated","Platform","StyleSheet","HeaderBackground","style","rest","colors","styles","container","backgroundColor","card","borderBottomColor","border","shadowColor","create","flex","select","android","elevation","ios","shadowOpacity","shadowRadius","shadowOffset","width","height","hairlineWidth","default","borderBottomWidth"],"mappings":";;AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SACEC,QADF,EAEEC,QAFF,EAIEC,UAJF,QAOO,cAPP;AAcA,eAAe,SAASC,gBAAT,
|
|
1
|
+
{"version":3,"sources":["HeaderBackground.tsx"],"names":["useTheme","React","Animated","Platform","StyleSheet","HeaderBackground","style","rest","colors","styles","container","backgroundColor","card","borderBottomColor","border","shadowColor","create","flex","select","android","elevation","ios","shadowOpacity","shadowRadius","shadowOffset","width","height","hairlineWidth","default","borderBottomWidth"],"mappings":";;AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SACEC,QADF,EAEEC,QAFF,EAIEC,UAJF,QAOO,cAPP;AAcA,eAAe,SAASC,gBAAT,OAAqD;AAAA,MAA3B;AAAEC,IAAAA,KAAF;AAAS,OAAGC;AAAZ,GAA2B;AAClE,QAAM;AAAEC,IAAAA;AAAF,MAAaR,QAAQ,EAA3B;AAEA,sBACE,oBAAC,QAAD,CAAU,IAAV;AACE,IAAA,KAAK,EAAE,CACLS,MAAM,CAACC,SADF,EAEL;AACEC,MAAAA,eAAe,EAAEH,MAAM,CAACI,IAD1B;AAEEC,MAAAA,iBAAiB,EAAEL,MAAM,CAACM,MAF5B;AAGEC,MAAAA,WAAW,EAAEP,MAAM,CAACM;AAHtB,KAFK,EAOLR,KAPK;AADT,KAUMC,IAVN,EADF;AAcD;AAED,MAAME,MAAM,GAAGL,UAAU,CAACY,MAAX,CAAkB;AAC/BN,EAAAA,SAAS,EAAE;AACTO,IAAAA,IAAI,EAAE,CADG;AAET,OAAGd,QAAQ,CAACe,MAAT,CAAgB;AACjBC,MAAAA,OAAO,EAAE;AACPC,QAAAA,SAAS,EAAE;AADJ,OADQ;AAIjBC,MAAAA,GAAG,EAAE;AACHC,QAAAA,aAAa,EAAE,IADZ;AAEHC,QAAAA,YAAY,EAAE,CAFX;AAGHC,QAAAA,YAAY,EAAE;AACZC,UAAAA,KAAK,EAAE,CADK;AAEZC,UAAAA,MAAM,EAAEtB,UAAU,CAACuB;AAFP;AAHX,OAJY;AAYjBC,MAAAA,OAAO,EAAE;AACPC,QAAAA,iBAAiB,EAAEzB,UAAU,CAACuB;AADvB;AAZQ,KAAhB;AAFM;AADoB,CAAlB,CAAf","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n ViewProps,\n ViewStyle,\n} from 'react-native';\n\ntype Props = ViewProps & {\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n children?: React.ReactNode;\n};\n\nexport default function HeaderBackground({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n <Animated.View\n style={[\n styles.container,\n {\n backgroundColor: colors.card,\n borderBottomColor: colors.border,\n shadowColor: colors.border,\n },\n style,\n ]}\n {...rest}\n />\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowOpacity: 0.85,\n shadowRadius: 0,\n shadowOffset: {\n width: 0,\n height: StyleSheet.hairlineWidth,\n },\n },\n default: {\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n }),\n },\n});\n"]}
|
|
@@ -3,11 +3,12 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
3
3
|
import { useTheme } from '@react-navigation/native';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { Animated, Platform, StyleSheet } from 'react-native';
|
|
6
|
-
export default function HeaderTitle({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
export default function HeaderTitle(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
tintColor,
|
|
9
|
+
style,
|
|
10
|
+
...rest
|
|
11
|
+
} = _ref;
|
|
11
12
|
const {
|
|
12
13
|
colors
|
|
13
14
|
} = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeaderTitle.tsx"],"names":["useTheme","React","Animated","Platform","StyleSheet","HeaderTitle","tintColor","style","rest","colors","styles","title","color","undefined","text","create","select","ios","fontSize","fontWeight","android","fontFamily","default"],"mappings":";;AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SACEC,QADF,EAEEC,QAFF,EAIEC,UAJF,QAOO,cAPP;AAeA,eAAe,SAASC,WAAT,
|
|
1
|
+
{"version":3,"sources":["HeaderTitle.tsx"],"names":["useTheme","React","Animated","Platform","StyleSheet","HeaderTitle","tintColor","style","rest","colors","styles","title","color","undefined","text","create","select","ios","fontSize","fontWeight","android","fontFamily","default"],"mappings":";;AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SACEC,QADF,EAEEC,QAFF,EAIEC,UAJF,QAOO,cAPP;AAeA,eAAe,SAASC,WAAT,OAA2D;AAAA,MAAtC;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,KAAb;AAAoB,OAAGC;AAAvB,GAAsC;AACxE,QAAM;AAAEC,IAAAA;AAAF,MAAaT,QAAQ,EAA3B;AAEA,sBACE,oBAAC,QAAD,CAAU,IAAV;AACE,IAAA,iBAAiB,EAAC,QADpB;AAEE,kBAAW,GAFb;AAGE,IAAA,aAAa,EAAE;AAHjB,KAIMQ,IAJN;AAKE,IAAA,KAAK,EAAE,CACLE,MAAM,CAACC,KADF,EAEL;AAAEC,MAAAA,KAAK,EAAEN,SAAS,KAAKO,SAAd,GAA0BJ,MAAM,CAACK,IAAjC,GAAwCR;AAAjD,KAFK,EAGLC,KAHK;AALT,KADF;AAaD;AAED,MAAMG,MAAM,GAAGN,UAAU,CAACW,MAAX,CAAkB;AAC/BJ,EAAAA,KAAK,EAAER,QAAQ,CAACa,MAAT,CAAgB;AACrBC,IAAAA,GAAG,EAAE;AACHC,MAAAA,QAAQ,EAAE,EADP;AAEHC,MAAAA,UAAU,EAAE;AAFT,KADgB;AAKrBC,IAAAA,OAAO,EAAE;AACPF,MAAAA,QAAQ,EAAE,EADH;AAEPG,MAAAA,UAAU,EAAE,mBAFL;AAGPF,MAAAA,UAAU,EAAE;AAHL,KALY;AAUrBG,IAAAA,OAAO,EAAE;AACPJ,MAAAA,QAAQ,EAAE,EADH;AAEPC,MAAAA,UAAU,EAAE;AAFL;AAVY,GAAhB;AADwB,CAAlB,CAAf","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n TextProps,\n TextStyle,\n} from 'react-native';\n\ntype Props = Omit<TextProps, 'style'> & {\n tintColor?: string;\n children?: string;\n style?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;\n};\n\nexport default function HeaderTitle({ tintColor, style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n <Animated.Text\n accessibilityRole=\"header\"\n aria-level=\"1\"\n numberOfLines={1}\n {...rest}\n style={[\n styles.title,\n { color: tintColor === undefined ? colors.text : tintColor },\n style,\n ]}\n />\n );\n}\n\nconst styles = StyleSheet.create({\n title: Platform.select({\n ios: {\n fontSize: 17,\n fontWeight: '600',\n },\n android: {\n fontSize: 20,\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal',\n },\n default: {\n fontSize: 18,\n fontWeight: '500',\n },\n }),\n});\n"]}
|
|
@@ -4,7 +4,7 @@ export default function getDefaultHeaderHeight(layout, modalPresentation, status
|
|
|
4
4
|
const isLandscape = layout.width > layout.height;
|
|
5
5
|
|
|
6
6
|
if (Platform.OS === 'ios') {
|
|
7
|
-
if (Platform.isPad) {
|
|
7
|
+
if (Platform.isPad || Platform.isTVOS) {
|
|
8
8
|
if (modalPresentation) {
|
|
9
9
|
headerHeight = 56;
|
|
10
10
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["getDefaultHeaderHeight.tsx"],"names":["Platform","getDefaultHeaderHeight","layout","modalPresentation","statusBarHeight","headerHeight","isLandscape","width","height","OS","isPad"],"mappings":"AAAA,SAASA,QAAT,QAAyB,cAAzB;AAIA,eAAe,SAASC,sBAAT,CACbC,MADa,EAEbC,iBAFa,EAGbC,eAHa,EAIL;AACR,MAAIC,YAAJ;AAEA,QAAMC,WAAW,GAAGJ,MAAM,CAACK,KAAP,GAAeL,MAAM,CAACM,MAA1C;;AAEA,MAAIR,QAAQ,CAACS,EAAT,KAAgB,KAApB,EAA2B;AACzB,QAAIT,QAAQ,CAACU,
|
|
1
|
+
{"version":3,"sources":["getDefaultHeaderHeight.tsx"],"names":["Platform","getDefaultHeaderHeight","layout","modalPresentation","statusBarHeight","headerHeight","isLandscape","width","height","OS","isPad","isTVOS"],"mappings":"AAAA,SAASA,QAAT,QAAyB,cAAzB;AAIA,eAAe,SAASC,sBAAT,CACbC,MADa,EAEbC,iBAFa,EAGbC,eAHa,EAIL;AACR,MAAIC,YAAJ;AAEA,QAAMC,WAAW,GAAGJ,MAAM,CAACK,KAAP,GAAeL,MAAM,CAACM,MAA1C;;AAEA,MAAIR,QAAQ,CAACS,EAAT,KAAgB,KAApB,EAA2B;AACzB,QAAIT,QAAQ,CAACU,KAAT,IAAkBV,QAAQ,CAACW,MAA/B,EAAuC;AACrC,UAAIR,iBAAJ,EAAuB;AACrBE,QAAAA,YAAY,GAAG,EAAf;AACD,OAFD,MAEO;AACLA,QAAAA,YAAY,GAAG,EAAf;AACD;AACF,KAND,MAMO;AACL,UAAIC,WAAJ,EAAiB;AACfD,QAAAA,YAAY,GAAG,EAAf;AACD,OAFD,MAEO;AACL,YAAIF,iBAAJ,EAAuB;AACrBE,UAAAA,YAAY,GAAG,EAAf;AACD,SAFD,MAEO;AACLA,UAAAA,YAAY,GAAG,EAAf;AACD;AACF;AACF;AACF,GAlBD,MAkBO,IAAIL,QAAQ,CAACS,EAAT,KAAgB,SAApB,EAA+B;AACpCJ,IAAAA,YAAY,GAAG,EAAf;AACD,GAFM,MAEA;AACLA,IAAAA,YAAY,GAAG,EAAf;AACD;;AAED,SAAOA,YAAY,GAAGD,eAAtB;AACD","sourcesContent":["import { Platform } from 'react-native';\n\nimport type { Layout } from '../types';\n\nexport default function getDefaultHeaderHeight(\n layout: Layout,\n modalPresentation: boolean,\n statusBarHeight: number\n): number {\n let headerHeight;\n\n const isLandscape = layout.width > layout.height;\n\n if (Platform.OS === 'ios') {\n if (Platform.isPad || Platform.isTVOS) {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 50;\n }\n } else {\n if (isLandscape) {\n headerHeight = 32;\n } else {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 44;\n }\n }\n }\n } else if (Platform.OS === 'android') {\n headerHeight = 56;\n } else {\n headerHeight = 64;\n }\n\n return headerHeight + statusBarHeight;\n}\n"]}
|
package/lib/module/MaskedView.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Use a stub for MaskedView on all Platforms that don't support it.
|
|
3
3
|
*/
|
|
4
|
-
export default function MaskedView({
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export default function MaskedView(_ref) {
|
|
5
|
+
let {
|
|
6
|
+
children
|
|
7
|
+
} = _ref;
|
|
7
8
|
return children;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=MaskedView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MaskedView.tsx"],"names":["MaskedView","children"],"mappings":"AAAA;AACA;AACA;AAQA,eAAe,SAASA,UAAT,
|
|
1
|
+
{"version":3,"sources":["MaskedView.tsx"],"names":["MaskedView","children"],"mappings":"AAAA;AACA;AACA;AAQA,eAAe,SAASA,UAAT,OAAyC;AAAA,MAArB;AAAEC,IAAAA;AAAF,GAAqB;AACtD,SAAOA,QAAP;AACD","sourcesContent":["/**\n * Use a stub for MaskedView on all Platforms that don't support it.\n */\nimport type * as React from 'react';\n\ntype Props = {\n maskElement: React.ReactElement;\n children: React.ReactElement;\n};\n\nexport default function MaskedView({ children }: Props) {\n return children;\n}\n"]}
|
|
@@ -13,10 +13,12 @@ try {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
const isMaskedViewAvailable = UIManager.getViewManagerConfig('RNCMaskedView') != null;
|
|
16
|
-
export default function MaskedView({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
export default function MaskedView(_ref) {
|
|
17
|
+
let {
|
|
18
|
+
children,
|
|
19
|
+
...rest
|
|
20
|
+
} = _ref;
|
|
21
|
+
|
|
20
22
|
if (isMaskedViewAvailable && RNCMaskedView) {
|
|
21
23
|
return /*#__PURE__*/React.createElement(RNCMaskedView, rest, children);
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MaskedViewNative.tsx"],"names":["React","UIManager","RNCMaskedView","require","default","e","isMaskedViewAvailable","getViewManagerConfig","MaskedView","children","rest"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,SAAT,QAA0B,cAA1B;AASA,IAAIC,aAAJ;;AAEA,IAAI;AACF;AACA;AACAA,EAAAA,aAAa,GAAGC,OAAO,CAAC,uCAAD,CAAP,CAAiDC,OAAjE;AACD,CAJD,CAIE,OAAOC,CAAP,EAAU,CACV;AACD;;AAED,MAAMC,qBAAqB,GACzBL,SAAS,CAACM,oBAAV,CAA+B,eAA/B,KAAmD,IADrD;AAGA,eAAe,SAASC,UAAT,
|
|
1
|
+
{"version":3,"sources":["MaskedViewNative.tsx"],"names":["React","UIManager","RNCMaskedView","require","default","e","isMaskedViewAvailable","getViewManagerConfig","MaskedView","children","rest"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,SAAT,QAA0B,cAA1B;AASA,IAAIC,aAAJ;;AAEA,IAAI;AACF;AACA;AACAA,EAAAA,aAAa,GAAGC,OAAO,CAAC,uCAAD,CAAP,CAAiDC,OAAjE;AACD,CAJD,CAIE,OAAOC,CAAP,EAAU,CACV;AACD;;AAED,MAAMC,qBAAqB,GACzBL,SAAS,CAACM,oBAAV,CAA+B,eAA/B,KAAmD,IADrD;AAGA,eAAe,SAASC,UAAT,OAAkD;AAAA,MAA9B;AAAEC,IAAAA,QAAF;AAAY,OAAGC;AAAf,GAA8B;;AAC/D,MAAIJ,qBAAqB,IAAIJ,aAA7B,EAA4C;AAC1C,wBAAO,oBAAC,aAAD,EAAmBQ,IAAnB,EAA0BD,QAA1B,CAAP;AACD;;AAED,SAAOA,QAAP;AACD","sourcesContent":["/**\n * The native MaskedView that we explicitly re-export for supported platforms: Android, iOS.\n */\nimport * as React from 'react';\nimport { UIManager } from 'react-native';\n\ntype MaskedViewType =\n typeof import('@react-native-masked-view/masked-view').default;\n\ntype Props = React.ComponentProps<MaskedViewType> & {\n children: React.ReactElement;\n};\n\nlet RNCMaskedView: MaskedViewType | undefined;\n\ntry {\n // Add try/catch to support usage even if it's not installed, since it's optional.\n // Newer versions of Metro will handle it properly.\n RNCMaskedView = require('@react-native-masked-view/masked-view').default;\n} catch (e) {\n // Ignore\n}\n\nconst isMaskedViewAvailable =\n UIManager.getViewManagerConfig('RNCMaskedView') != null;\n\nexport default function MaskedView({ children, ...rest }: Props) {\n if (isMaskedViewAvailable && RNCMaskedView) {\n return <RNCMaskedView {...rest}>{children}</RNCMaskedView>;\n }\n\n return children;\n}\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { StyleSheet, Text } from 'react-native';
|
|
3
|
-
export default function MissingIcon({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
export default function MissingIcon(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
color,
|
|
6
|
+
size,
|
|
7
|
+
style
|
|
8
|
+
} = _ref;
|
|
8
9
|
return /*#__PURE__*/React.createElement(Text, {
|
|
9
10
|
style: [styles.icon, {
|
|
10
11
|
color,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MissingIcon.tsx"],"names":["React","StyleSheet","Text","MissingIcon","color","size","style","styles","icon","fontSize","create","backgroundColor"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAAoBC,UAApB,EAAgCC,IAAhC,QAAuD,cAAvD;AAQA,eAAe,SAASC,WAAT,
|
|
1
|
+
{"version":3,"sources":["MissingIcon.tsx"],"names":["React","StyleSheet","Text","MissingIcon","color","size","style","styles","icon","fontSize","create","backgroundColor"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAAoBC,UAApB,EAAgCC,IAAhC,QAAuD,cAAvD;AAQA,eAAe,SAASC,WAAT,OAAoD;AAAA,MAA/B;AAAEC,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeC,IAAAA;AAAf,GAA+B;AACjE,sBAAO,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE,CAACC,MAAM,CAACC,IAAR,EAAc;AAAEJ,MAAAA,KAAF;AAASK,MAAAA,QAAQ,EAAEJ;AAAnB,KAAd,EAAyCC,KAAzC;AAAb,cAAP;AACD;AAED,MAAMC,MAAM,GAAGN,UAAU,CAACS,MAAX,CAAkB;AAC/BF,EAAAA,IAAI,EAAE;AACJG,IAAAA,eAAe,EAAE;AADb;AADyB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport { StyleProp, StyleSheet, Text, TextStyle } from 'react-native';\n\ntype Props = {\n color?: string;\n size?: number;\n style?: StyleProp<TextStyle>;\n};\n\nexport default function MissingIcon({ color, size, style }: Props) {\n return <Text style={[styles.icon, { color, fontSize: size }, style]}>⏷</Text>;\n}\n\nconst styles = StyleSheet.create({\n icon: {\n backgroundColor: 'transparent',\n },\n});\n"]}
|
|
@@ -10,15 +10,16 @@ const ANDROID_SUPPORTS_RIPPLE = Platform.OS === 'android' && Platform.Version >=
|
|
|
10
10
|
* PlatformPressable provides an abstraction on top of Pressable to handle platform differences.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
export default function PlatformPressable({
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
export default function PlatformPressable(_ref) {
|
|
14
|
+
let {
|
|
15
|
+
onPressIn,
|
|
16
|
+
onPressOut,
|
|
17
|
+
android_ripple,
|
|
18
|
+
pressColor,
|
|
19
|
+
pressOpacity = 0.3,
|
|
20
|
+
style,
|
|
21
|
+
...rest
|
|
22
|
+
} = _ref;
|
|
22
23
|
const {
|
|
23
24
|
dark
|
|
24
25
|
} = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PlatformPressable.tsx"],"names":["useTheme","React","Animated","Easing","Platform","Pressable","AnimatedPressable","createAnimatedComponent","ANDROID_VERSION_LOLLIPOP","ANDROID_SUPPORTS_RIPPLE","OS","Version","PlatformPressable","onPressIn","onPressOut","android_ripple","pressColor","pressOpacity","style","rest","dark","opacity","useState","Value","animateTo","toValue","duration","timing","easing","inOut","quad","useNativeDriver","start","handlePressIn","e","handlePressOut","color","undefined"],"mappings":";;AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SACEC,QADF,EAEEC,MAFF,EAIEC,QAJF,EAKEC,SALF,QASO,cATP;AAkBA,MAAMC,iBAAiB,GAAGJ,QAAQ,CAACK,uBAAT,CAAiCF,SAAjC,CAA1B;AAEA,MAAMG,wBAAwB,GAAG,EAAjC;AACA,MAAMC,uBAAuB,GAC3BL,QAAQ,CAACM,EAAT,KAAgB,SAAhB,IAA6BN,QAAQ,CAACO,OAAT,IAAoBH,wBADnD;AAGA;AACA;AACA;;AACA,eAAe,SAASI,iBAAT,
|
|
1
|
+
{"version":3,"sources":["PlatformPressable.tsx"],"names":["useTheme","React","Animated","Easing","Platform","Pressable","AnimatedPressable","createAnimatedComponent","ANDROID_VERSION_LOLLIPOP","ANDROID_SUPPORTS_RIPPLE","OS","Version","PlatformPressable","onPressIn","onPressOut","android_ripple","pressColor","pressOpacity","style","rest","dark","opacity","useState","Value","animateTo","toValue","duration","timing","easing","inOut","quad","useNativeDriver","start","handlePressIn","e","handlePressOut","color","undefined"],"mappings":";;AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SACEC,QADF,EAEEC,MAFF,EAIEC,QAJF,EAKEC,SALF,QASO,cATP;AAkBA,MAAMC,iBAAiB,GAAGJ,QAAQ,CAACK,uBAAT,CAAiCF,SAAjC,CAA1B;AAEA,MAAMG,wBAAwB,GAAG,EAAjC;AACA,MAAMC,uBAAuB,GAC3BL,QAAQ,CAACM,EAAT,KAAgB,SAAhB,IAA6BN,QAAQ,CAACO,OAAT,IAAoBH,wBADnD;AAGA;AACA;AACA;;AACA,eAAe,SAASI,iBAAT,OAQL;AAAA,MARgC;AACxCC,IAAAA,SADwC;AAExCC,IAAAA,UAFwC;AAGxCC,IAAAA,cAHwC;AAIxCC,IAAAA,UAJwC;AAKxCC,IAAAA,YAAY,GAAG,GALyB;AAMxCC,IAAAA,KANwC;AAOxC,OAAGC;AAPqC,GAQhC;AACR,QAAM;AAAEC,IAAAA;AAAF,MAAWpB,QAAQ,EAAzB;AACA,QAAM,CAACqB,OAAD,IAAYpB,KAAK,CAACqB,QAAN,CAAe,MAAM,IAAIpB,QAAQ,CAACqB,KAAb,CAAmB,CAAnB,CAArB,CAAlB;;AAEA,QAAMC,SAAS,GAAG,CAACC,OAAD,EAAkBC,QAAlB,KAAuC;AACvD,QAAIjB,uBAAJ,EAA6B;AAC3B;AACD;;AAEDP,IAAAA,QAAQ,CAACyB,MAAT,CAAgBN,OAAhB,EAAyB;AACvBI,MAAAA,OADuB;AAEvBC,MAAAA,QAFuB;AAGvBE,MAAAA,MAAM,EAAEzB,MAAM,CAAC0B,KAAP,CAAa1B,MAAM,CAAC2B,IAApB,CAHe;AAIvBC,MAAAA,eAAe,EAAE;AAJM,KAAzB,EAKGC,KALH;AAMD,GAXD;;AAaA,QAAMC,aAAa,GAAIC,CAAD,IAA8B;AAClDV,IAAAA,SAAS,CAACP,YAAD,EAAe,CAAf,CAAT;AACAJ,IAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGqB,CAAH,CAAT;AACD,GAHD;;AAKA,QAAMC,cAAc,GAAID,CAAD,IAA8B;AACnDV,IAAAA,SAAS,CAAC,CAAD,EAAI,GAAJ,CAAT;AACAV,IAAAA,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAGoB,CAAH,CAAV;AACD,GAHD;;AAKA,sBACE,oBAAC,iBAAD;AACE,IAAA,SAAS,EAAED,aADb;AAEE,IAAA,UAAU,EAAEE,cAFd;AAGE,IAAA,cAAc,EACZ1B,uBAAuB,GACnB;AACE2B,MAAAA,KAAK,EACHpB,UAAU,KAAKqB,SAAf,GACIrB,UADJ,GAEII,IAAI,GACJ,0BADI,GAEJ,oBANR;AAOE,SAAGL;AAPL,KADmB,GAUnBsB,SAdR;AAgBE,IAAA,KAAK,EAAE,CAAC;AAAEhB,MAAAA,OAAO,EAAE,CAACZ,uBAAD,GAA2BY,OAA3B,GAAqC;AAAhD,KAAD,EAAsDH,KAAtD;AAhBT,KAiBMC,IAjBN,EADF;AAqBD","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Easing,\n GestureResponderEvent,\n Platform,\n Pressable,\n PressableProps,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nexport type Props = Omit<PressableProps, 'style'> & {\n pressColor?: string;\n pressOpacity?: number;\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n children: React.ReactNode;\n};\n\nconst AnimatedPressable = Animated.createAnimatedComponent(Pressable);\n\nconst ANDROID_VERSION_LOLLIPOP = 21;\nconst ANDROID_SUPPORTS_RIPPLE =\n Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;\n\n/**\n * PlatformPressable provides an abstraction on top of Pressable to handle platform differences.\n */\nexport default function PlatformPressable({\n onPressIn,\n onPressOut,\n android_ripple,\n pressColor,\n pressOpacity = 0.3,\n style,\n ...rest\n}: Props) {\n const { dark } = useTheme();\n const [opacity] = React.useState(() => new Animated.Value(1));\n\n const animateTo = (toValue: number, duration: number) => {\n if (ANDROID_SUPPORTS_RIPPLE) {\n return;\n }\n\n Animated.timing(opacity, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true,\n }).start();\n };\n\n const handlePressIn = (e: GestureResponderEvent) => {\n animateTo(pressOpacity, 0);\n onPressIn?.(e);\n };\n\n const handlePressOut = (e: GestureResponderEvent) => {\n animateTo(1, 200);\n onPressOut?.(e);\n };\n\n return (\n <AnimatedPressable\n onPressIn={handlePressIn}\n onPressOut={handlePressOut}\n android_ripple={\n ANDROID_SUPPORTS_RIPPLE\n ? {\n color:\n pressColor !== undefined\n ? pressColor\n : dark\n ? 'rgba(255, 255, 255, .32)'\n : 'rgba(0, 0, 0, .32)',\n ...android_ripple,\n }\n : undefined\n }\n style={[{ opacity: !ANDROID_SUPPORTS_RIPPLE ? opacity : 1 }, style]}\n {...rest}\n />\n );\n}\n"]}
|
|
@@ -4,12 +4,14 @@ import * as React from 'react';
|
|
|
4
4
|
import { Platform, StyleSheet, View } from 'react-native';
|
|
5
5
|
const FAR_FAR_AWAY = 30000; // this should be big enough to move the whole view out of its container
|
|
6
6
|
|
|
7
|
-
export default function ResourceSavingScene({
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export default function ResourceSavingScene(_ref) {
|
|
8
|
+
let {
|
|
9
|
+
visible,
|
|
10
|
+
children,
|
|
11
|
+
style,
|
|
12
|
+
...rest
|
|
13
|
+
} = _ref;
|
|
14
|
+
|
|
13
15
|
if (Platform.OS === 'web') {
|
|
14
16
|
return /*#__PURE__*/React.createElement(View // @ts-expect-error: hidden exists on web, but not in React Native
|
|
15
17
|
, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ResourceSavingView.tsx"],"names":["React","Platform","StyleSheet","View","FAR_FAR_AWAY","ResourceSavingScene","visible","children","style","rest","OS","display","styles","container","attached","detached","create","flex","overflow","top"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,EAA8BC,UAA9B,EAA0CC,IAA1C,QAAiE,cAAjE;AAQA,MAAMC,YAAY,GAAG,KAArB,C,CAA4B;;AAE5B,eAAe,SAASC,mBAAT,
|
|
1
|
+
{"version":3,"sources":["ResourceSavingView.tsx"],"names":["React","Platform","StyleSheet","View","FAR_FAR_AWAY","ResourceSavingScene","visible","children","style","rest","OS","display","styles","container","attached","detached","create","flex","overflow","top"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,EAA8BC,UAA9B,EAA0CC,IAA1C,QAAiE,cAAjE;AAQA,MAAMC,YAAY,GAAG,KAArB,C,CAA4B;;AAE5B,eAAe,SAASC,mBAAT,OAKL;AAAA,MALkC;AAC1CC,IAAAA,OAD0C;AAE1CC,IAAAA,QAF0C;AAG1CC,IAAAA,KAH0C;AAI1C,OAAGC;AAJuC,GAKlC;;AACR,MAAIR,QAAQ,CAACS,EAAT,KAAgB,KAApB,EAA2B;AACzB,wBACE,oBAAC,IAAD,CACE;AADF;AAEE,MAAA,MAAM,EAAE,CAACJ,OAFX;AAGE,MAAA,KAAK,EAAE,CACL;AAAEK,QAAAA,OAAO,EAAEL,OAAO,GAAG,MAAH,GAAY;AAA9B,OADK,EAELM,MAAM,CAACC,SAFF,EAGLL,KAHK,CAHT;AAQE,MAAA,aAAa,EAAEF,OAAO,GAAG,MAAH,GAAY;AARpC,OASMG,IATN,GAWGF,QAXH,CADF;AAeD;;AAED,sBACE,oBAAC,IAAD;AACE,IAAA,KAAK,EAAE,CAACK,MAAM,CAACC,SAAR,EAAmBL,KAAnB,CADT,CAEE;AAFF;AAGE,IAAA,aAAa,EAAEF,OAAO,GAAG,MAAH,GAAY;AAHpC,kBAKE,oBAAC,IAAD;AACE,IAAA,WAAW,EAAE,KADf;AAEE,IAAA,qBAAqB,EACnB;AACA;AACAL,IAAAA,QAAQ,CAACS,EAAT,KAAgB,KAAhB,IAAyBT,QAAQ,CAACS,EAAT,KAAgB,OAAzC,GAAmD,CAACJ,OAApD,GAA8D,IALlE;AAOE,IAAA,aAAa,EAAEA,OAAO,GAAG,MAAH,GAAY,MAPpC;AAQE,IAAA,KAAK,EAAEA,OAAO,GAAGM,MAAM,CAACE,QAAV,GAAqBF,MAAM,CAACG;AAR5C,KAUGR,QAVH,CALF,CADF;AAoBD;AAED,MAAMK,MAAM,GAAGV,UAAU,CAACc,MAAX,CAAkB;AAC/BH,EAAAA,SAAS,EAAE;AACTI,IAAAA,IAAI,EAAE,CADG;AAETC,IAAAA,QAAQ,EAAE;AAFD,GADoB;AAK/BJ,EAAAA,QAAQ,EAAE;AACRG,IAAAA,IAAI,EAAE;AADE,GALqB;AAQ/BF,EAAAA,QAAQ,EAAE;AACRE,IAAAA,IAAI,EAAE,CADE;AAERE,IAAAA,GAAG,EAAEf;AAFG;AARqB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport { Platform, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\ntype Props = {\n visible: boolean;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nconst FAR_FAR_AWAY = 30000; // this should be big enough to move the whole view out of its container\n\nexport default function ResourceSavingScene({\n visible,\n children,\n style,\n ...rest\n}: Props) {\n if (Platform.OS === 'web') {\n return (\n <View\n // @ts-expect-error: hidden exists on web, but not in React Native\n hidden={!visible}\n style={[\n { display: visible ? 'flex' : 'none' },\n styles.container,\n style,\n ]}\n pointerEvents={visible ? 'auto' : 'none'}\n {...rest}\n >\n {children}\n </View>\n );\n }\n\n return (\n <View\n style={[styles.container, style]}\n // box-none doesn't seem to work properly on Android\n pointerEvents={visible ? 'auto' : 'none'}\n >\n <View\n collapsable={false}\n removeClippedSubviews={\n // On iOS & macOS, set removeClippedSubviews to true only when not focused\n // This is an workaround for a bug where the clipped view never re-appears\n Platform.OS === 'ios' || Platform.OS === 'macos' ? !visible : true\n }\n pointerEvents={visible ? 'auto' : 'none'}\n style={visible ? styles.attached : styles.detached}\n >\n {children}\n </View>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden',\n },\n attached: {\n flex: 1,\n },\n detached: {\n flex: 1,\n top: FAR_FAR_AWAY,\n },\n});\n"]}
|
|
@@ -22,10 +22,11 @@ const initialMetrics = Platform.OS === 'web' || initialWindowMetrics == null ? {
|
|
|
22
22
|
bottom: 0
|
|
23
23
|
}
|
|
24
24
|
} : initialWindowMetrics;
|
|
25
|
-
export default function SafeAreaProviderCompat({
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
export default function SafeAreaProviderCompat(_ref) {
|
|
26
|
+
let {
|
|
27
|
+
children,
|
|
28
|
+
style
|
|
29
|
+
} = _ref;
|
|
29
30
|
return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, insets => {
|
|
30
31
|
if (insets) {
|
|
31
32
|
// If we already have insets, don't wrap the stack in another safe area provider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SafeAreaProviderCompat.tsx"],"names":["React","Dimensions","Platform","StyleSheet","View","initialWindowMetrics","SafeAreaInsetsContext","SafeAreaProvider","width","height","get","initialMetrics","OS","frame","x","y","insets","top","left","right","bottom","SafeAreaProviderCompat","children","style","styles","container","create","flex"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,UADF,EAEEC,QAFF,EAIEC,UAJF,EAKEC,IALF,QAOO,cAPP;AAQA,SACEC,oBADF,EAEEC,qBAFF,EAGEC,gBAHF,QAIO,gCAJP;AAWA,MAAM;AAAEC,EAAAA,KAAK,GAAG,CAAV;AAAaC,EAAAA,MAAM,GAAG;AAAtB,IAA4BR,UAAU,CAACS,GAAX,CAAe,QAAf,CAAlC,C,CAEA;AACA;AACA;;AACA,MAAMC,cAAc,GAClBT,QAAQ,CAACU,EAAT,KAAgB,KAAhB,IAAyBP,oBAAoB,IAAI,IAAjD,GACI;AACEQ,EAAAA,KAAK,EAAE;AAAEC,IAAAA,CAAC,EAAE,CAAL;AAAQC,IAAAA,CAAC,EAAE,CAAX;AAAcP,IAAAA,KAAd;AAAqBC,IAAAA;AAArB,GADT;AAEEO,EAAAA,MAAM,EAAE;AAAEC,IAAAA,GAAG,EAAE,CAAP;AAAUC,IAAAA,IAAI,EAAE,CAAhB;AAAmBC,IAAAA,KAAK,EAAE,CAA1B;AAA6BC,IAAAA,MAAM,EAAE;AAArC;AAFV,CADJ,GAKIf,oBANN;AAQA,eAAe,SAASgB,sBAAT,
|
|
1
|
+
{"version":3,"sources":["SafeAreaProviderCompat.tsx"],"names":["React","Dimensions","Platform","StyleSheet","View","initialWindowMetrics","SafeAreaInsetsContext","SafeAreaProvider","width","height","get","initialMetrics","OS","frame","x","y","insets","top","left","right","bottom","SafeAreaProviderCompat","children","style","styles","container","create","flex"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,UADF,EAEEC,QAFF,EAIEC,UAJF,EAKEC,IALF,QAOO,cAPP;AAQA,SACEC,oBADF,EAEEC,qBAFF,EAGEC,gBAHF,QAIO,gCAJP;AAWA,MAAM;AAAEC,EAAAA,KAAK,GAAG,CAAV;AAAaC,EAAAA,MAAM,GAAG;AAAtB,IAA4BR,UAAU,CAACS,GAAX,CAAe,QAAf,CAAlC,C,CAEA;AACA;AACA;;AACA,MAAMC,cAAc,GAClBT,QAAQ,CAACU,EAAT,KAAgB,KAAhB,IAAyBP,oBAAoB,IAAI,IAAjD,GACI;AACEQ,EAAAA,KAAK,EAAE;AAAEC,IAAAA,CAAC,EAAE,CAAL;AAAQC,IAAAA,CAAC,EAAE,CAAX;AAAcP,IAAAA,KAAd;AAAqBC,IAAAA;AAArB,GADT;AAEEO,EAAAA,MAAM,EAAE;AAAEC,IAAAA,GAAG,EAAE,CAAP;AAAUC,IAAAA,IAAI,EAAE,CAAhB;AAAmBC,IAAAA,KAAK,EAAE,CAA1B;AAA6BC,IAAAA,MAAM,EAAE;AAArC;AAFV,CADJ,GAKIf,oBANN;AAQA,eAAe,SAASgB,sBAAT,OAA4D;AAAA,MAA5B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA4B;AACzE,sBACE,oBAAC,qBAAD,CAAuB,QAAvB,QACIP,MAAD,IAAY;AACX,QAAIA,MAAJ,EAAY;AACV;AACA;AACA;AACA,0BAAO,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE,CAACQ,MAAM,CAACC,SAAR,EAAmBF,KAAnB;AAAb,SAAyCD,QAAzC,CAAP;AACD;;AAED,wBACE,oBAAC,gBAAD;AAAkB,MAAA,cAAc,EAAEX,cAAlC;AAAkD,MAAA,KAAK,EAAEY;AAAzD,OACGD,QADH,CADF;AAKD,GAdH,CADF;AAkBD;AAEDD,sBAAsB,CAACV,cAAvB,GAAwCA,cAAxC;AAEA,MAAMa,MAAM,GAAGrB,UAAU,CAACuB,MAAX,CAAkB;AAC/BD,EAAAA,SAAS,EAAE;AACTE,IAAAA,IAAI,EAAE;AADG;AADoB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport {\n Dimensions,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport {\n initialWindowMetrics,\n SafeAreaInsetsContext,\n SafeAreaProvider,\n} from 'react-native-safe-area-context';\n\ntype Props = {\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nconst { width = 0, height = 0 } = Dimensions.get('window');\n\n// To support SSR on web, we need to have empty insets for initial values\n// Otherwise there can be mismatch between SSR and client output\n// We also need to specify empty values to support tests environments\nconst initialMetrics =\n Platform.OS === 'web' || initialWindowMetrics == null\n ? {\n frame: { x: 0, y: 0, width, height },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n }\n : initialWindowMetrics;\n\nexport default function SafeAreaProviderCompat({ children, style }: Props) {\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets) => {\n if (insets) {\n // If we already have insets, don't wrap the stack in another safe area provider\n // This avoids an issue with updates at the cost of potentially incorrect values\n // https://github.com/react-navigation/react-navigation/issues/174\n return <View style={[styles.container, style]}>{children}</View>;\n }\n\n return (\n <SafeAreaProvider initialMetrics={initialMetrics} style={style}>\n {children}\n </SafeAreaProvider>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n}\n\nSafeAreaProviderCompat.initialMetrics = initialMetrics;\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n"]}
|
|
@@ -73,7 +73,7 @@ export declare type HeaderOptions = {
|
|
|
73
73
|
headerTintColor?: string;
|
|
74
74
|
/**
|
|
75
75
|
* Function which returns a React Element to render as the background of the header.
|
|
76
|
-
* This is useful for using backgrounds such as an image
|
|
76
|
+
* This is useful for using backgrounds such as an image, a gradient, blur effect etc.
|
|
77
77
|
* You can use this with `headerTransparent` to render a blur view, for example, to create a translucent header.
|
|
78
78
|
*/
|
|
79
79
|
headerBackground?: (props: {
|
|
@@ -139,15 +139,11 @@ export declare type HeaderTitleProps = {
|
|
|
139
139
|
*/
|
|
140
140
|
style?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;
|
|
141
141
|
};
|
|
142
|
-
export declare type
|
|
142
|
+
export declare type HeaderButtonProps = {
|
|
143
143
|
/**
|
|
144
|
-
*
|
|
144
|
+
* Tint color for the header button.
|
|
145
145
|
*/
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Callback to call when the button is pressed.
|
|
149
|
-
*/
|
|
150
|
-
onPress?: () => void;
|
|
146
|
+
tintColor?: string;
|
|
151
147
|
/**
|
|
152
148
|
* Color for material ripple (Android >= 5.0 only).
|
|
153
149
|
*/
|
|
@@ -156,16 +152,26 @@ export declare type HeaderBackButtonProps = {
|
|
|
156
152
|
* Opacity when the button is pressed, used when ripple is not supported.
|
|
157
153
|
*/
|
|
158
154
|
pressOpacity?: number;
|
|
155
|
+
/**
|
|
156
|
+
* Whether it's possible to navigate back in stack.
|
|
157
|
+
*/
|
|
158
|
+
canGoBack?: boolean;
|
|
159
|
+
};
|
|
160
|
+
export declare type HeaderBackButtonProps = HeaderButtonProps & {
|
|
161
|
+
/**
|
|
162
|
+
* Whether the button is disabled.
|
|
163
|
+
*/
|
|
164
|
+
disabled?: boolean;
|
|
165
|
+
/**
|
|
166
|
+
* Callback to call when the button is pressed.
|
|
167
|
+
*/
|
|
168
|
+
onPress?: () => void;
|
|
159
169
|
/**
|
|
160
170
|
* Function which returns a React Element to display custom image in header's back button.
|
|
161
171
|
*/
|
|
162
172
|
backImage?: (props: {
|
|
163
173
|
tintColor: string;
|
|
164
174
|
}) => React.ReactNode;
|
|
165
|
-
/**
|
|
166
|
-
* Tint color for the header.
|
|
167
|
-
*/
|
|
168
|
-
tintColor?: string;
|
|
169
175
|
/**
|
|
170
176
|
* Label text for the button. Usually the title of the previous screen.
|
|
171
177
|
* By default, this is only shown on iOS.
|
|
@@ -200,10 +206,6 @@ export declare type HeaderBackButtonProps = {
|
|
|
200
206
|
* Layout of the title element in the header.
|
|
201
207
|
*/
|
|
202
208
|
titleLayout?: Layout;
|
|
203
|
-
/**
|
|
204
|
-
* Whether it's possible to navigate back in stack.
|
|
205
|
-
*/
|
|
206
|
-
canGoBack?: boolean;
|
|
207
209
|
/**
|
|
208
210
|
* Accessibility label for the button for screen readers.
|
|
209
211
|
*/
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/elements",
|
|
3
3
|
"description": "UI Components for React Navigation",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
7
7
|
"react-navigation",
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@react-native-masked-view/masked-view": "^0.2.4",
|
|
41
|
-
"@react-navigation/native": "^6.0.
|
|
41
|
+
"@react-navigation/native": "^6.0.7",
|
|
42
42
|
"@testing-library/react-native": "^7.2.0",
|
|
43
43
|
"@types/react": "^17.0.9",
|
|
44
44
|
"@types/react-native": "~0.64.9",
|
|
45
45
|
"del-cli": "^3.0.1",
|
|
46
|
-
"react": "
|
|
47
|
-
"react-native": "~0.
|
|
46
|
+
"react": "17.0.1",
|
|
47
|
+
"react-native": "~0.64.3",
|
|
48
48
|
"react-native-builder-bob": "^0.18.1",
|
|
49
49
|
"typescript": "^4.3.2"
|
|
50
50
|
},
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
]
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "4c5805867ce946d99ba17f71b4d6086bb8751262"
|
|
72
72
|
}
|
|
@@ -35,8 +35,9 @@ export default function HeaderBackButton({
|
|
|
35
35
|
}: HeaderBackButtonProps) {
|
|
36
36
|
const { colors } = useTheme();
|
|
37
37
|
|
|
38
|
-
const [initialLabelWidth, setInitialLabelWidth] =
|
|
39
|
-
|
|
38
|
+
const [initialLabelWidth, setInitialLabelWidth] = React.useState<
|
|
39
|
+
undefined | number
|
|
40
|
+
>(undefined);
|
|
40
41
|
|
|
41
42
|
const tintColor =
|
|
42
43
|
customTintColor !== undefined
|
|
@@ -12,7 +12,7 @@ export default function getDefaultHeaderHeight(
|
|
|
12
12
|
const isLandscape = layout.width > layout.height;
|
|
13
13
|
|
|
14
14
|
if (Platform.OS === 'ios') {
|
|
15
|
-
if (Platform.isPad) {
|
|
15
|
+
if (Platform.isPad || Platform.isTVOS) {
|
|
16
16
|
if (modalPresentation) {
|
|
17
17
|
headerHeight = 56;
|
|
18
18
|
} else {
|
package/src/types.tsx
CHANGED
|
@@ -77,7 +77,7 @@ export type HeaderOptions = {
|
|
|
77
77
|
headerTintColor?: string;
|
|
78
78
|
/**
|
|
79
79
|
* Function which returns a React Element to render as the background of the header.
|
|
80
|
-
* This is useful for using backgrounds such as an image
|
|
80
|
+
* This is useful for using backgrounds such as an image, a gradient, blur effect etc.
|
|
81
81
|
* You can use this with `headerTransparent` to render a blur view, for example, to create a translucent header.
|
|
82
82
|
*/
|
|
83
83
|
headerBackground?: (props: {
|
|
@@ -147,15 +147,11 @@ export type HeaderTitleProps = {
|
|
|
147
147
|
style?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;
|
|
148
148
|
};
|
|
149
149
|
|
|
150
|
-
export type
|
|
150
|
+
export type HeaderButtonProps = {
|
|
151
151
|
/**
|
|
152
|
-
*
|
|
153
|
-
*/
|
|
154
|
-
disabled?: boolean;
|
|
155
|
-
/**
|
|
156
|
-
* Callback to call when the button is pressed.
|
|
152
|
+
* Tint color for the header button.
|
|
157
153
|
*/
|
|
158
|
-
|
|
154
|
+
tintColor?: string;
|
|
159
155
|
/**
|
|
160
156
|
* Color for material ripple (Android >= 5.0 only).
|
|
161
157
|
*/
|
|
@@ -165,13 +161,24 @@ export type HeaderBackButtonProps = {
|
|
|
165
161
|
*/
|
|
166
162
|
pressOpacity?: number;
|
|
167
163
|
/**
|
|
168
|
-
*
|
|
164
|
+
* Whether it's possible to navigate back in stack.
|
|
169
165
|
*/
|
|
170
|
-
|
|
166
|
+
canGoBack?: boolean;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
export type HeaderBackButtonProps = HeaderButtonProps & {
|
|
171
170
|
/**
|
|
172
|
-
*
|
|
171
|
+
* Whether the button is disabled.
|
|
173
172
|
*/
|
|
174
|
-
|
|
173
|
+
disabled?: boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Callback to call when the button is pressed.
|
|
176
|
+
*/
|
|
177
|
+
onPress?: () => void;
|
|
178
|
+
/**
|
|
179
|
+
* Function which returns a React Element to display custom image in header's back button.
|
|
180
|
+
*/
|
|
181
|
+
backImage?: (props: { tintColor: string }) => React.ReactNode;
|
|
175
182
|
/**
|
|
176
183
|
* Label text for the button. Usually the title of the previous screen.
|
|
177
184
|
* By default, this is only shown on iOS.
|
|
@@ -206,10 +213,6 @@ export type HeaderBackButtonProps = {
|
|
|
206
213
|
* Layout of the title element in the header.
|
|
207
214
|
*/
|
|
208
215
|
titleLayout?: Layout;
|
|
209
|
-
/**
|
|
210
|
-
* Whether it's possible to navigate back in stack.
|
|
211
|
-
*/
|
|
212
|
-
canGoBack?: boolean;
|
|
213
216
|
/**
|
|
214
217
|
* Accessibility label for the button for screen readers.
|
|
215
218
|
*/
|