first commit

This commit is contained in:
2026-03-10 16:18:05 +00:00
commit 11f9c069b5
31635 changed files with 3187747 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import BottomTabsAccessoryNativeComponent from '../../fabric/bottom-tabs/BottomTabsAccessoryNativeComponent';
import { StyleSheet } from 'react-native';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
export default function TabsAccessory(props) {
return /*#__PURE__*/React.createElement(BottomTabsAccessoryNativeComponent, _extends({}, props, {
collapsable: false,
style: [props.style, StyleSheet.absoluteFill]
}));
}
//# sourceMappingURL=TabsAccessory.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","BottomTabsAccessoryNativeComponent","StyleSheet","TabsAccessory","props","createElement","_extends","collapsable","style","absoluteFill"],"sourceRoot":"../../../../src","sources":["components/tabs/TabsAccessory.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,kCAAkC,MAAM,6DAA6D;AAE5G,SAASC,UAAU,QAAQ,cAAc;;AAEzC;AACA;AACA;AACA,eAAe,SAASC,aAAaA,CAACC,KAAyB,EAAE;EAC/D,oBACEJ,KAAA,CAAAK,aAAA,CAACJ,kCAAkC,EAAAK,QAAA,KAC7BF,KAAK;IACTG,WAAW,EAAE,KAAM;IACnBC,KAAK,EAAE,CAACJ,KAAK,CAACI,KAAK,EAAEN,UAAU,CAACO,YAAY;EAAE,EAC/C,CAAC;AAEN","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=TabsAccessory.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/tabs/TabsAccessory.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,15 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { StyleSheet } from 'react-native';
import BottomTabsAccessoryContentNativeComponent from '../../fabric/bottom-tabs/BottomTabsAccessoryContentNativeComponent';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
export default function TabsAccessoryContent(props) {
return /*#__PURE__*/React.createElement(BottomTabsAccessoryContentNativeComponent, _extends({}, props, {
collapsable: false,
style: [props.style, StyleSheet.absoluteFill]
}));
}
//# sourceMappingURL=TabsAccessoryContent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","BottomTabsAccessoryContentNativeComponent","TabsAccessoryContent","props","createElement","_extends","collapsable","style","absoluteFill"],"sourceRoot":"../../../../src","sources":["components/tabs/TabsAccessoryContent.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AAEzC,OAAOC,yCAAyC,MAAM,oEAAoE;;AAE1H;AACA;AACA;AACA,eAAe,SAASC,oBAAoBA,CAACC,KAAgC,EAAE;EAC7E,oBACEJ,KAAA,CAAAK,aAAA,CAACH,yCAAyC,EAAAI,QAAA,KACpCF,KAAK;IACTG,WAAW,EAAE,KAAM;IACnBC,KAAK,EAAE,CAACJ,KAAK,CAACI,KAAK,EAAEP,UAAU,CAACQ,YAAY;EAAE,EAC/C,CAAC;AAEN","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=TabsAccessoryContent.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/tabs/TabsAccessoryContent.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,64 @@
'use client';
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React, { useState } from 'react';
import { Platform, StyleSheet, findNodeHandle } from 'react-native';
import BottomTabsNativeComponent from '../../fabric/bottom-tabs/BottomTabsNativeComponent';
import featureFlags from '../../flags';
import { bottomTabsDebugLog } from '../../private/logging';
import TabsAccessory from './TabsAccessory';
import TabsAccessoryContent from './TabsAccessoryContent';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function TabsHost(props) {
bottomTabsDebugLog(`TabsHost render`);
const {
onNativeFocusChange,
experimentalControlNavigationStateInJS = featureFlags.experiment.controlledBottomTabs,
bottomAccessory,
nativeContainerStyle,
...filteredProps
} = props;
const componentNodeRef = React.useRef(null);
const componentNodeHandle = React.useRef(-1);
React.useEffect(() => {
if (componentNodeRef.current != null) {
componentNodeHandle.current = findNodeHandle(componentNodeRef.current) ?? -1;
} else {
componentNodeHandle.current = -1;
}
}, []);
const onNativeFocusChangeCallback = React.useCallback(event => {
bottomTabsDebugLog(`TabsHost [${componentNodeHandle.current ?? -1}] onNativeFocusChange: ${JSON.stringify(event.nativeEvent)}`);
onNativeFocusChange?.(event);
}, [onNativeFocusChange]);
const [bottomAccessoryEnvironment, setBottomAccessoryEnvironment] = useState('regular');
return /*#__PURE__*/React.createElement(BottomTabsNativeComponent, _extends({
style: styles.fillParent,
onNativeFocusChange: onNativeFocusChangeCallback,
controlNavigationStateInJS: experimentalControlNavigationStateInJS,
nativeContainerBackgroundColor: nativeContainerStyle?.backgroundColor
// @ts-ignore suppress ref - debug only
,
ref: componentNodeRef
}, filteredProps), filteredProps.children, bottomAccessory && Platform.OS === 'ios' && parseInt(Platform.Version, 10) >= 26 && (Platform.constants.reactNativeVersion.minor >= 82 ? /*#__PURE__*/React.createElement(TabsAccessory, null, /*#__PURE__*/React.createElement(TabsAccessoryContent, {
environment: "regular"
}, bottomAccessory('regular')), /*#__PURE__*/React.createElement(TabsAccessoryContent, {
environment: "inline"
}, bottomAccessory('inline'))) : /*#__PURE__*/React.createElement(TabsAccessory, {
onEnvironmentChange: event => {
setBottomAccessoryEnvironment(event.nativeEvent.environment);
}
}, bottomAccessory(bottomAccessoryEnvironment))));
}
export default TabsHost;
const styles = StyleSheet.create({
fillParent: {
flex: 1,
width: '100%',
height: '100%'
}
});
//# sourceMappingURL=TabsHost.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","useState","Platform","StyleSheet","findNodeHandle","BottomTabsNativeComponent","featureFlags","bottomTabsDebugLog","TabsAccessory","TabsAccessoryContent","TabsHost","props","onNativeFocusChange","experimentalControlNavigationStateInJS","experiment","controlledBottomTabs","bottomAccessory","nativeContainerStyle","filteredProps","componentNodeRef","useRef","componentNodeHandle","useEffect","current","onNativeFocusChangeCallback","useCallback","event","JSON","stringify","nativeEvent","bottomAccessoryEnvironment","setBottomAccessoryEnvironment","createElement","style","styles","fillParent","controlNavigationStateInJS","nativeContainerBackgroundColor","backgroundColor","ref","children","OS","parseInt","Version","constants","reactNativeVersion","minor","environment","onEnvironmentChange","create","flex","width","height"],"sourceRoot":"../../../../src","sources":["components/tabs/TabsHost.tsx"],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=TabsHost.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/tabs/TabsHost.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,4 @@
import { View } from 'react-native';
const TabsHost = View;
export default TabsHost;
//# sourceMappingURL=TabsHost.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","TabsHost"],"sourceRoot":"../../../../src","sources":["components/tabs/TabsHost.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,QAAQ,GAAGD,IAAI;AAErB,eAAeC,QAAQ","ignoreList":[]}

