@react-navigation/material-top-tabs 8.0.0-alpha.3 → 8.0.0-alpha.30

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.
@@ -1 +1 @@
1
- {"version":3,"names":["createMaterialTopTabNavigator","createMaterialTopTabScreen","MaterialTopTabBar","MaterialTopTabView","useTabAnimation"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA,SACEA,6BAA6B,EAC7BC,0BAA0B,QACrB,+CAA4C;;AAEnD;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,kBAAkB,QAAQ,+BAA4B;;AAE/D;AACA;AACA;AACA,SAASC,eAAe,QAAQ,4BAAyB;;AAEzD;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["createMaterialTopTabNavigator","createMaterialTopTabScreen","MaterialTopTabBar","MaterialTopTabView","useTabAnimation"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA,SACEA,6BAA6B,EAC7BC,0BAA0B,QAErB,+CAA4C;;AAEnD;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,kBAAkB,QAAQ,+BAA4B;;AAE/D;AACA;AACA;AACA,SAASC,eAAe,QAAQ,4BAAyB;;AAEzD;AACA;AACA","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { createNavigatorFactory, TabRouter, useNavigationBuilder } from '@react-navigation/native';
3
+ import { createNavigatorFactory, createScreenFactory, TabRouter, useNavigationBuilder } from '@react-navigation/native';
4
4
  import { MaterialTopTabView } from "../views/MaterialTopTabView.js";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  function MaterialTopTabNavigator({
@@ -40,10 +40,6 @@ function MaterialTopTabNavigator({
40
40
  })
41
41
  });
42
42
  }
43
- export function createMaterialTopTabNavigator(config) {
44
- return createNavigatorFactory(MaterialTopTabNavigator)(config);
45
- }
46
- export function createMaterialTopTabScreen(config) {
47
- return config;
48
- }
43
+ export const createMaterialTopTabNavigator = createNavigatorFactory(MaterialTopTabNavigator);
44
+ export const createMaterialTopTabScreen = createScreenFactory();
49
45
  //# sourceMappingURL=createMaterialTopTabNavigator.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createNavigatorFactory","TabRouter","useNavigationBuilder","MaterialTopTabView","jsx","_jsx","MaterialTopTabNavigator","initialRouteName","backBehavior","routeNamesChangeBehavior","children","layout","screenListeners","screenOptions","screenLayout","router","rest","state","descriptors","navigation","NavigationContent","createMaterialTopTabNavigator","config","createMaterialTopTabScreen"],"sourceRoot":"../../../src","sources":["navigators/createMaterialTopTabNavigator.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EAStBC,SAAS,EAGTC,oBAAoB,QACf,0BAA0B;AAQjC,SAASC,kBAAkB,QAAQ,gCAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEjE,SAASC,uBAAuBA,CAAC;EAC/BC,gBAAgB;EAChBC,YAAY;EACZC,wBAAwB;EACxBC,QAAQ;EACRC,MAAM;EACNC,eAAe;EACfC,aAAa;EACbC,YAAY;EACZC,MAAM;EACN,GAAGC;AACyB,CAAC,EAAE;EAC/B,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAkB,CAAC,GACzDlB,oBAAoB,CAMlBD,SAAS,EAAE;IACXM,gBAAgB;IAChBC,YAAY;IACZC,wBAAwB;IACxBC,QAAQ;IACRC,MAAM;IACNC,eAAe;IACfC,aAAa;IACbC,YAAY;IACZC;EACF,CAAC,CAAC;EAEJ,oBACEV,IAAA,CAACe,iBAAiB;IAAAV,QAAA,eAChBL,IAAA,CAACF,kBAAkB;MAAA,GACba,IAAI;MACRC,KAAK,EAAEA,KAAM;MACbE,UAAU,EAAEA,UAAW;MACvBD,WAAW,EAAEA;IAAY,CAC1B;EAAC,CACe,CAAC;AAExB;AA2BA,OAAO,SAASG,6BAA6BA,CAACC,MAAgB,EAAE;EAC9D,OAAOtB,sBAAsB,CAACM,uBAAuB,CAAC,CAACgB,MAAM,CAAC;AAChE;AAEA,OAAO,SAASC,0BAA0BA,CAIxCD,MAOC,EACD;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"names":["createNavigatorFactory","createScreenFactory","TabRouter","useNavigationBuilder","MaterialTopTabView","jsx","_jsx","MaterialTopTabNavigator","initialRouteName","backBehavior","routeNamesChangeBehavior","children","layout","screenListeners","screenOptions","screenLayout","router","rest","state","descriptors","navigation","NavigationContent","createMaterialTopTabNavigator","createMaterialTopTabScreen"],"sourceRoot":"../../../src","sources":["navigators/createMaterialTopTabNavigator.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EACtBC,mBAAmB,EAKnBC,SAAS,EAETC,oBAAoB,QACf,0BAA0B;AAOjC,SAASC,kBAAkB,QAAQ,gCAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEjE,SAASC,uBAAuBA,CAAC;EAC/BC,gBAAgB;EAChBC,YAAY;EACZC,wBAAwB;EACxBC,QAAQ;EACRC,MAAM;EACNC,eAAe;EACfC,aAAa;EACbC,YAAY;EACZC,MAAM;EACN,GAAGC;AACyB,CAAC,EAAE;EAC/B,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAkB,CAAC,GACzDlB,oBAAoB,CAMlBD,SAAS,EAAE;IACXM,gBAAgB;IAChBC,YAAY;IACZC,wBAAwB;IACxBC,QAAQ;IACRC,MAAM;IACNC,eAAe;IACfC,aAAa;IACbC,YAAY;IACZC;EACF,CAAC,CAAC;EAEJ,oBACEV,IAAA,CAACe,iBAAiB;IAAAV,QAAA,eAChBL,IAAA,CAACF,kBAAkB;MAAA,GACba,IAAI;MACRC,KAAK,EAAEA,KAAM;MACbE,UAAU,EAAEA,UAAW;MACvBD,WAAW,EAAEA;IAAY,CAC1B;EAAC,CACe,CAAC;AAExB;AAUA,OAAO,MAAMG,6BAA6B,GACxCtB,sBAAsB,CAAwBO,uBAAuB,CAAC;AAExE,OAAO,MAAMgB,0BAA0B,GACrCtB,mBAAmB,CAAwB,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import { TabAnimationContext } from "./TabAnimationContext.js";
5
5
  export function useTabAnimation() {
6
- const animation = React.useContext(TabAnimationContext);
6
+ const animation = React.use(TabAnimationContext);
7
7
  if (animation === undefined) {
8
8
  throw new Error("Couldn't find values for tab animation. Are you inside a screen in Material Top Tab navigator?");
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","TabAnimationContext","useTabAnimation","animation","useContext","undefined","Error"],"sourceRoot":"../../../src","sources":["utils/useTabAnimation.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,mBAAmB,QAAQ,0BAAuB;AAE3D,OAAO,SAASC,eAAeA,CAAA,EAAG;EAChC,MAAMC,SAAS,GAAGH,KAAK,CAACI,UAAU,CAACH,mBAAmB,CAAC;EAEvD,IAAIE,SAAS,KAAKE,SAAS,EAAE;IAC3B,MAAM,IAAIC,KAAK,CACb,gGACF,CAAC;EACH;EAEA,OAAOH,SAAS;AAClB","ignoreList":[]}
1
+ {"version":3,"names":["React","TabAnimationContext","useTabAnimation","animation","use","undefined","Error"],"sourceRoot":"../../../src","sources":["utils/useTabAnimation.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,mBAAmB,QAAQ,0BAAuB;AAE3D,OAAO,SAASC,eAAeA,CAAA,EAAG;EAChC,MAAMC,SAAS,GAAGH,KAAK,CAACI,GAAG,CAACH,mBAAmB,CAAC;EAEhD,IAAIE,SAAS,KAAKE,SAAS,EAAE;IAC3B,MAAM,IAAIC,KAAK,CACb,gGACF,CAAC;EACH;EAEA,OAAOH,SAAS;AAClB","ignoreList":[]}
@@ -2,9 +2,10 @@
2
2
 
3
3
  import { Text } from '@react-navigation/elements';
4
4
  import { Color } from '@react-navigation/elements/internal';
5
- import { useLinkBuilder, useLocale, useTheme } from '@react-navigation/native';
6
- import { StyleSheet } from 'react-native';
7
- import { TabBar, TabBarIndicator } from 'react-native-tab-view';
5
+ import { MaterialSymbol, SFSymbol, useLinkBuilder, useLocale, useTheme } from '@react-navigation/native';
6
+ import React from 'react';
7
+ import { Image, StyleSheet } from 'react-native';
8
+ import { TabBar } from 'react-native-tab-view';
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
9
10
  const MaterialLabel = ({
10
11
  color,
@@ -43,8 +44,10 @@ export function MaterialTopTabBar({
43
44
  buildHref
44
45
  } = useLinkBuilder();
45
46
  const focusedOptions = descriptors[state.routes[state.index].key].options;
46
- const activeColor = focusedOptions.tabBarActiveTintColor ?? colors.text;
47
- const inactiveColor = focusedOptions.tabBarInactiveTintColor ?? Color(activeColor)?.alpha(0.5).string() ?? (dark ? 'rgba(255, 255, 255, 0.5)' : 'rgba(0, 0, 0, 0.5)');
47
+ const tabBarVariant = focusedOptions.tabBarVariant ?? 'primary';
48
+ const activeColor = focusedOptions.tabBarActiveTintColor ?? (tabBarVariant === 'primary' ? colors.primary : colors.text);
49
+ const inactiveColor = focusedOptions.tabBarInactiveTintColor ?? Color(colors.text)?.alpha(0.68).string() ?? (dark ? 'rgba(255, 255, 255, 0.68)' : 'rgba(0, 0, 0, 0.68)');
50
+ const pressColor = focusedOptions.tabBarPressColor ?? Color(tabBarVariant === 'primary' ? colors.primary : colors.text)?.alpha(0.12).string() ?? (dark ? 'rgba(255, 255, 255, 0.12)' : 'rgba(0, 0, 0, 0.12)');
48
51
  const tabBarOptions = Object.fromEntries(state.routes.map(route => {
49
52
  const {
50
53
  options
@@ -61,12 +64,64 @@ export function MaterialTopTabBar({
61
64
  tabBarAllowFontScaling,
62
65
  tabBarLabelStyle
63
66
  } = options;
67
+ let icon;
68
+ if (tabBarShowIcon === false) {
69
+ icon = undefined;
70
+ } else if (tabBarIcon) {
71
+ icon = ({
72
+ focused,
73
+ color,
74
+ size
75
+ }) => {
76
+ const iconValue = typeof tabBarIcon === 'function' ? tabBarIcon({
77
+ focused,
78
+ color,
79
+ size
80
+ }) : tabBarIcon;
81
+ if (/*#__PURE__*/React.isValidElement(iconValue)) {
82
+ return iconValue;
83
+ }
84
+ if (typeof iconValue === 'object' && iconValue != null && 'type' in iconValue) {
85
+ switch (iconValue.type) {
86
+ case 'image':
87
+ return /*#__PURE__*/_jsx(Image, {
88
+ source: iconValue.source,
89
+ style: {
90
+ width: size,
91
+ height: size,
92
+ tintColor: iconValue.tinted === false ? undefined : color
93
+ }
94
+ });
95
+ case 'sfSymbol':
96
+ return /*#__PURE__*/_jsx(SFSymbol, {
97
+ name: iconValue.name,
98
+ size: size,
99
+ color: color
100
+ });
101
+ case 'materialSymbol':
102
+ return /*#__PURE__*/_jsx(MaterialSymbol, {
103
+ name: iconValue.name,
104
+ variant: iconValue.variant,
105
+ weight: iconValue.weight,
106
+ size: size,
107
+ color: color
108
+ });
109
+ default:
110
+ {
111
+ const _exhaustiveCheck = iconValue;
112
+ return _exhaustiveCheck;
113
+ }
114
+ }
115
+ }
116
+ return null;
117
+ };
118
+ }
64
119
  return [route.key, {
65
120
  href: buildHref(route.name, route.params),
66
121
  testID: tabBarButtonTestID,
67
122
  accessibilityLabel: tabBarAccessibilityLabel,
68
123
  badge: tabBarBadge,
69
- icon: tabBarShowIcon === false ? undefined : tabBarIcon,
124
+ icon,
70
125
  label: tabBarShowLabel === false ? undefined : typeof tabBarLabel === 'function' ? ({
71
126
  labelText,
72
127
  color
@@ -80,6 +135,7 @@ export function MaterialTopTabBar({
80
135
  labelText: options.tabBarShowLabel === false ? undefined : typeof tabBarLabel === 'string' ? tabBarLabel : title !== undefined ? title : route.name
81
136
  }];
82
137
  }));
138
+ const tabBarIndicator = focusedOptions.tabBarIndicator;
83
139
  return /*#__PURE__*/_jsx(TabBar, {
84
140
  ...rest,
85
141
  navigationState: state,
@@ -89,18 +145,20 @@ export function MaterialTopTabBar({
89
145
  bounces: focusedOptions.tabBarBounces,
90
146
  activeColor: activeColor,
91
147
  inactiveColor: inactiveColor,
92
- pressColor: focusedOptions.tabBarPressColor,
148
+ pressColor: pressColor,
93
149
  pressOpacity: focusedOptions.tabBarPressOpacity,
94
150
  tabStyle: focusedOptions.tabBarItemStyle,
95
151
  indicatorStyle: [{
96
152
  backgroundColor: colors.primary
97
153
  }, focusedOptions.tabBarIndicatorStyle],
98
154
  gap: focusedOptions.tabBarGap,
155
+ variant: tabBarVariant,
99
156
  android_ripple: focusedOptions.tabBarAndroidRipple,
100
157
  indicatorContainerStyle: focusedOptions.tabBarIndicatorContainerStyle,
101
158
  contentContainerStyle: focusedOptions.tabBarContentContainerStyle,
102
159
  style: [{
103
- backgroundColor: colors.card
160
+ backgroundColor: colors.card,
161
+ borderBottomColor: colors.border
104
162
  }, focusedOptions.tabBarStyle],
105
163
  onTabPress: ({
106
164
  route,
@@ -121,25 +179,19 @@ export function MaterialTopTabBar({
121
179
  type: 'tabLongPress',
122
180
  target: route.key
123
181
  }),
124
- renderIndicator: ({
125
- navigationState: state,
182
+ renderIndicator: tabBarIndicator ? ({
183
+ navigationState: _,
126
184
  ...rest
127
- }) => {
128
- return focusedOptions.tabBarIndicator ? focusedOptions.tabBarIndicator({
129
- state: state,
130
- ...rest
131
- }) : /*#__PURE__*/_jsx(TabBarIndicator, {
132
- navigationState: state,
133
- ...rest
134
- });
135
- }
185
+ }) => tabBarIndicator({
186
+ ...rest,
187
+ state
188
+ }) : undefined
136
189
  });
137
190
  }
138
191
  const styles = StyleSheet.create({
139
192
  label: {
140
193
  textAlign: 'center',
141
194
  fontSize: 14,
142
- margin: 4,
143
195
  backgroundColor: 'transparent'
144
196
  }
145
197
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Text","Color","useLinkBuilder","useLocale","useTheme","StyleSheet","TabBar","TabBarIndicator","jsx","_jsx","MaterialLabel","color","labelText","style","allowFontScaling","fonts","medium","styles","label","children","renderLabelDefault","props","MaterialTopTabBar","state","navigation","descriptors","rest","colors","dark","direction","buildHref","focusedOptions","routes","index","key","options","activeColor","tabBarActiveTintColor","text","inactiveColor","tabBarInactiveTintColor","alpha","string","tabBarOptions","Object","fromEntries","map","route","title","tabBarLabel","tabBarButtonTestID","tabBarAccessibilityLabel","tabBarBadge","tabBarShowIcon","tabBarShowLabel","tabBarIcon","tabBarAllowFontScaling","tabBarLabelStyle","href","name","params","testID","accessibilityLabel","badge","icon","undefined","focused","labelAllowFontScaling","labelStyle","navigationState","scrollEnabled","tabBarScrollEnabled","bounces","tabBarBounces","pressColor","tabBarPressColor","pressOpacity","tabBarPressOpacity","tabStyle","tabBarItemStyle","indicatorStyle","backgroundColor","primary","tabBarIndicatorStyle","gap","tabBarGap","android_ripple","tabBarAndroidRipple","indicatorContainerStyle","tabBarIndicatorContainerStyle","contentContainerStyle","tabBarContentContainerStyle","card","tabBarStyle","onTabPress","preventDefault","event","emit","type","target","canPreventDefault","defaultPrevented","onTabLongPress","renderIndicator","tabBarIndicator","create","textAlign","fontSize","margin"],"sourceRoot":"../../../src","sources":["views/MaterialTopTabBar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Text","Color","MaterialSymbol","SFSymbol","useLinkBuilder","useLocale","useTheme","React","Image","StyleSheet","TabBar","jsx","_jsx","MaterialLabel","color","labelText","style","allowFontScaling","fonts","medium","styles","label","children","renderLabelDefault","props","MaterialTopTabBar","state","navigation","descriptors","rest","colors","dark","direction","buildHref","focusedOptions","routes","index","key","options","tabBarVariant","activeColor","tabBarActiveTintColor","primary","text","inactiveColor","tabBarInactiveTintColor","alpha","string","pressColor","tabBarPressColor","tabBarOptions","Object","fromEntries","map","route","title","tabBarLabel","tabBarButtonTestID","tabBarAccessibilityLabel","tabBarBadge","tabBarShowIcon","tabBarShowLabel","tabBarIcon","tabBarAllowFontScaling","tabBarLabelStyle","icon","undefined","focused","size","iconValue","isValidElement","type","source","width","height","tintColor","tinted","name","variant","weight","_exhaustiveCheck","href","params","testID","accessibilityLabel","badge","labelAllowFontScaling","labelStyle","tabBarIndicator","navigationState","scrollEnabled","tabBarScrollEnabled","bounces","tabBarBounces","pressOpacity","tabBarPressOpacity","tabStyle","tabBarItemStyle","indicatorStyle","backgroundColor","tabBarIndicatorStyle","gap","tabBarGap","android_ripple","tabBarAndroidRipple","indicatorContainerStyle","tabBarIndicatorContainerStyle","contentContainerStyle","tabBarContentContainerStyle","card","borderBottomColor","border","tabBarStyle","onTabPress","preventDefault","event","emit","target","canPreventDefault","defaultPrevented","onTabLongPress","renderIndicator","_","create","textAlign","fontSize"],"sourceRoot":"../../../src","sources":["views/MaterialTopTabBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ import { ActivityView } from '@react-navigation/elements/internal';
3
4
  import { CommonActions, useLocale, useTheme } from '@react-navigation/native';
5
+ import { useMemo, useState } from 'react';
6
+ import { StyleSheet } from 'react-native';
4
7
  import { TabView } from 'react-native-tab-view';
5
8
  import { TabAnimationContext } from "../utils/TabAnimationContext.js";
6
9
  import { MaterialTopTabBar } from "./MaterialTopTabBar.js";
@@ -48,10 +51,11 @@ export function MaterialTopTabView({
48
51
  renderScene: ({
49
52
  route,
50
53
  position
51
- }) => /*#__PURE__*/_jsx(TabAnimationContext.Provider, {
52
- value: {
53
- position
54
- },
54
+ }) => /*#__PURE__*/_jsx(SceneContent, {
55
+ focused: route.key === state.routes[state.index].key,
56
+ preloaded: state.preloadedRouteKeys.includes(route.key),
57
+ position: position,
58
+ options: descriptors[route.key].options,
55
59
  children: descriptors[route.key].render()
56
60
  }),
57
61
  navigationState: state,
@@ -82,4 +86,44 @@ export function MaterialTopTabView({
82
86
  }))
83
87
  });
84
88
  }
89
+ function SceneContent({
90
+ focused,
91
+ preloaded,
92
+ position,
93
+ options,
94
+ children
95
+ }) {
96
+ const {
97
+ inactiveBehavior = 'pause',
98
+ lazy
99
+ } = options;
100
+ const [loaded, setLoaded] = useState(focused);
101
+ if (focused && !loaded) {
102
+ setLoaded(true);
103
+ }
104
+ const animationContext = useMemo(() => ({
105
+ position
106
+ }), [position]);
107
+
108
+ // For preloaded screens and if lazy is false,
109
+ // Keep them active so that the effects can run
110
+ const isActive = inactiveBehavior === 'none' || focused || preloaded || lazy === false && !loaded;
111
+ return /*#__PURE__*/_jsx(TabAnimationContext.Provider, {
112
+ value: animationContext,
113
+ children: /*#__PURE__*/_jsx(ActivityView, {
114
+ mode: isActive ? 'normal' : 'paused',
115
+ visible:
116
+ // Tabs can be swiped quickly
117
+ // So we keep all tabs visible to avoid flash of blank screen
118
+ true,
119
+ style: styles.scene,
120
+ children: children
121
+ })
122
+ });
123
+ }
124
+ const styles = StyleSheet.create({
125
+ scene: {
126
+ flex: 1
127
+ }
128
+ });
85
129
  //# sourceMappingURL=MaterialTopTabView.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","useLocale","useTheme","TabView","TabAnimationContext","MaterialTopTabBar","jsx","_jsx","renderTabBarDefault","props","MaterialTopTabView","tabBar","state","navigation","descriptors","rest","colors","direction","renderTabBar","navigationState","options","focusedOptions","routes","index","key","onIndexChange","route","dispatch","navigate","target","renderScene","position","Provider","value","children","render","renderLazyPlaceholder","lazyPlaceholder","lazy","preloadedRouteKeys","includes","lazyPreloadDistance","swipeEnabled","animationEnabled","onSwipeStart","emit","type","onSwipeEnd","Object","fromEntries","map","sceneStyle","backgroundColor","background"],"sourceRoot":"../../../src","sources":["views/MaterialTopTabView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ActivityView","CommonActions","useLocale","useTheme","useMemo","useState","StyleSheet","TabView","TabAnimationContext","MaterialTopTabBar","jsx","_jsx","renderTabBarDefault","props","MaterialTopTabView","tabBar","state","navigation","descriptors","rest","colors","direction","renderTabBar","navigationState","options","focusedOptions","routes","index","key","onIndexChange","route","dispatch","navigate","target","renderScene","position","SceneContent","focused","preloaded","preloadedRouteKeys","includes","children","render","renderLazyPlaceholder","lazyPlaceholder","lazy","lazyPreloadDistance","swipeEnabled","animationEnabled","onSwipeStart","emit","type","onSwipeEnd","Object","fromEntries","map","sceneStyle","backgroundColor","background","inactiveBehavior","loaded","setLoaded","animationContext","isActive","Provider","value","mode","visible","style","styles","scene","create","flex"],"sourceRoot":"../../../src","sources":["views/MaterialTopTabView.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Navigators
3
3
  */
4
- export { createMaterialTopTabNavigator, createMaterialTopTabScreen, } from './navigators/createMaterialTopTabNavigator';
4
+ export { createMaterialTopTabNavigator, createMaterialTopTabScreen, type MaterialTopTabTypeBag, } from './navigators/createMaterialTopTabNavigator';
5
5
  /**
6
6
  * Views
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,4CAA4C,CAAC;AAEpD;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EAChC,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,4CAA4C,CAAC;AAEpD;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EAChC,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,SAAS,CAAC"}
@@ -1,20 +1,14 @@
1
- import { type ParamListBase, type StaticConfig, type StaticParamList, type StaticScreenConfig, type StaticScreenConfigLinking, type StaticScreenConfigScreen, type TabNavigationState, type TypedNavigator } from '@react-navigation/native';
2
- import type { MaterialTopTabNavigationEventMap, MaterialTopTabNavigationOptions, MaterialTopTabNavigationProp, MaterialTopTabNavigatorProps } from '../types';
1
+ import { type NavigatorTypeBagBase, type ParamListBase, type TabActionHelpers, type TabNavigationState } from '@react-navigation/native';
2
+ import type { MaterialTopTabNavigationEventMap, MaterialTopTabNavigationOptions, MaterialTopTabNavigatorProps } from '../types';
3
3
  declare function MaterialTopTabNavigator({ initialRouteName, backBehavior, routeNamesChangeBehavior, children, layout, screenListeners, screenOptions, screenLayout, router, ...rest }: MaterialTopTabNavigatorProps): import("react/jsx-runtime").JSX.Element;
4
- type MaterialTopTabTypeBag<ParamList extends {}> = {
5
- ParamList: ParamList;
6
- State: TabNavigationState<ParamList>;
4
+ export interface MaterialTopTabTypeBag extends NavigatorTypeBagBase {
5
+ State: TabNavigationState<this['ParamList']>;
7
6
  ScreenOptions: MaterialTopTabNavigationOptions;
8
7
  EventMap: MaterialTopTabNavigationEventMap;
9
- NavigationList: {
10
- [RouteName in keyof ParamList]: MaterialTopTabNavigationProp<ParamList, RouteName>;
11
- };
8
+ ActionHelpers: TabActionHelpers<this['ParamList']>;
12
9
  Navigator: typeof MaterialTopTabNavigator;
13
- };
14
- export declare function createMaterialTopTabNavigator<const ParamList extends ParamListBase>(): TypedNavigator<MaterialTopTabTypeBag<ParamList>, undefined>;
15
- export declare function createMaterialTopTabNavigator<const Config extends StaticConfig<MaterialTopTabTypeBag<ParamListBase>>>(config: Config): TypedNavigator<MaterialTopTabTypeBag<StaticParamList<{
16
- config: Config;
17
- }>>, Config>;
18
- export declare function createMaterialTopTabScreen<const Linking extends StaticScreenConfigLinking, const Screen extends StaticScreenConfigScreen>(config: StaticScreenConfig<Linking, Screen, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap, MaterialTopTabNavigationProp<ParamListBase>>): StaticScreenConfig<Linking, Screen, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap, MaterialTopTabNavigationProp<ParamListBase>>;
10
+ }
11
+ export declare const createMaterialTopTabNavigator: import("@react-navigation/core").TypedNavigatorFactory<MaterialTopTabTypeBag>;
12
+ export declare const createMaterialTopTabScreen: import("@react-navigation/core").StaticScreenFactory<import("@react-navigation/core").NavigatorTypeBagFor<MaterialTopTabTypeBag, ParamListBase>>;
19
13
  export {};
20
14
  //# sourceMappingURL=createMaterialTopTabNavigator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createMaterialTopTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigators/createMaterialTopTabNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAE7B,KAAK,kBAAkB,EAGvB,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,gCAAgC,EAChC,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAGlB,iBAAS,uBAAuB,CAAC,EAC/B,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,EACxB,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,MAAM,EACN,GAAG,IAAI,EACR,EAAE,4BAA4B,2CA8B9B;AAED,KAAK,qBAAqB,CAAC,SAAS,SAAS,EAAE,IAAI;IACjD,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACrC,aAAa,EAAE,+BAA+B,CAAC;IAC/C,QAAQ,EAAE,gCAAgC,CAAC;IAC3C,cAAc,EAAE;SACb,SAAS,IAAI,MAAM,SAAS,GAAG,4BAA4B,CAC1D,SAAS,EACT,SAAS,CACV;KACF,CAAC;IACF,SAAS,EAAE,OAAO,uBAAuB,CAAC;CAC3C,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,KAAK,CAAC,SAAS,SAAS,aAAa,KAClC,cAAc,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;AACjE,wBAAgB,6BAA6B,CAC3C,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,EAEvE,MAAM,EAAE,MAAM,GACb,cAAc,CACf,qBAAqB,CAAC,eAAe,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,EAC1D,MAAM,CACP,CAAC;AAKF,wBAAgB,0BAA0B,CACxC,KAAK,CAAC,OAAO,SAAS,yBAAyB,EAC/C,KAAK,CAAC,MAAM,SAAS,wBAAwB,EAE7C,MAAM,EAAE,kBAAkB,CACxB,OAAO,EACP,MAAM,EACN,kBAAkB,CAAC,aAAa,CAAC,EACjC,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,CAAC,aAAa,CAAC,CAC5C,0LAGF"}
1
+ {"version":3,"file":"createMaterialTopTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigators/createMaterialTopTabNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,gCAAgC,EAChC,+BAA+B,EAC/B,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAGlB,iBAAS,uBAAuB,CAAC,EAC/B,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,EACxB,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,MAAM,EACN,GAAG,IAAI,EACR,EAAE,4BAA4B,2CA8B9B;AAED,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7C,aAAa,EAAE,+BAA+B,CAAC;IAC/C,QAAQ,EAAE,gCAAgC,CAAC;IAC3C,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,SAAS,EAAE,OAAO,uBAAuB,CAAC;CAC3C;AAED,eAAO,MAAM,6BAA6B,+EAC8B,CAAC;AAEzE,eAAO,MAAM,0BAA0B,kJACO,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { Icon } from '@react-navigation/elements';
1
2
  import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, NavigationProp, ParamListBase, Route, RouteProp, TabActionHelpers, TabNavigationState, TabRouterOptions, Theme } from '@react-navigation/native';
2
3
  import type React from 'react';
3
4
  import type { Animated, ColorValue, PressableAndroidRippleConfig, StyleProp, TextStyle, ViewStyle } from 'react-native';
@@ -42,7 +43,7 @@ export type MaterialTopTabNavigationOptions = {
42
43
  /**
43
44
  * Title text for the screen.
44
45
  */
45
- title?: string;
46
+ title?: string | undefined;
46
47
  /**
47
48
  * Title string of a tab displayed in the tab bar
48
49
  * or a function that given { focused: boolean, color: ColorValue } returns a React.Node, to display in tab bar.
@@ -53,116 +54,128 @@ export type MaterialTopTabNavigationOptions = {
53
54
  focused: boolean;
54
55
  color: ColorValue;
55
56
  children: string;
56
- }) => React.ReactNode);
57
+ }) => React.ReactNode) | undefined;
57
58
  /**
58
59
  * Accessibility label for the tab button. This is read by the screen reader when the user taps the tab.
59
60
  * It's recommended to set this if you don't have a label for the tab.
60
61
  */
61
- tabBarAccessibilityLabel?: string;
62
+ tabBarAccessibilityLabel?: string | undefined;
62
63
  /**
63
64
  * Whether label font should scale to respect Text Size accessibility settings.
64
65
  */
65
- tabBarAllowFontScaling?: boolean;
66
+ tabBarAllowFontScaling?: boolean | undefined;
66
67
  /**
67
68
  * Whether the tab label should be visible. Defaults to `true`.
68
69
  */
69
- tabBarShowLabel?: boolean;
70
+ tabBarShowLabel?: boolean | undefined;
70
71
  /**
71
- * A function that given { focused: boolean, color: ColorValue } returns a React.Node to display in the tab bar.
72
+ * Icon to display for the tab.
72
73
  */
73
- tabBarIcon?: (props: {
74
+ tabBarIcon?: Icon | ((props: {
74
75
  focused: boolean;
75
76
  color: ColorValue;
76
- }) => React.ReactElement;
77
+ size: number;
78
+ }) => Icon | React.ReactNode);
77
79
  /**
78
80
  * Whether the tab icon should be visible. Defaults to `false`.
79
81
  */
80
- tabBarShowIcon?: boolean;
82
+ tabBarShowIcon?: boolean | undefined;
81
83
  /**
82
84
  * Function that returns a React element to use as a badge for the tab.
83
85
  */
84
- tabBarBadge?: () => React.ReactElement;
86
+ tabBarBadge?: (() => React.ReactElement) | undefined;
85
87
  /**
86
88
  * Function that returns a React element as the tab bar indicator.
87
89
  */
88
- tabBarIndicator?: (props: Omit<Parameters<NonNullable<React.ComponentProps<typeof TabBar>['renderIndicator']>>[0], 'navigationState'> & {
90
+ tabBarIndicator?: ((props: Omit<Parameters<NonNullable<React.ComponentProps<typeof TabBar>['renderIndicator']>>[0], 'navigationState'> & {
89
91
  state: TabNavigationState<ParamListBase>;
90
- }) => React.ReactNode;
92
+ }) => React.ReactNode) | undefined;
93
+ /**
94
+ * Variant of the tab bar.
95
+ *
96
+ * The following variants are available:
97
+ *
98
+ * - `primary`: the indicator matches the label & icon width and is centered under the tab.
99
+ * - `secondary`: the indicator spans the full tab width.
100
+ *
101
+ * Defaults to `primary`.
102
+ */
103
+ tabBarVariant?: 'primary' | 'secondary' | undefined;
91
104
  /**
92
105
  * Style object for the tab bar indicator.
93
106
  */
94
- tabBarIndicatorStyle?: StyleProp<ViewStyle>;
107
+ tabBarIndicatorStyle?: StyleProp<ViewStyle> | undefined;
95
108
  /**
96
109
  * Style object for the view containing the tab bar indicator.
97
110
  */
98
- tabBarIndicatorContainerStyle?: StyleProp<ViewStyle>;
111
+ tabBarIndicatorContainerStyle?: StyleProp<ViewStyle> | undefined;
99
112
  /**
100
113
  * ID to locate this tab button in tests.
101
114
  */
102
- tabBarButtonTestID?: string;
115
+ tabBarButtonTestID?: string | undefined;
103
116
  /**
104
117
  * Color for the icon and label in the active tab.
105
118
  */
106
- tabBarActiveTintColor?: ColorValue;
119
+ tabBarActiveTintColor?: ColorValue | undefined;
107
120
  /**
108
121
  * Color for the icon and label in the inactive tabs.
109
122
  */
110
- tabBarInactiveTintColor?: ColorValue;
123
+ tabBarInactiveTintColor?: ColorValue | undefined;
111
124
  /**
112
125
  * Color for material ripple (Android >= 5.0 only).
113
126
  */
114
- tabBarPressColor?: ColorValue;
127
+ tabBarPressColor?: ColorValue | undefined;
115
128
  /**
116
129
  * Opacity for pressed tab (iOS and Android < 5.0 only).
117
130
  */
118
- tabBarPressOpacity?: number;
131
+ tabBarPressOpacity?: number | undefined;
119
132
  /**
120
133
  * Boolean indicating whether the tab bar bounces when overscrolling.
121
134
  */
122
- tabBarBounces?: boolean;
135
+ tabBarBounces?: boolean | undefined;
123
136
  /**
124
137
  * Boolean indicating whether to make the tab bar scrollable.
125
138
  *
126
139
  * If you set this to `true`, you should also specify a width in `tabBarItemStyle` to improve the performance of initial render.
127
140
  */
128
- tabBarScrollEnabled?: boolean;
141
+ tabBarScrollEnabled?: boolean | undefined;
129
142
  /**
130
143
  * Style object for the tab label.
131
144
  */
132
- tabBarLabelStyle?: StyleProp<TextStyle>;
145
+ tabBarLabelStyle?: StyleProp<TextStyle> | undefined;
133
146
  /**
134
147
  * Style object for the individual tab items.
135
148
  */
136
- tabBarItemStyle?: StyleProp<ViewStyle>;
149
+ tabBarItemStyle?: StyleProp<ViewStyle> | undefined;
137
150
  /**
138
151
  * Style object for the view containing the tab items.
139
152
  */
140
- tabBarContentContainerStyle?: StyleProp<ViewStyle>;
153
+ tabBarContentContainerStyle?: StyleProp<ViewStyle> | undefined;
141
154
  /**
142
155
  * Style object for the the tab bar.
143
156
  */
144
- tabBarStyle?: StyleProp<ViewStyle>;
157
+ tabBarStyle?: StyleProp<ViewStyle> | undefined;
145
158
  /**
146
159
  * Gap between tabs
147
160
  */
148
- tabBarGap?: number;
161
+ tabBarGap?: number | undefined;
149
162
  /**
150
163
  * Allows to customize the android ripple effect (Android >= 5.0 only).
151
164
  *
152
- * Default: `{ borderless: true }`
165
+ * Default: `{ borderless: false, foreground: true }`
153
166
  */
154
- tabBarAndroidRipple?: PressableAndroidRippleConfig;
167
+ tabBarAndroidRipple?: PressableAndroidRippleConfig | undefined;
155
168
  /**
156
169
  * Whether to enable swipe gestures when this screen is focused.
157
170
  * Swipe gestures are enabled by default. Passing `false` will disable swipe gestures,
158
171
  * but the user can still switch tabs by pressing the tab bar.
159
172
  */
160
- swipeEnabled?: boolean;
173
+ swipeEnabled?: boolean | undefined;
161
174
  /**
162
175
  * Whether to enable animations when switching between tabs by pressing on the tab bar or programmatically.
163
176
  * Switching tab via swipe gesture will still result in an animation.
164
177
  */
165
- animationEnabled?: boolean;
178
+ animationEnabled?: boolean | undefined;
166
179
  /**
167
180
  * Whether this screen should be lazily rendered. When this is set to `true`,
168
181
  * the screen will be rendered as it comes into the viewport.
@@ -174,12 +187,12 @@ export type MaterialTopTabNavigationOptions = {
174
187
  * when they come into the viewport. You can use the `lazyPlaceholder` prop to customize
175
188
  * what the user sees during this short period.
176
189
  */
177
- lazy?: boolean;
190
+ lazy?: boolean | undefined;
178
191
  /**
179
192
  * When `lazy` is enabled, you can specify how many adjacent screens should be preloaded in advance with this prop.
180
193
  * This value defaults to `0` which means lazy pages are loaded as they come into the viewport.
181
194
  */
182
- lazyPreloadDistance?: number;
195
+ lazyPreloadDistance?: number | undefined;
183
196
  /**
184
197
  * Function that returns a React element to render if this screen hasn't been rendered yet.
185
198
  * The `lazy` option also needs to be enabled for this to work.
@@ -188,11 +201,23 @@ export type MaterialTopTabNavigationOptions = {
188
201
  *
189
202
  * By default, this renders `null`.
190
203
  */
191
- lazyPlaceholder?: () => React.ReactNode;
204
+ lazyPlaceholder?: (() => React.ReactNode) | undefined;
192
205
  /**
193
206
  * Style object for the component wrapping the screen content.
194
207
  */
195
- sceneStyle?: StyleProp<ViewStyle>;
208
+ sceneStyle?: StyleProp<ViewStyle> | undefined;
209
+ /**
210
+ * What should happen when screens become inactive.
211
+ * - `pause`: Effects are cleaned up.
212
+ * - `none`: Screen renders normally
213
+ *
214
+ * Defaults to `pause`.
215
+ *
216
+ * If you set `lazy: false` or preload a screen,
217
+ * It won't be paused until after the first time it becomes focused.
218
+ * This makes sure that effects are run to initialize the screen.
219
+ */
220
+ inactiveBehavior?: ('pause' | 'none') | undefined;
196
221
  };
197
222
  export type MaterialTopTabDescriptor = Descriptor<MaterialTopTabNavigationOptions, MaterialTopTabNavigationProp<ParamListBase>, RouteProp<ParamListBase>>;
198
223
  export type MaterialTopTabDescriptorMap = Record<string, MaterialTopTabDescriptor>;
@@ -200,11 +225,11 @@ export type MaterialTopTabNavigationConfig = Omit<TabViewProps<Route<string>>, '
200
225
  /**
201
226
  * Function that returns a React element to display as the tab bar.
202
227
  */
203
- tabBar?: (props: MaterialTopTabBarProps) => React.ReactNode;
228
+ tabBar?: ((props: MaterialTopTabBarProps) => React.ReactNode) | undefined;
204
229
  /**
205
230
  * Function that returns a React element to override the underlying adapter.
206
231
  */
207
- adapter?: TabViewProps<Route<string>>['renderAdapter'];
232
+ adapter?: TabViewProps<Route<string>>['renderAdapter'] | undefined;
208
233
  };
209
234
  export type MaterialTopTabBarProps = Pick<TabBarProps<Route<string>>, 'position' | 'subscribe' | 'jumpTo'> & {
210
235
  state: TabNavigationState<ParamListBase>;