@react-navigation/elements 3.0.0-alpha.2 → 3.0.0-alpha.20

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 (171) hide show
  1. package/lib/module/ActivityView.js +90 -0
  2. package/lib/module/ActivityView.js.map +1 -0
  3. package/lib/module/ActivityView.native.js +67 -0
  4. package/lib/module/ActivityView.native.js.map +1 -0
  5. package/lib/module/Badge.js +5 -4
  6. package/lib/module/Badge.js.map +1 -1
  7. package/lib/module/Button.js +7 -2
  8. package/lib/module/Button.js.map +1 -1
  9. package/lib/module/Color.js +95 -0
  10. package/lib/module/Color.js.map +1 -1
  11. package/lib/module/Container.js +11 -1
  12. package/lib/module/Container.js.map +1 -1
  13. package/lib/module/Header/Header.js +26 -11
  14. package/lib/module/Header/Header.js.map +1 -1
  15. package/lib/module/Header/HeaderBackButton.js +27 -13
  16. package/lib/module/Header/HeaderBackButton.js.map +1 -1
  17. package/lib/module/Header/HeaderIcon.js +29 -10
  18. package/lib/module/Header/HeaderIcon.js.map +1 -1
  19. package/lib/module/Header/HeaderSearchBar.js +28 -21
  20. package/lib/module/Header/HeaderSearchBar.js.map +1 -1
  21. package/lib/module/Header/getHeaderTitle.js.map +1 -1
  22. package/lib/module/Header/useHeaderHeight.js +1 -1
  23. package/lib/module/Header/useHeaderHeight.js.map +1 -1
  24. package/lib/module/Label/getLabel.js.map +1 -1
  25. package/lib/module/PlatformColor.js +1 -0
  26. package/lib/module/PlatformColor.js.map +1 -1
  27. package/lib/module/PlatformColor.native.js +1 -1
  28. package/lib/module/PlatformColor.native.js.map +1 -1
  29. package/lib/module/PlatformPressable.js.map +1 -1
  30. package/lib/module/SafeAreaProviderCompat.js +1 -1
  31. package/lib/module/SafeAreaProviderCompat.js.map +1 -1
  32. package/lib/module/Screen.js +13 -9
  33. package/lib/module/Screen.js.map +1 -1
  34. package/lib/module/index.js +1 -7
  35. package/lib/module/index.js.map +1 -1
  36. package/lib/module/internal.js +1 -1
  37. package/lib/module/internal.js.map +1 -1
  38. package/lib/module/useFrameSize.js +1 -1
  39. package/lib/module/useFrameSize.js.map +1 -1
  40. package/lib/typescript/src/ActivityView.d.ts +31 -0
  41. package/lib/typescript/src/ActivityView.d.ts.map +1 -0
  42. package/lib/typescript/src/ActivityView.native.d.ts +3 -0
  43. package/lib/typescript/src/ActivityView.native.d.ts.map +1 -0
  44. package/lib/typescript/src/Badge.d.ts +3 -3
  45. package/lib/typescript/src/Badge.d.ts.map +1 -1
  46. package/lib/typescript/src/Button.d.ts +3 -3
  47. package/lib/typescript/src/Button.d.ts.map +1 -1
  48. package/lib/typescript/src/Color.d.ts +4 -3
  49. package/lib/typescript/src/Color.d.ts.map +1 -1
  50. package/lib/typescript/src/Container.d.ts +7 -4
  51. package/lib/typescript/src/Container.d.ts.map +1 -1
  52. package/lib/typescript/src/Header/Header.d.ts +2 -2
  53. package/lib/typescript/src/Header/Header.d.ts.map +1 -1
  54. package/lib/typescript/src/Header/HeaderBackButton.d.ts +1 -1
  55. package/lib/typescript/src/Header/HeaderBackButton.d.ts.map +1 -1
  56. package/lib/typescript/src/Header/HeaderBackground.d.ts +3 -3
  57. package/lib/typescript/src/Header/HeaderBackground.d.ts.map +1 -1
  58. package/lib/typescript/src/Header/HeaderIcon.d.ts +8 -4
  59. package/lib/typescript/src/Header/HeaderIcon.d.ts.map +1 -1
  60. package/lib/typescript/src/Header/HeaderSearchBar.d.ts +4 -4
  61. package/lib/typescript/src/Header/HeaderSearchBar.d.ts.map +1 -1
  62. package/lib/typescript/src/Header/HeaderTitle.d.ts +3 -3
  63. package/lib/typescript/src/Header/HeaderTitle.d.ts.map +1 -1
  64. package/lib/typescript/src/Header/getHeaderTitle.d.ts +1 -1
  65. package/lib/typescript/src/Header/getHeaderTitle.d.ts.map +1 -1
  66. package/lib/typescript/src/Label/getLabel.d.ts +2 -2
  67. package/lib/typescript/src/Label/getLabel.d.ts.map +1 -1
  68. package/lib/typescript/src/PlatformColor.d.ts +1 -0
  69. package/lib/typescript/src/PlatformColor.d.ts.map +1 -1
  70. package/lib/typescript/src/PlatformColor.native.d.ts +1 -1
  71. package/lib/typescript/src/PlatformColor.native.d.ts.map +1 -1
  72. package/lib/typescript/src/PlatformPressable.d.ts +12 -12
  73. package/lib/typescript/src/PlatformPressable.d.ts.map +1 -1
  74. package/lib/typescript/src/Screen.d.ts +6 -6
  75. package/lib/typescript/src/Screen.d.ts.map +1 -1
  76. package/lib/typescript/src/index.d.ts +1 -2
  77. package/lib/typescript/src/index.d.ts.map +1 -1
  78. package/lib/typescript/src/internal.d.ts +1 -1
  79. package/lib/typescript/src/internal.d.ts.map +1 -1
  80. package/lib/typescript/src/types.d.ts +119 -69
  81. package/lib/typescript/src/types.d.ts.map +1 -1
  82. package/package.json +14 -13
  83. package/src/ActivityView.native.tsx +90 -0
  84. package/src/ActivityView.tsx +129 -0
  85. package/src/Badge.tsx +9 -7
  86. package/src/Button.tsx +15 -7
  87. package/src/Color.tsx +133 -3
  88. package/src/Container.tsx +20 -4
  89. package/src/Header/Header.tsx +43 -20
  90. package/src/Header/HeaderBackButton.tsx +31 -17
  91. package/src/Header/HeaderBackground.tsx +3 -3
  92. package/src/Header/HeaderIcon.tsx +49 -9
  93. package/src/Header/HeaderSearchBar.tsx +31 -22
  94. package/src/Header/HeaderTitle.tsx +3 -3
  95. package/src/Header/getHeaderTitle.tsx +4 -1
  96. package/src/Header/useHeaderHeight.tsx +1 -1
  97. package/src/Label/getLabel.tsx +1 -1
  98. package/src/PlatformColor.native.tsx +1 -1
  99. package/src/PlatformColor.tsx +4 -0
  100. package/src/PlatformPressable.tsx +12 -8
  101. package/src/SafeAreaProviderCompat.tsx +1 -1
  102. package/src/Screen.tsx +19 -19
  103. package/src/index.tsx +1 -16
  104. package/src/internal.tsx +1 -1
  105. package/src/types.tsx +153 -76
  106. package/src/useFrameSize.tsx +1 -1
  107. package/lib/module/Lazy.js +0 -42
  108. package/lib/module/Lazy.js.map +0 -1
  109. package/lib/module/assets/back-icon.ios.svg +0 -4
  110. package/lib/module/assets/back-icon@1x.android.png +0 -0
  111. package/lib/module/assets/back-icon@1x.ios.png +0 -0
  112. package/lib/module/assets/back-icon@2x.android.png +0 -0
  113. package/lib/module/assets/back-icon@2x.ios.png +0 -0
  114. package/lib/module/assets/back-icon@3x.android.png +0 -0
  115. package/lib/module/assets/back-icon@3x.ios.png +0 -0
  116. package/lib/module/assets/back-icon@4x.android.png +0 -0
  117. package/lib/module/assets/back-icon@4x.ios.png +0 -0
  118. package/lib/module/assets/clear-icon@1x.png +0 -0
  119. package/lib/module/assets/clear-icon@2x.png +0 -0
  120. package/lib/module/assets/clear-icon@3x.png +0 -0
  121. package/lib/module/assets/clear-icon@4x.png +0 -0
  122. package/lib/module/assets/close-icon@1x.png +0 -0
  123. package/lib/module/assets/close-icon@2x.png +0 -0
  124. package/lib/module/assets/close-icon@3x.png +0 -0
  125. package/lib/module/assets/close-icon@4x.png +0 -0
  126. package/lib/module/assets/search-icon-legacy@1x.ios.png +0 -0
  127. package/lib/module/assets/search-icon-legacy@2x.ios.png +0 -0
  128. package/lib/module/assets/search-icon-legacy@3x.ios.png +0 -0
  129. package/lib/module/assets/search-icon-legacy@4x.ios.png +0 -0
  130. package/lib/module/assets/search-icon.ios.svg +0 -4
  131. package/lib/module/assets/search-icon@1x.android.png +0 -0
  132. package/lib/module/assets/search-icon@1x.ios.png +0 -0
  133. package/lib/module/assets/search-icon@2x.android.png +0 -0
  134. package/lib/module/assets/search-icon@2x.ios.png +0 -0
  135. package/lib/module/assets/search-icon@3x.android.png +0 -0
  136. package/lib/module/assets/search-icon@3x.ios.png +0 -0
  137. package/lib/module/assets/search-icon@4x.android.png +0 -0
  138. package/lib/module/assets/search-icon@4x.ios.png +0 -0
  139. package/lib/typescript/src/Lazy.d.ts +0 -31
  140. package/lib/typescript/src/Lazy.d.ts.map +0 -1
  141. package/src/Lazy.tsx +0 -59
  142. package/src/assets/back-icon.ios.svg +0 -4
  143. package/src/assets/back-icon@1x.android.png +0 -0
  144. package/src/assets/back-icon@1x.ios.png +0 -0
  145. package/src/assets/back-icon@2x.android.png +0 -0
  146. package/src/assets/back-icon@2x.ios.png +0 -0
  147. package/src/assets/back-icon@3x.android.png +0 -0
  148. package/src/assets/back-icon@3x.ios.png +0 -0
  149. package/src/assets/back-icon@4x.android.png +0 -0
  150. package/src/assets/back-icon@4x.ios.png +0 -0
  151. package/src/assets/clear-icon@1x.png +0 -0
  152. package/src/assets/clear-icon@2x.png +0 -0
  153. package/src/assets/clear-icon@3x.png +0 -0
  154. package/src/assets/clear-icon@4x.png +0 -0
  155. package/src/assets/close-icon@1x.png +0 -0
  156. package/src/assets/close-icon@2x.png +0 -0
  157. package/src/assets/close-icon@3x.png +0 -0
  158. package/src/assets/close-icon@4x.png +0 -0
  159. package/src/assets/search-icon-legacy@1x.ios.png +0 -0
  160. package/src/assets/search-icon-legacy@2x.ios.png +0 -0
  161. package/src/assets/search-icon-legacy@3x.ios.png +0 -0
  162. package/src/assets/search-icon-legacy@4x.ios.png +0 -0
  163. package/src/assets/search-icon.ios.svg +0 -4
  164. package/src/assets/search-icon@1x.android.png +0 -0
  165. package/src/assets/search-icon@1x.ios.png +0 -0
  166. package/src/assets/search-icon@2x.android.png +0 -0
  167. package/src/assets/search-icon@2x.ios.png +0 -0
  168. package/src/assets/search-icon@3x.android.png +0 -0
  169. package/src/assets/search-icon@3x.ios.png +0 -0
  170. package/src/assets/search-icon@4x.android.png +0 -0
  171. package/src/assets/search-icon@4x.ios.png +0 -0