View File

@@ -0,0 +1,251 @@
'use client';
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { Freeze } from 'react-freeze';
import { Image, Platform, StyleSheet, findNodeHandle, processColor } from 'react-native';
import { freezeEnabled } from '../../core';
import BottomTabsScreenNativeComponent from '../../fabric/bottom-tabs/BottomTabsScreenNativeComponent';
import { featureFlags } from '../../flags';
import { bottomTabsDebugLog } from '../../private/logging';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function TabsScreen(props) {
const componentNodeRef = React.useRef(null);
const componentNodeHandle = React.useRef(-1);
React.useEffect(() => {
if (componentNodeRef.current != null) {
componentNodeHandle.current = findNodeHandle(componentNodeRef.current) ?? -1;
} else {
componentNodeHandle.current = -1;
}
}, []);
const [nativeViewIsVisible, setNativeViewIsVisible] = React.useState(false);
const {
onWillAppear,
onDidAppear,
onWillDisappear,
onDidDisappear,
isFocused = false,
freezeContents,
icon,
selectedIcon,
standardAppearance,
scrollEdgeAppearance,
scrollEdgeEffects,
// eslint-disable-next-line camelcase -- we use sneak case experimental prefix
experimental_userInterfaceStyle,
style,
...rest
} = props;
const shouldFreeze = shouldFreezeScreen(nativeViewIsVisible, isFocused, freezeContents);
const onWillAppearCallback = React.useCallback(event => {
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current}] onWillAppear received`);
setNativeViewIsVisible(true);
onWillAppear?.(event);
}, [onWillAppear]);
const onDidAppearCallback = React.useCallback(event => {
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current}] onDidAppear received`);
onDidAppear?.(event);
}, [onDidAppear]);
const onWillDisappearCallback = React.useCallback(event => {
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current}] onWillDisappear received`);
onWillDisappear?.(event);
}, [onWillDisappear]);
const onDidDisappearCallback = React.useCallback(event => {
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current}] onDidDisappear received`);
setNativeViewIsVisible(false);
onDidDisappear?.(event);
}, [onDidDisappear]);
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current ?? -1}] render; tabKey: ${rest.tabKey} shouldFreeze: ${shouldFreeze}, isFocused: ${isFocused} nativeViewIsVisible: ${nativeViewIsVisible}`);
const iconProps = parseIconsToNativeProps(icon, selectedIcon);
return /*#__PURE__*/React.createElement(BottomTabsScreenNativeComponent, _extends({
collapsable: false,
style: [style, styles.fillParent],
onWillAppear: onWillAppearCallback,
onDidAppear: onDidAppearCallback,
onWillDisappear: onWillDisappearCallback,
onDidDisappear: onDidDisappearCallback,
isFocused: isFocused
}, iconProps, {
standardAppearance: mapAppearanceToNativeProp(standardAppearance),
scrollEdgeAppearance: mapAppearanceToNativeProp(scrollEdgeAppearance)
// @ts-ignore - This is debug only anyway
,
ref: componentNodeRef,
bottomScrollEdgeEffect: scrollEdgeEffects?.bottom,
leftScrollEdgeEffect: scrollEdgeEffects?.left,
rightScrollEdgeEffect: scrollEdgeEffects?.right,
topScrollEdgeEffect: scrollEdgeEffects?.top,
isTitleUndefined: rest.title === null || rest.title === undefined
// eslint-disable-next-line camelcase -- we use sneak case experimental prefix
,
userInterfaceStyle: experimental_userInterfaceStyle
}, rest), /*#__PURE__*/React.createElement(Freeze, {
freeze: shouldFreeze,
placeholder: rest.placeholder
}, rest.children));
}
function mapAppearanceToNativeProp(appearance) {
if (!appearance) return undefined;
const {
stacked,
inline,
compactInline,
tabBarBackgroundColor,
tabBarShadowColor
} = appearance;
return {
...appearance,
stacked: mapItemAppearanceToNativeProp(stacked),
inline: mapItemAppearanceToNativeProp(inline),
compactInline: mapItemAppearanceToNativeProp(compactInline),
tabBarBackgroundColor: processColor(tabBarBackgroundColor),
tabBarShadowColor: processColor(tabBarShadowColor)
};
}
function mapItemAppearanceToNativeProp(itemAppearance) {
if (!itemAppearance) return undefined;
const {
normal,
selected,
focused,
disabled
} = itemAppearance;
return {
...itemAppearance,
normal: mapItemStateAppearanceToNativeProp(normal),
selected: mapItemStateAppearanceToNativeProp(selected),
focused: mapItemStateAppearanceToNativeProp(focused),
disabled: mapItemStateAppearanceToNativeProp(disabled)
};
}
function mapItemStateAppearanceToNativeProp(itemStateAppearance) {
if (!itemStateAppearance) return undefined;
const {
tabBarItemTitleFontColor,
tabBarItemIconColor,
tabBarItemBadgeBackgroundColor,
tabBarItemTitleFontWeight
} = itemStateAppearance;
return {
...itemStateAppearance,
tabBarItemTitleFontColor: processColor(tabBarItemTitleFontColor),
tabBarItemIconColor: processColor(tabBarItemIconColor),
tabBarItemBadgeBackgroundColor: processColor(tabBarItemBadgeBackgroundColor),
tabBarItemTitleFontWeight: tabBarItemTitleFontWeight !== undefined ? String(tabBarItemTitleFontWeight) : undefined
};
}
function shouldFreezeScreen(nativeViewVisible, screenFocused, freezeOverride) {
if (!freezeEnabled()) {
return false;
}
if (freezeOverride !== undefined) {
return freezeOverride;
}
if (featureFlags.experiment.controlledBottomTabs) {
// If the tabs are JS controlled, we want to freeze only when given view is not focused && it is not currently visible
return !nativeViewVisible && !screenFocused;
}
return !nativeViewVisible;
}
function parseAndroidIconToNativeProps(icon) {
if (!icon) {
return {};
}
let parsedIconResource;
if (icon.type === 'imageSource') {
parsedIconResource = Image.resolveAssetSource(icon.imageSource);
if (!parsedIconResource) {
console.error('[RNScreens] failed to resolve an asset for bottom tab icon');
}
return {
// I'm keeping undefined as a fallback if `Image.resolveAssetSource` has failed for some reason.
// It won't render any icon, but it will prevent from crashing on the native side which is expecting
// ReadableMap. Passing `iconResource` directly will result in crash, because `require` API is returning
// double as a value.
imageIconResource: parsedIconResource || undefined
};
} else if (icon.type === 'drawableResource') {
return {
drawableIconResourceName: icon.name
};
} else {
throw new Error('[RNScreens] Incorrect icon format for Android. You must provide `imageSource` or `drawableResource`.');
}
}
function parseIOSIconToNativeProps(icon) {
if (!icon) {
return {};
}
if (icon.type === 'sfSymbol') {
return {
iconType: 'sfSymbol',
iconResourceName: icon.name
};
} else if (icon.type === 'imageSource') {
return {
iconType: 'image',
iconImageSource: icon.imageSource
};
} else if (icon.type === 'templateSource') {
return {
iconType: 'template',
iconImageSource: icon.templateSource
};
} else if (icon.type === 'xcasset') {
return {
iconType: 'xcasset',
iconResourceName: icon.name
};
} else {
throw new Error('[RNScreens] Incorrect icon format for iOS. You must provide `sfSymbol`, `imageSource`, `templateSource` or `xcasset`.');
}
}
function parseIconsToNativeProps(icon, selectedIcon) {
if (Platform.OS === 'android') {
const androidNativeProps = parseAndroidIconToNativeProps(icon?.android || icon?.shared);
return {
...androidNativeProps
};
}
if (Platform.OS === 'ios') {
const {
iconImageSource,
iconResourceName,
iconType
} = parseIOSIconToNativeProps(icon?.ios || icon?.shared);
const {
iconImageSource: selectedIconImageSource,
iconResourceName: selectedIconResourceName,
iconType: selectedIconType
} = parseIOSIconToNativeProps(selectedIcon);
if (iconType !== undefined && selectedIconType !== undefined && iconType !== selectedIconType) {
throw new Error('[RNScreens] icon and selectedIcon must be same type.');
} else if (iconType === undefined && selectedIconType !== undefined) {
// iOS-specific: UIKit requirement
throw new Error('[RNScreens] To use selectedIcon prop, the icon prop must also be provided.');
}
return {
iconType,
iconImageSource,
iconResourceName,
selectedIconImageSource,
selectedIconResourceName
};
}
// Fallback for other platforms
return {};
}
export default TabsScreen;
const styles = StyleSheet.create({
fillParent: {
position: 'absolute',
flex: 1,
width: '100%',
height: '100%'
}
});
//# sourceMappingURL=TabsScreen.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=TabsScreen.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/tabs/TabsScreen.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,4 @@
import { View } from 'react-native';
const TabsScreen = View;
export default TabsScreen;
//# sourceMappingURL=TabsScreen.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","TabsScreen"],"sourceRoot":"../../../../src","sources":["components/tabs/TabsScreen.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,UAAU,GAAGD,IAAI;AAEvB,eAAeC,UAAU","ignoreList":[]}

View File

@@ -0,0 +1,11 @@
import TabsHost from './TabsHost';
import TabsScreen from './TabsScreen';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
const Tabs = {
Host: TabsHost,
Screen: TabsScreen
};
export default Tabs;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["TabsHost","TabsScreen","Tabs","Host","Screen"],"sourceRoot":"../../../../src","sources":["components/tabs/index.ts"],"mappings":"AAAA,OAAOA,QAAQ,MAAM,YAAY;AACjC,OAAOC,UAAU,MAAM,cAAc;AAMrC;AACA;AACA;AACA,MAAMC,IAAI,GAAG;EACXC,IAAI,EAAEH,QAAQ;EACdI,MAAM,EAAEH;AACV,CAAC;AAED,eAAeC,IAAI","ignoreList":[]}