@react-navigation/elements 1.1.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.
Files changed (55) hide show
  1. package/lib/commonjs/Background.js +5 -4
  2. package/lib/commonjs/Background.js.map +1 -1
  3. package/lib/commonjs/Header/Header.js +8 -2
  4. package/lib/commonjs/Header/Header.js.map +1 -1
  5. package/lib/commonjs/Header/HeaderBackButton.js +20 -19
  6. package/lib/commonjs/Header/HeaderBackButton.js.map +1 -1
  7. package/lib/commonjs/Header/HeaderBackground.js +5 -4
  8. package/lib/commonjs/Header/HeaderBackground.js.map +1 -1
  9. package/lib/commonjs/Header/HeaderTitle.js +6 -5
  10. package/lib/commonjs/Header/HeaderTitle.js.map +1 -1
  11. package/lib/commonjs/Header/getDefaultHeaderHeight.js +1 -1
  12. package/lib/commonjs/Header/getDefaultHeaderHeight.js.map +1 -1
  13. package/lib/commonjs/MaskedView.js +4 -3
  14. package/lib/commonjs/MaskedView.js.map +1 -1
  15. package/lib/commonjs/MaskedViewNative.js +6 -4
  16. package/lib/commonjs/MaskedViewNative.js.map +1 -1
  17. package/lib/commonjs/MissingIcon.js +6 -5
  18. package/lib/commonjs/MissingIcon.js.map +1 -1
  19. package/lib/commonjs/PlatformPressable.js +10 -9
  20. package/lib/commonjs/PlatformPressable.js.map +1 -1
  21. package/lib/commonjs/ResourceSavingView.js +8 -6
  22. package/lib/commonjs/ResourceSavingView.js.map +1 -1
  23. package/lib/commonjs/SafeAreaProviderCompat.js +5 -4
  24. package/lib/commonjs/SafeAreaProviderCompat.js.map +1 -1
  25. package/lib/commonjs/index.js +19 -19
  26. package/lib/module/Background.js +5 -4
  27. package/lib/module/Background.js.map +1 -1
  28. package/lib/module/Header/Header.js +8 -2
  29. package/lib/module/Header/Header.js.map +1 -1
  30. package/lib/module/Header/HeaderBackButton.js +20 -19
  31. package/lib/module/Header/HeaderBackButton.js.map +1 -1
  32. package/lib/module/Header/HeaderBackground.js +5 -4
  33. package/lib/module/Header/HeaderBackground.js.map +1 -1
  34. package/lib/module/Header/HeaderTitle.js +6 -5
  35. package/lib/module/Header/HeaderTitle.js.map +1 -1
  36. package/lib/module/Header/getDefaultHeaderHeight.js +1 -1
  37. package/lib/module/Header/getDefaultHeaderHeight.js.map +1 -1
  38. package/lib/module/MaskedView.js +4 -3
  39. package/lib/module/MaskedView.js.map +1 -1
  40. package/lib/module/MaskedViewNative.js +6 -4
  41. package/lib/module/MaskedViewNative.js.map +1 -1
  42. package/lib/module/MissingIcon.js +6 -5
  43. package/lib/module/MissingIcon.js.map +1 -1
  44. package/lib/module/PlatformPressable.js +10 -9
  45. package/lib/module/PlatformPressable.js.map +1 -1
  46. package/lib/module/ResourceSavingView.js +8 -6
  47. package/lib/module/ResourceSavingView.js.map +1 -1
  48. package/lib/module/SafeAreaProviderCompat.js +5 -4
  49. package/lib/module/SafeAreaProviderCompat.js.map +1 -1
  50. package/lib/typescript/src/types.d.ts +35 -16
  51. package/package.json +5 -5
  52. package/src/Header/Header.tsx +12 -2
  53. package/src/Header/HeaderBackButton.tsx +3 -2
  54. package/src/Header/getDefaultHeaderHeight.tsx +1 -1
  55. package/src/types.tsx +36 -16
@@ -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.Assets = void 0;
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
 
@@ -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
- style,
8
- ...rest
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,CAAoB;AAAEC,EAAAA,KAAF;AAAS,KAAGC;AAAZ,CAApB,EAA+C;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"]}
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"]}
@@ -44,6 +44,7 @@ export default function Header(props) {
44
44
  headerTitleContainerStyle: titleContainerStyle,
45
45
  headerBackgroundContainerStyle: backgroundContainerStyle,
46
46
  headerStyle: customHeaderStyle,
47
+ headerShadowVisible,
47
48
  headerPressColor,
48
49
  headerPressOpacity,
49
50
  headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top
@@ -142,6 +143,11 @@ export default function Header(props) {
142
143
  }
143
144
  }