@@ -1,24 +1,64 @@
1
- import { useLocale, useTheme } from '@react-navigation/native';
2
- import { Image, type ImageProps, Platform, StyleSheet } from 'react-native';
1
+ import { MaterialSymbol, SFSymbol, useLocale } from '@react-navigation/native';
2
+ import {
3
+ type ColorValue,
4
+ Image,
5
+ type ImageProps,
6
+ Platform,
7
+ StyleSheet,
8
+ } from 'react-native';
3
9
 
4
- export function HeaderIcon({ source, style, ...rest }: ImageProps) {
5
- const { colors } = useTheme();
10
+ import type { Icon } from '../types';
11
+
12
+ type Props = Omit<ImageProps, 'source'> & {
13
+ icon: Icon;
14
+ color: ColorValue;
15
+ };
16
+
17
+ export function HeaderIcon({ icon, color, style, ...rest }: Props) {
6
18
  const { direction } = useLocale();
7
19
 
20
+ const iconStyle = [styles.icon, direction === 'rtl' && styles.flip, style];
21
+
22
+ if (icon.type === 'sfSymbol') {
23
+ return (
24
+ <SFSymbol
25
+ name={icon.name}
26
+ color={color}
27
+ size={ICON_SIZE}
28
+ style={iconStyle}
29
+ {...rest}
30
+ />
31
+ );
32
+ }
33
+
34
+ if (icon.type === 'materialSymbol') {
35
+ return (
36
+ <MaterialSymbol
37
+ name={icon.name}
38
+ variant={icon.variant}
39
+ weight={icon.weight}
40
+ color={color}
41
+ size={ICON_SIZE}
42
+ style={iconStyle}
43
+ {...rest}
44
+ />
45
+ );
46
+ }
47
+
8
48
  return (
9
49
  <Image
10
- source={source}
50
+ source={icon.source}
11
51
  resizeMode="contain"
12
52
  fadeDuration={0}
13
- tintColor={colors.text}
14
- style={[styles.icon, direction === 'rtl' && styles.flip, style]}
53
+ tintColor={color}
54
+ style={iconStyle}
15
55
  {...rest}
16
56
  />
17
57
  );
18
58
  }
19
59
 
20
- export const ICON_SIZE = Platform.OS === 'ios' ? 21 : 24;
21
- export const ICON_MARGIN = Platform.OS === 'ios' ? 8 : 3;
60
+ const ICON_SIZE = Platform.OS === 'ios' ? 21 : 24;
61
+ const ICON_MARGIN = Platform.OS === 'ios' ? 8 : 3;
22
62
 
23
63
  const styles = StyleSheet.create({
24
64
  icon: {
@@ -1,10 +1,9 @@
1
- import { useNavigation, useTheme } from '@react-navigation/native';
1
+ import { SFSymbol, useNavigation, useTheme } from '@react-navigation/native';
2
2
  import * as React from 'react';
3
3
  import {
4
4
  Animated,
5
5
  BackHandler,
6
6
  type ColorValue,
7
- Image,
8
7
  type NativeEventSubscription,
9
8
  Platform,
10
9
  type StyleProp,
@@ -14,10 +13,7 @@ import {
14
13
  type ViewStyle,
15
14
  } from 'react-native';
16
15
 
17
- import clearIcon from '../assets/clear-icon.png';
18
16
  import closeIcon from '../assets/close-icon.png';
19
- import searchIcon from '../assets/search-icon.png';
20
- import searchIconLegacy from '../assets/search-icon-legacy.png';
21
17
  import { Color } from '../Color';
22
18
  import {
23
19
  AnimatedLiquidGlassContainerView,
@@ -34,11 +30,11 @@ import { HeaderIcon } from './HeaderIcon';
34
30
  type Props = Omit<HeaderSearchBarOptions, 'ref'> & {
35
31
  visible: boolean;
36
32
  onClose: () => void;
37
- tintColor?: ColorValue;
38
- pressColor?: ColorValue;
39
- pressOpacity?: number;
33
+ tintColor?: ColorValue | undefined;
34
+ pressColor?: ColorValue | undefined;
35
+ pressOpacity?: number | undefined;
40
36
  statusBarHeight: number;
41
- style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;
37
+ style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>> | undefined;
42
38
  };
43
39
 
44
40
  const INPUT_TYPE_TO_MODE = {
@@ -210,9 +206,10 @@ function HeaderSearchBarInternal(
210
206
  ) : null}
211
207
  <HeaderButtonBackground style={styles.searchbarContainer}>
212
208
  {Platform.OS === 'ios' ? (
213
- <HeaderIcon
214
- source={isLiquidGlassSupported ? searchIcon : searchIconLegacy}
215
- tintColor={textColor}
209
+ <SFSymbol
210
+ name="magnifyingglass"
211
+ size={SEARCH_ICON_SIZE}
212
+ color={textColor}
216
213
  style={[
217
214
  styles.inputSearchIconIos,
218
215
  !isLiquidGlassSupported && styles.inputSearchIconIosLegacy,
@@ -263,10 +260,10 @@ function HeaderSearchBarInternal(
263
260
  !isLiquidGlassSupported && styles.clearButtonIosLegacy,
264
261
  ]}
265
262
  >
266
- <Image
267
- source={clearIcon}
268
- resizeMode="contain"
269
- tintColor={textColor}
263
+ <SFSymbol
264
+ name="xmark.circle.fill"
265
+ size={CLEAR_ICON_SIZE}
266
+ color={textColor}
270
267
  style={styles.clearIconIos}
271
268
  />
272
269
  </PlatformPressable>
@@ -278,7 +275,19 @@ function HeaderSearchBarInternal(
278
275
  onPress={onClear}
279
276
  style={[styles.closeButton, { opacity: clearVisibleAnim }]}
280
277
  >
281
- <HeaderIcon source={closeIcon} tintColor={textColor} />
278
+ <HeaderIcon
279
+ icon={Platform.select({
280
+ android: {
281
+ type: 'materialSymbol',
282
+ name: 'close',
283
+ },
284
+ default: {
285
+ type: 'image',
286
+ source: closeIcon,
287
+ },
288
+ })}
289
+ color={textColor}
290
+ />
282
291
  </HeaderButton>
283
292
  ) : null}
284
293
  {Platform.OS === 'ios' ? (
@@ -288,7 +297,7 @@ function HeaderSearchBarInternal(
288
297
  accessibilityLabel={cancelButtonText}
289
298
  onPress={cancelSearch}
290
299
  >
291
- <HeaderIcon source={closeIcon} tintColor={textColor} />
300
+ <SFSymbol name="xmark" color={textColor} />
292
301
  </HeaderButton>
293
302
  </HeaderButtonBackground>
294
303
  ) : (
@@ -332,14 +341,14 @@ const styles = StyleSheet.create({
332
341
  },
333
342
  inputSearchIconIos: {
334
343
  position: 'absolute',
335
- opacity: 0.5,
336
- top: SEARCHBAR_ICON_SPACING,
337
- left: SEARCHBAR_ICON_SPACING,
344
+ top: '50%',
345
+ left: BUTTON_SPACING + SEARCHBAR_ICON_SPACING / 2,
346
+ marginTop: -SEARCH_ICON_SIZE / 2,
338
347
  height: SEARCH_ICON_SIZE,
339
348
  width: SEARCH_ICON_SIZE,
340
349
  },
341
350
  inputSearchIconIosLegacy: {
342
- top: SEARCHBAR_LEGACY_VERTICAL_OFFSET_IOS,
351
+ top: SEARCHBAR_ICON_SPACING,
343
352
  },
344
353
  backButton: {
345
354
  alignSelf: 'center',
@@ -10,9 +10,9 @@ import {
10
10
  } from 'react-native';
11
11
 
12
12
  type Props = Omit<TextProps, 'style'> & {
13
- tintColor?: ColorValue;
14
- children?: string;
15
- style?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;
13
+ tintColor?: ColorValue | undefined;
14
+ children?: string | undefined;
15
+ style?: Animated.WithAnimatedValue<StyleProp<TextStyle>> | undefined;
16
16
  };
17
17
 
18
18
  export function HeaderTitle({ tintColor, style, ...rest }: Props) {
@@ -1,7 +1,10 @@
1
1
  import type { HeaderOptions } from '../types';
2
2
 
3
3
  export function getHeaderTitle(
4
- options: { title?: string; headerTitle?: HeaderOptions['headerTitle'] },
4
+ options: {
5
+ title?: string | undefined;
6
+ headerTitle?: HeaderOptions['headerTitle'];
7
+ },
5
8
  fallback: string
6
9
  ): string {
7
10
  return typeof options.headerTitle === 'string'
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { HeaderHeightContext } from './HeaderHeightContext';
4
4
 
5
5
  export function useHeaderHeight() {
6
- const height = React.useContext(HeaderHeightContext);
6
+ const height = React.use(HeaderHeightContext);
7
7
 
8
8
  if (height === undefined) {
9
9
  throw new Error(
@@ -1,5 +1,5 @@
1
1
  export function getLabel(
2
- options: { label?: string; title?: string },
2
+ options: { label?: string | undefined; title?: string | undefined },
3
3
  fallback: string
4
4
  ): string {
5
5
  return options.label !== undefined
@@ -1 +1 @@
1
- export { PlatformColor } from 'react-native';
1
+ export { DynamicColorIOS, PlatformColor } from 'react-native';
@@ -6,3 +6,7 @@
6
6
  export const PlatformColor:
7
7
  | typeof import('react-native').PlatformColor
8
8
  | undefined = undefined;
9
+
10
+ export const DynamicColorIOS:
11
+ | typeof import('react-native').DynamicColorIOS
12
+ | undefined = undefined;
@@ -19,14 +19,18 @@ type HoverEffectProps = {
19
19
  };
20
20
 
21
21
  export type Props = Omit<PressableProps, 'style' | 'onPress'> & {
22
- href?: string;
23
- pressColor?: ColorValue;
24
- pressOpacity?: number;
25
- hoverEffect?: HoverEffectProps;
26
- style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;
27
- onPress?: (
28
- e: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent
29
- ) => void;
22
+ href?: string | undefined;
23
+ pressColor?: ColorValue | undefined;
24
+ pressOpacity?: number | undefined;
25
+ hoverEffect?: HoverEffectProps | undefined;
26
+ style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>> | undefined;
27
+ onPress?:
28
+ | ((
29
+ e:
30
+ | React.MouseEvent<HTMLAnchorElement, MouseEvent>
31
+ | GestureResponderEvent
32
+ ) => void)
33
+ | undefined;
30
34
  children: React.ReactNode;
31
35
  };
32
36
 
@@ -34,7 +34,7 @@ const initialMetrics =
34
34
  : initialWindowMetrics;
35
35
 
36
36
  export function SafeAreaProviderCompat({ children, style }: Props) {
37
- const insets = React.useContext(SafeAreaInsetsContext);
37
+ const insets = React.use(SafeAreaInsetsContext);
38
38
 
39
39
  return (
40
40
  <FrameSizeProvider
package/src/Screen.tsx CHANGED
@@ -6,15 +6,10 @@ import {
6
6
  useTheme,
7
7
  } from '@react-navigation/native';
8
8
  import * as React from 'react';
9
- import {
10
- Animated,
11
- type StyleProp,
12
- StyleSheet,
13
- View,
14
- type ViewStyle,
15
- } from 'react-native';
9
+ import { StyleSheet, View } from 'react-native';
16
10
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
17
11
 
12
+ import { Container } from './Container';
18
13
  import { getDefaultHeaderHeight } from './Header/getDefaultHeaderHeight';
19
14
  import { HeaderHeightContext } from './Header/HeaderHeightContext';
20
15
  import { HeaderShownContext } from './Header/HeaderShownContext';
@@ -22,14 +17,14 @@ import { useFrameSize } from './useFrameSize';
22
17
 
23
18
  type Props = {
24
19
  focused: boolean;
25
- modal?: boolean;
20
+ modal?: boolean | undefined;
26
21
  navigation: NavigationProp<ParamListBase>;
27
22
  route: RouteProp<ParamListBase>;
28
23
  header: React.ReactNode;
29
- headerShown?: boolean;
30
- headerStatusBarHeight?: number;
31
- headerTransparent?: boolean;
32
- style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;
24
+ headerShown?: boolean | undefined;
25
+ headerStatusBarHeight?: number | undefined;
26
+ headerTransparent?: boolean | undefined;
27
+ style?: React.ComponentProps<typeof Container>['style'] | undefined;
33
28
  children: React.ReactNode;
34
29
  };
35
30
 
@@ -37,8 +32,8 @@ export function Screen(props: Props) {
37
32
  const insets = useSafeAreaInsets();
38
33
  const { colors } = useTheme();
39
34
 
40
- const isParentHeaderShown = React.useContext(HeaderShownContext);
41
- const parentHeaderHeight = React.useContext(HeaderHeightContext);
35
+ const isParentHeaderShown = React.use(HeaderShownContext);
36
+ const parentHeaderHeight = React.use(HeaderHeightContext);
42
37
 
43
38
  const {
44
39
  focused,
@@ -72,12 +67,17 @@ export function Screen(props: Props) {
72
67
  }, [route.name]);
73
68
 
74
69
  return (
75
- <Animated.View
76
- aria-hidden={!focused}
77
- style={[styles.container, { backgroundColor: colors.background }, style]}
70
+ <Container
71
+ inert={!focused}
72
+ style={{
73
+ ...styles.container,
74
+ backgroundColor: colors.background,
75
+ ...style,
76
+ }}
78
77
  // On Fabric we need to disable collapsing for the background to ensure
79
78
  // that we won't render unnecessary views due to the view flattening.
80
- collapsable={false}
79
+ // Container sets `collapsable` to `false` internally
80
+ // This comment is left to make sure refactors don't remove it by mistake
81
81
  >
82
82
  {headerShown ? (
83
83
  <NavigationProvider navigation={navigation} route={route}>
@@ -105,7 +105,7 @@ export function Screen(props: Props) {
105
105
  </HeaderHeightContext.Provider>
106
106
  </HeaderShownContext.Provider>
107
107
  </View>
108
- </Animated.View>
108
+ </Container>
109
109
  );
110
110
  }
111
111
 
package/src/index.tsx CHANGED
@@ -1,9 +1,3 @@
1
- import backIcon from './assets/back-icon.png';
2
- import clearIcon from './assets/clear-icon.png';
3
- import closeIcon from './assets/close-icon.png';
4
- import searchIcon from './assets/search-icon.png';
5
- import searchIconLegacy from './assets/search-icon-legacy.png';
6
-
7
1
  export { Badge } from './Badge';
8
2
  export { Button } from './Button';
9
3
  export { getDefaultSidebarWidth } from './getDefaultSidebarWidth';
@@ -22,14 +16,5 @@ export { getLabel } from './Label/getLabel';
22
16
  export { Label } from './Label/Label';
23
17
  export { PlatformPressable } from './PlatformPressable';
24
18
  export { Text } from './Text';
25
- export { useFrameSize } from './useFrameSize';
26
-
27
- export const Assets = [
28
- backIcon,
29
- searchIcon,
30
- searchIconLegacy,
31
- closeIcon,
32
- clearIcon,
33
- ];
34
-
35
19
  export * from './types';
20
+ export { useFrameSize } from './useFrameSize';
package/src/internal.tsx CHANGED
@@ -1,6 +1,6 @@
1
+ export { ActivityView } from './ActivityView';
1
2
  export { Color } from './Color';
2
3
  export { Container, type Props as ContainerProps } from './Container';
3
- export { Lazy } from './Lazy';
4
4
  export { isLiquidGlassSupported } from './LiquidGlassView';
5
5
  export { MissingIcon } from './MissingIcon';
6
6
  export { SafeAreaProviderCompat } from './SafeAreaProviderCompat';