144
145
 
146
+ const backgroundStyle = [safeStyles, headerShadowVisible === false && {
147
+ elevation: 0,
148
+ shadowOpacity: 0,
149
+ borderBottomWidth: 0
150
+ }];
145
151
  const leftButton = headerLeft ? headerLeft({
146
152
  tintColor: headerTintColor,
147
153
  pressColor: headerPressColor,
@@ -160,9 +166,9 @@ export default function Header(props) {
160
166
  zIndex: 0
161
167
  }, backgroundContainerStyle]
162
168
  }, headerBackground ? headerBackground({
163
- style: safeStyles
169
+ style: backgroundStyle
164
170
  }) : headerTransparent ? null : /*#__PURE__*/React.createElement(HeaderBackground, {
165
- style: safeStyles
171
+ style: backgroundStyle
166
172
  })), /*#__PURE__*/React.createElement(Animated.View, {
167
173
  pointerEvents: "box-none",
168
174
  style: [{
@@ -1 +1 @@
1
- {"version":3,"sources":["Header.tsx"],"names":["React","Animated","Platform","StyleSheet","View","useSafeAreaFrame","useSafeAreaInsets","getDefaultHeaderHeight","HeaderBackground","HeaderShownContext","HeaderTitle","warnIfHeaderStylesDefined","styles","Object","keys","forEach","styleProp","value","console","warn","undefined","Header","props","insets","frame","isParentHeaderShown","useContext","layout","modal","title","headerTitle","customTitle","headerTitleAlign","select","ios","default","headerLeft","headerLeftLabelVisible","headerTransparent","headerTintColor","headerBackground","headerRight","headerTitleAllowFontScaling","titleAllowFontScaling","headerTitleStyle","titleStyle","headerLeftContainerStyle","leftContainerStyle","headerRightContainerStyle","rightContainerStyle","headerTitleContainerStyle","titleContainerStyle","headerBackgroundContainerStyle","backgroundContainerStyle","headerStyle","customHeaderStyle","headerPressColor","headerPressOpacity","headerStatusBarHeight","top","defaultHeight","height","minHeight","maxHeight","backgroundColor","borderBottomColor","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderBottomWidth","borderColor","borderEndColor","borderEndWidth","borderLeftColor","borderLeftWidth","borderRadius","borderRightColor","borderRightWidth","borderStartColor","borderStartWidth","borderStyle","borderTopColor","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","borderTopWidth","borderWidth","boxShadow","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","opacity","transform","unsafeStyles","flatten","process","env","NODE_ENV","safeStyles","leftButton","tintColor","pressColor","pressOpacity","labelVisible","rightButton","absoluteFill","zIndex","style","content","left","expand","marginStart","maxWidth","width","Math","max","right","children","allowFontScaling","marginEnd","create","flex","flexDirection","alignItems","marginHorizontal","justifyContent","flexGrow","flexBasis"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Animated, Platform, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n useSafeAreaFrame,\n useSafeAreaInsets,\n} from 'react-native-safe-area-context';\n\nimport type { HeaderOptions, Layout } from '../types';\nimport getDefaultHeaderHeight from './getDefaultHeaderHeight';\nimport HeaderBackground from './HeaderBackground';\nimport HeaderShownContext from './HeaderShownContext';\nimport HeaderTitle from './HeaderTitle';\n\ntype Props = HeaderOptions & {\n /**\n * Whether the header is in a modal\n */\n modal?: boolean;\n /**\n * Layout of the screen.\n */\n layout?: Layout;\n /**\n * Title text for the header.\n */\n title: string;\n};\n\nconst warnIfHeaderStylesDefined = (styles: Record<string, any>) => {\n Object.keys(styles).forEach((styleProp) => {\n const value = styles[styleProp];\n\n if (styleProp === 'position' && value === 'absolute') {\n console.warn(\n \"position: 'absolute' is not supported on headerStyle. If you would like to render content under the header, use the 'headerTransparent' option.\"\n );\n } else if (value !== undefined) {\n console.warn(\n `${styleProp} was given a value of ${value}, this has no effect on headerStyle.`\n );\n }\n });\n};\n\nexport default function Header(props: Props) {\n const insets = useSafeAreaInsets();\n const frame = useSafeAreaFrame();\n\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n\n const {\n layout = frame,\n modal = false,\n title,\n headerTitle: customTitle,\n headerTitleAlign = Platform.select({\n ios: 'center',\n default: 'left',\n }),\n headerLeft,\n headerLeftLabelVisible,\n headerTransparent,\n headerTintColor,\n headerBackground,\n headerRight,\n headerTitleAllowFontScaling: titleAllowFontScaling,\n headerTitleStyle: titleStyle,\n headerLeftContainerStyle: leftContainerStyle,\n headerRightContainerStyle: rightContainerStyle,\n headerTitleContainerStyle: titleContainerStyle,\n headerBackgroundContainerStyle: backgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerPressColor,\n headerPressOpacity,\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const {\n height = defaultHeight,\n minHeight,\n maxHeight,\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: web support for shadow\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n ...unsafeStyles\n } = StyleSheet.flatten(customHeaderStyle || {}) as ViewStyle;\n\n if (process.env.NODE_ENV !== 'production') {\n warnIfHeaderStylesDefined(unsafeStyles);\n }\n\n const safeStyles: ViewStyle = {\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: boxShadow is only for Web\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n };\n\n // Setting a property to undefined triggers default style\n // So we need to filter them out\n // Users can use `null` instead\n for (const styleProp in safeStyles) {\n // @ts-expect-error: typescript wrongly complains that styleProp cannot be used to index safeStyles\n if (safeStyles[styleProp] === undefined) {\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete safeStyles[styleProp];\n }\n }\n\n const leftButton = headerLeft\n ? headerLeft({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n labelVisible: headerLeftLabelVisible,\n })\n : null;\n\n const rightButton = headerRight\n ? headerRight({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n })\n : null;\n\n const headerTitle =\n typeof customTitle !== 'function'\n ? (props: React.ComponentProps<typeof HeaderTitle>) => (\n <HeaderTitle {...props} />\n )\n : customTitle;\n\n return (\n <React.Fragment>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[\n StyleSheet.absoluteFill,\n { zIndex: 0 },\n backgroundContainerStyle,\n ]}\n >\n {headerBackground ? (\n headerBackground({ style: safeStyles })\n ) : headerTransparent ? null : (\n <HeaderBackground style={safeStyles} />\n )}\n </Animated.View>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[{ height, minHeight, maxHeight, opacity, transform }]}\n >\n <View pointerEvents=\"none\" style={{ height: headerStatusBarHeight }} />\n <View pointerEvents=\"box-none\" style={styles.content}>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[\n styles.left,\n headerTitleAlign === 'center' && styles.expand,\n { marginStart: insets.left },\n leftContainerStyle,\n ]}\n >\n {leftButton}\n </Animated.View>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[\n styles.title,\n {\n // Avoid the title from going offscreen or overlapping buttons\n maxWidth:\n headerTitleAlign === 'center'\n ? layout.width -\n ((leftButton\n ? headerLeftLabelVisible !== false\n ? 80\n : 32\n : 16) +\n Math.max(insets.left, insets.right)) *\n 2\n : layout.width -\n ((leftButton ? 72 : 16) +\n (rightButton ? 72 : 16) +\n insets.left -\n insets.right),\n },\n titleContainerStyle,\n ]}\n >\n {headerTitle({\n children: title,\n allowFontScaling: titleAllowFontScaling,\n tintColor: headerTintColor,\n style: titleStyle,\n })}\n </Animated.View>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[\n styles.right,\n styles.expand,\n { marginEnd: insets.right },\n rightContainerStyle,\n ]}\n >\n {rightButton}\n </Animated.View>\n </View>\n </Animated.View>\n </React.Fragment>\n );\n}\n\nconst styles = StyleSheet.create({\n content: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'stretch',\n },\n title: {\n marginHorizontal: 16,\n justifyContent: 'center',\n },\n left: {\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n right: {\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n expand: {\n flexGrow: 1,\n flexBasis: 0,\n },\n});\n"]}
1
+ {"version":3,"sources":["Header.tsx"],"names":["React","Animated","Platform","StyleSheet","View","useSafeAreaFrame","useSafeAreaInsets","getDefaultHeaderHeight","HeaderBackground","HeaderShownContext","HeaderTitle","warnIfHeaderStylesDefined","styles","Object","keys","forEach","styleProp","value","console","warn","undefined","Header","props","insets","frame","isParentHeaderShown","useContext","layout","modal","title","headerTitle","customTitle","headerTitleAlign","select","ios","default","headerLeft","headerLeftLabelVisible","headerTransparent","headerTintColor","headerBackground","headerRight","headerTitleAllowFontScaling","titleAllowFontScaling","headerTitleStyle","titleStyle","headerLeftContainerStyle","leftContainerStyle","headerRightContainerStyle","rightContainerStyle","headerTitleContainerStyle","titleContainerStyle","headerBackgroundContainerStyle","backgroundContainerStyle","headerStyle","customHeaderStyle","headerShadowVisible","headerPressColor","headerPressOpacity","headerStatusBarHeight","top","defaultHeight","height","minHeight","maxHeight","backgroundColor","borderBottomColor","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderBottomWidth","borderColor","borderEndColor","borderEndWidth","borderLeftColor","borderLeftWidth","borderRadius","borderRightColor","borderRightWidth","borderStartColor","borderStartWidth","borderStyle","borderTopColor","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","borderTopWidth","borderWidth","boxShadow","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","opacity","transform","unsafeStyles","flatten","process","env","NODE_ENV","safeStyles","backgroundStyle","leftButton","tintColor","pressColor","pressOpacity","labelVisible","rightButton","absoluteFill","zIndex","style","content","left","expand","marginStart","maxWidth","width","Math","max","right","children","allowFontScaling","marginEnd","create","flex","flexDirection","alignItems","marginHorizontal","justifyContent","flexGrow","flexBasis"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Animated, Platform, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n useSafeAreaFrame,\n useSafeAreaInsets,\n} from 'react-native-safe-area-context';\n\nimport type { HeaderOptions, Layout } from '../types';\nimport getDefaultHeaderHeight from './getDefaultHeaderHeight';\nimport HeaderBackground from './HeaderBackground';\nimport HeaderShownContext from './HeaderShownContext';\nimport HeaderTitle from './HeaderTitle';\n\ntype Props = HeaderOptions & {\n /**\n * Whether the header is in a modal\n */\n modal?: boolean;\n /**\n * Layout of the screen.\n */\n layout?: Layout;\n /**\n * Title text for the header.\n */\n title: string;\n};\n\nconst warnIfHeaderStylesDefined = (styles: Record<string, any>) => {\n Object.keys(styles).forEach((styleProp) => {\n const value = styles[styleProp];\n\n if (styleProp === 'position' && value === 'absolute') {\n console.warn(\n \"position: 'absolute' is not supported on headerStyle. If you would like to render content under the header, use the 'headerTransparent' option.\"\n );\n } else if (value !== undefined) {\n console.warn(\n `${styleProp} was given a value of ${value}, this has no effect on headerStyle.`\n );\n }\n });\n};\n\nexport default function Header(props: Props) {\n const insets = useSafeAreaInsets();\n const frame = useSafeAreaFrame();\n\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n\n const {\n layout = frame,\n modal = false,\n title,\n headerTitle: customTitle,\n headerTitleAlign = Platform.select({\n ios: 'center',\n default: 'left',\n }),\n headerLeft,\n headerLeftLabelVisible,\n headerTransparent,\n headerTintColor,\n headerBackground,\n headerRight,\n headerTitleAllowFontScaling: titleAllowFontScaling,\n headerTitleStyle: titleStyle,\n headerLeftContainerStyle: leftContainerStyle,\n headerRightContainerStyle: rightContainerStyle,\n headerTitleContainerStyle: titleContainerStyle,\n headerBackgroundContainerStyle: backgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerShadowVisible,\n headerPressColor,\n headerPressOpacity,\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const {\n height = defaultHeight,\n minHeight,\n maxHeight,\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: web support for shadow\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n ...unsafeStyles\n } = StyleSheet.flatten(customHeaderStyle || {}) as ViewStyle;\n\n if (process.env.NODE_ENV !== 'production') {\n warnIfHeaderStylesDefined(unsafeStyles);\n }\n\n const safeStyles: ViewStyle = {\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: boxShadow is only for Web\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n };\n\n // Setting a property to undefined triggers default style\n // So we need to filter them out\n // Users can use `null` instead\n for (const styleProp in safeStyles) {\n // @ts-expect-error: typescript wrongly complains that styleProp cannot be used to index safeStyles\n if (safeStyles[styleProp] === undefined) {\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete safeStyles[styleProp];\n }\n }\n\n const backgroundStyle = [\n safeStyles,\n headerShadowVisible === false && {\n elevation: 0,\n shadowOpacity: 0,\n borderBottomWidth: 0,\n },\n ];\n\n const leftButton = headerLeft\n ? headerLeft({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n labelVisible: headerLeftLabelVisible,\n })\n : null;\n\n const rightButton = headerRight\n ? headerRight({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n })\n : null;\n\n const headerTitle =\n typeof customTitle !== 'function'\n ? (props: React.ComponentProps<typeof HeaderTitle>) => (\n <HeaderTitle {...props} />\n )\n : customTitle;\n\n return (\n <React.Fragment>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[\n StyleSheet.absoluteFill,\n { zIndex: 0 },\n backgroundContainerStyle,\n ]}\n >\n {headerBackground ? (\n headerBackground({ style: backgroundStyle })\n ) : headerTransparent ? null : (\n <HeaderBackground style={backgroundStyle} />\n )}\n </Animated.View>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[{ height, minHeight, maxHeight, opacity, transform }]}\n >\n <View pointerEvents=\"none\" style={{ height: headerStatusBarHeight }} />\n <View pointerEvents=\"box-none\" style={styles.content}>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[\n styles.left,\n headerTitleAlign === 'center' && styles.expand,\n { marginStart: insets.left },\n leftContainerStyle,\n ]}\n >\n {leftButton}\n </Animated.View>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[\n styles.title,\n {\n // Avoid the title from going offscreen or overlapping buttons\n maxWidth:\n headerTitleAlign === 'center'\n ? layout.width -\n ((leftButton\n ? headerLeftLabelVisible !== false\n ? 80\n : 32\n : 16) +\n Math.max(insets.left, insets.right)) *\n 2\n : layout.width -\n ((leftButton ? 72 : 16) +\n (rightButton ? 72 : 16) +\n insets.left -\n insets.right),\n },\n titleContainerStyle,\n ]}\n >\n {headerTitle({\n children: title,\n allowFontScaling: titleAllowFontScaling,\n tintColor: headerTintColor,\n style: titleStyle,\n })}\n </Animated.View>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[\n styles.right,\n styles.expand,\n { marginEnd: insets.right },\n rightContainerStyle,\n ]}\n >\n {rightButton}\n </Animated.View>\n </View>\n </Animated.View>\n </React.Fragment>\n );\n}\n\nconst styles = StyleSheet.create({\n content: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'stretch',\n },\n title: {\n marginHorizontal: 16,\n justifyContent: 'center',\n },\n left: {\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n right: {\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n expand: {\n flexGrow: 1,\n flexBasis: 0,\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
- disabled,
8
- allowFontScaling,
9
- backImage,
10
- label,
11
- labelStyle,
12
- labelVisible,
13
- onLabelLayout,
14
- onPress,
15
- pressColor,
16
- pressOpacity,
17
- screenLayout,
18
- tintColor: customTintColor,
19
- titleLayout,
20
- truncatedLabel = 'Back',
21
- accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',
22
- testID,
23
- style
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":"AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SACEC,QADF,EAEEC,WAFF,EAGEC,KAHF,EAKEC,QALF,EAMEC,UANF,EAOEC,IAPF,QAQO,cARP;AAUA,OAAOC,UAAP,MAAuB,eAAvB;AACA,OAAOC,iBAAP,MAA8B,sBAA9B;AAGA,eAAe,SAASC,gBAAT,CAA0B;AACvCC,EAAAA,QADuC;AAEvCC,EAAAA,gBAFuC;AAGvCC,EAAAA,SAHuC;AAIvCC,EAAAA,KAJuC;AAKvCC,EAAAA,UALuC;AAMvCC,EAAAA,YANuC;AAOvCC,EAAAA,aAPuC;AAQvCC,EAAAA,OARuC;AASvCC,EAAAA,UATuC;AAUvCC,EAAAA,YAVuC;AAWvCC,EAAAA,YAXuC;AAYvCC,EAAAA,SAAS,EAAEC,eAZ4B;AAavCC,EAAAA,WAbuC;AAcvCC,EAAAA,cAAc,GAAG,MAdsB;AAevCC,EAAAA,kBAAkB,GAAGZ,KAAK,IAAIA,KAAK,KAAK,MAAnB,GAA6B,GAAEA,KAAM,QAArC,GAA+C,SAf7B;AAgBvCa,EAAAA,MAhBuC;AAiBvCC,EAAAA;AAjBuC,CAA1B,EAkBW;AACxB,QAAM;AAAEC,IAAAA;AAAF,MAAa7B,QAAQ,EAA3B;AAEA,QAAM,CAAC8B,iBAAD,EAAoBC,oBAApB,IACJ9B,KAAK,CAAC+B,QAAN,CAAmCC,SAAnC,CADF;AAGA,QAAMX,SAAS,GACbC,eAAe,KAAKU,SAApB,GACIV,eADJ,GAEIlB,QAAQ,CAAC6B,MAAT,CAAgB;AACdC,IAAAA,GAAG,EAAEN,MAAM,CAACO,OADE;AAEdC,IAAAA,OAAO,EAAER,MAAM,CAACS;AAFF,GAAhB,CAHN;;AAQA,QAAMC,iBAAiB,GAAIC,CAAD,IAA0B;AAClDvB,IAAAA,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAGuB,CAAH,CAAb;AAEAT,IAAAA,oBAAoB,CAACS,CAAC,CAACC,WAAF,CAAcC,MAAd,CAAqBC,CAArB,GAAyBH,CAAC,CAACC,WAAF,CAAcC,MAAd,CAAqBE,KAA/C,CAApB;AACD,GAJD;;AAMA,QAAMC,mBAAmB,GAAG,MAAM;AAChC,WACE,CAAC/B,KAAD,IACCgB,iBAAiB,IAChBN,WADD,IAECH,YAFD,IAGC,CAACA,YAAY,CAACuB,KAAb,GAAqBpB,WAAW,CAACoB,KAAlC,IAA2C,CAA3C,GAA+Cd,iBAAiB,GAAG,EALvE;AAOD,GARD;;AAUA,QAAMgB,eAAe,GAAG,MAAM;AAC5B,QAAIjC,SAAJ,EAAe;AACb,aAAOA,SAAS,CAAC;AAAES,QAAAA;AAAF,OAAD,CAAhB;AACD,KAFD,MAEO;AACL,0BACE,oBAAC,KAAD;AACE,QAAA,KAAK,EAAE,CACLyB,MAAM,CAACC,IADF,EAELC,OAAO,CAACjC,YAAD,CAAP,IAAyB+B,MAAM,CAACG,aAF3B,EAGLD,OAAO,CAAC3B,SAAD,CAAP,IAAsB;AAAEA,UAAAA;AAAF,SAHjB,CADT;AAME,QAAA,MAAM,EAAE6B,OAAO,CAAC,yBAAD,CANjB;AAOE,QAAA,YAAY,EAAE;AAPhB,QADF;AAWD;AACF,GAhBD;;AAkBA,QAAMC,WAAW,GAAG,MAAM;AACxB,UAAMC,aAAa,GAAGR,mBAAmB,KAAKpB,cAAL,GAAsBX,KAA/D;;AAEA,QAAI,CAACE,YAAD,IAAiBqC,aAAa,KAAKpB,SAAvC,EAAkD;AAChD,aAAO,IAAP;AACD;;AAED,UAAMqB,YAAY,gBAChB,oBAAC,IAAD;AACE,MAAA,KAAK,EACHjC,YAAY,GACR;AACA;AACA,OAAC0B,MAAM,CAACQ,YAAR,EAAsB;AAAEC,QAAAA,QAAQ,EAAEnC,YAAY,CAACuB,KAAb,GAAqB,CAArB,GAAyB;AAArC,OAAtB,CAHQ,GAIR;AANR,oBASE,oBAAC,QAAD,CAAU,IAAV;AACE,MAAA,UAAU,EAAE,KADd;AAEE,MAAA,QAAQ,EACN;AACA;AACAS,MAAAA,aAAa,KAAKvC,KAAlB,GAA0ByB,iBAA1B,GAA8CN,SALlD;AAOE,MAAA,KAAK,EAAE,CACLc,MAAM,CAACjC,KADF,EAELQ,SAAS,GAAG;AAAEmC,QAAAA,KAAK,EAAEnC;AAAT,OAAH,GAA0B,IAF9B,EAGLP,UAHK,CAPT;AAYE,MAAA,aAAa,EAAE,CAZjB;AAaE,MAAA,gBAAgB,EAAE,CAAC,CAACH;AAbtB,OAeGyC,aAfH,CATF,CADF;;AA8BA,QAAIxC,SAAS,IAAIR,QAAQ,CAACqD,EAAT,KAAgB,KAAjC,EAAwC;AACtC;AACA;AACA,aAAOJ,YAAP;AACD;;AAED,wBACE,oBAAC,UAAD;AACE,MAAA,WAAW,eACT,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAEP,MAAM,CAACY;AAApB,sBACE,oBAAC,KAAD;AACE,QAAA,MAAM,EAAER,OAAO,CAAC,8BAAD,CADjB;AAEE,QAAA,KAAK,EAAEJ,MAAM,CAACa;AAFhB,QADF,eAKE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAEb,MAAM,CAACc;AAApB,QALF;AAFJ,OAWGP,YAXH,CADF;AAeD,GA1DD;;AA4DA,QAAMQ,WAAW,GAAG,MAAM5C,OAAO,IAAI6C,qBAAqB,CAAC7C,OAAD,CAA1D;;AAEA,sBACE,oBAAC,iBAAD;AACE,IAAA,QAAQ,EAAEP,QADZ;AAEE,IAAA,UAAU,MAFZ;AAGE,IAAA,iBAAiB,EAAC,QAHpB;AAIE,IAAA,kBAAkB,EAAEe,kBAJtB;AAKE,IAAA,MAAM,EAAEC,MALV;AAME,IAAA,OAAO,EAAEhB,QAAQ,GAAGsB,SAAH,GAAe6B,WANlC;AAOE,IAAA,UAAU,EAAE3C,UAPd;AAQE,IAAA,YAAY,EAAEC,YARhB;AASE,IAAA,cAAc,EAAE;AAAE4C,MAAAA,UAAU,EAAE;AAAd,KATlB;AAUE,IAAA,KAAK,EAAE,CAACjB,MAAM,CAACkB,SAAR,EAAmBtD,QAAQ,IAAIoC,MAAM,CAACpC,QAAtC,EAAgDiB,KAAhD,CAVT;AAWE,IAAA,OAAO,EAAEvB,QAAQ,CAAC6B,MAAT,CAAgB;AACvBC,MAAAA,GAAG,EAAEF,SADkB;AAEvBI,MAAAA,OAAO,EAAE;AAAE6B,QAAAA,GAAG,EAAE,EAAP;AAAWC,QAAAA,KAAK,EAAE,EAAlB;AAAsBC,QAAAA,MAAM,EAAE,EAA9B;AAAkCC,QAAAA,IAAI,EAAE;AAAxC;AAFc,KAAhB;AAXX,kBAgBE,oBAAC,KAAD,CAAO,QAAP,QACGvB,eAAe,EADlB,EAEGM,WAAW,EAFd,CAhBF,CADF;AAuBD;AAED,MAAML,MAAM,GAAGzC,UAAU,CAACgE,MAAX,CAAkB;AAC/BL,EAAAA,SAAS,EAAE;AACTM,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,aAAa,EAAE,KAFN;AAGThB,IAAAA,QAAQ,EAAElD,UAAU,CAACmE,aAHZ;AAG2B;AACpC,OAAGpE,QAAQ,CAAC6B,MAAT,CAAgB;AACjBC,MAAAA,GAAG,EAAE,IADY;AAEjBE,MAAAA,OAAO,EAAE;AACPqC,QAAAA,cAAc,EAAE,CADT;AAEPC,QAAAA,gBAAgB,EAAE;AAFX;AAFQ,KAAhB;AAJM,GADoB;AAa/BhE,EAAAA,QAAQ,EAAE;AACRiE,IAAAA,OAAO,EAAE;AADD,GAbqB;AAgB/B9D,EAAAA,KAAK,EAAE;AACL+D,IAAAA,QAAQ,EAAE,EADL;AAEL;AACA;AACAC,IAAAA,aAAa,EAAE;AAJV,GAhBwB;AAsB/BvB,EAAAA,YAAY,EAAE;AACZ;AACA;AACAiB,IAAAA,aAAa,EAAE,KAHH;AAIZD,IAAAA,UAAU,EAAE;AAJA,GAtBiB;AA4B/BvB,EAAAA,IAAI,EAAE3C,QAAQ,CAAC6B,MAAT,CAAgB;AACpBC,IAAAA,GAAG,EAAE;AACH4C,MAAAA,MAAM,EAAE,EADL;AAEHnC,MAAAA,KAAK,EAAE,EAFJ;AAGHoC,MAAAA,UAAU,EAAE,CAHT;AAIHC,MAAAA,WAAW,EAAE,EAJV;AAKHP,MAAAA,cAAc,EAAE,EALb;AAMHQ,MAAAA,UAAU,EAAE,SANT;AAOHC,MAAAA,SAAS,EAAE,CAAC;AAAEC,QAAAA,MAAM,EAAEjF,WAAW,CAACkF,KAAZ,GAAoB,CAAC,CAArB,GAAyB;AAAnC,OAAD;AAPR,KADe;AAUpBhD,IAAAA,OAAO,EAAE;AACP0C,MAAAA,MAAM,EAAE,EADD;AAEPnC,MAAAA,KAAK,EAAE,EAFA;AAGP0C,MAAAA,MAAM,EAAE,CAHD;AAIPJ,MAAAA,UAAU,EAAE,SAJL;AAKPC,MAAAA,SAAS,EAAE,CAAC;AAAEC,QAAAA,MAAM,EAAEjF,WAAW,CAACkF,KAAZ,GAAoB,CAAC,CAArB,GAAyB;AAAnC,OAAD;AALJ;AAVW,GAAhB,CA5ByB;AA8C/BnC,EAAAA,aAAa,EACX7C,QAAQ,CAACqD,EAAT,KAAgB,KAAhB,GACI;AACEuB,IAAAA,WAAW,EAAE;AADf,GADJ,GAII,EAnDyB;AAoD/BtB,EAAAA,iBAAiB,EAAE;AACjB4B,IAAAA,IAAI,EAAE,CADW;AAEjBf,IAAAA,aAAa,EAAE,KAFE;AAGjBgB,IAAAA,cAAc,EAAE;AAHC,GApDY;AAyD/B3B,EAAAA,kBAAkB,EAAE;AAClB0B,IAAAA,IAAI,EAAE,CADY;AAElBE,IAAAA,eAAe,EAAE;AAFC,GAzDW;AA6D/B7B,EAAAA,QAAQ,EAAE;AACRmB,IAAAA,MAAM,EAAE,EADA;AAERnC,IAAAA,KAAK,EAAE,EAFC;AAGRoC,IAAAA,UAAU,EAAE,CAAC,IAHL;AAIRN,IAAAA,cAAc,EAAE,EAJR;AAKRgB,IAAAA,SAAS,EAAE,QALH;AAMRR,IAAAA,UAAU,EAAE,SANJ;AAORC,IAAAA,SAAS,EAAE,CAAC;AAAEC,MAAAA,MAAM,EAAEjF,WAAW,CAACkF,KAAZ,GAAoB,CAAC,CAArB,GAAyB;AAAnC,KAAD;AAPH;AA7DqB,CAAlB,CAAf","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
- style,
8
- ...rest
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,CAA0B;AAAEC,EAAAA,KAAF;AAAS,KAAGC;AAAZ,CAA1B,EAAqD;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"]}
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
- tintColor,
8
- style,
9
- ...rest
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,CAAqB;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,KAAb;AAAoB,KAAGC;AAAvB,CAArB,EAA2D;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"]}
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,KAAb,EAAoB;AAClB,UAAIP,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) {\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"]}
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"]}
@@ -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
- children
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,CAAoB;AAAEC,EAAAA;AAAF,CAApB,EAAyC;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"]}
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
- children,
18
- ...rest
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,CAAoB;AAAEC,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAApB,EAAkD;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
+ {"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
- color,
5
- size,
6
- style
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,CAAqB;AAAEC,EAAAA,KAAF;AAASC,EAAAA,IAAT;AAAeC,EAAAA;AAAf,CAArB,EAAoD;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"]}
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
- onPressIn,
15
- onPressOut,
16
- android_ripple,
17
- pressColor,
18
- pressOpacity = 0.3,
19
- style,
20
- ...rest
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,CAA2B;AACxCC,EAAAA,SADwC;AAExCC,EAAAA,UAFwC;AAGxCC,EAAAA,cAHwC;AAIxCC,EAAAA,UAJwC;AAKxCC,EAAAA,YAAY,GAAG,GALyB;AAMxCC,EAAAA,KANwC;AAOxC,KAAGC;AAPqC,CAA3B,EAQL;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"]}
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
- visible,
9
- children,
10
- style,
11
- ...rest
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,CAA6B;AAC1CC,EAAAA,OAD0C;AAE1CC,EAAAA,QAF0C;AAG1CC,EAAAA,KAH0C;AAI1C,KAAGC;AAJuC,CAA7B,EAKL;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"]}
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
- children,
27
- style
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