UNPKG

@r3l/app

Version:
116 lines (92 loc) 3.32 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DrawerRouter; exports.MainStack = void 0; var _react = _interopRequireDefault(require("react")); var _reactRedux = require("react-redux"); var _app = _interopRequireDefault(require("./app.container")); var _reactNavigation = require("react-navigation"); var _reactNavigationDrawer = require("react-navigation-drawer"); var _sideNav = _interopRequireDefault(require("../../navigation/mobile/sideNav.component")); var _global = require("../../../styles/global"); var _nav = require("../../../utils/nav"); var _analytics = _interopRequireDefault(require("@react-native-firebase/analytics")); var _utils = require("../../discover/utils"); var Analytics = (0, _analytics.default)(); var MainStack = (0, _reactNavigationDrawer.createDrawerNavigator)({ container: { screen: _app.default, path: '', navigationOptions: function navigationOptions(props) { var discoverTab = props.screenProps.discoverTab; var _getCurrentRouteAndTa = (0, _nav.getCurrentRouteAndTab)(), tab = _getCurrentRouteAndTa.tab; var tabName = tab && tab.routeName; var discoverId = _utils.routes.findIndex(function (t) { return t.key === discoverTab; }); var isLocked = discoverId > 0 && tabName === 'discover' || tab && tab.index > 0 || !tab; return { header: null, drawerLockMode: isLocked ? 'locked-closed' : 'unlocked' }; } } }, { drawerType: 'slide', edgeWidth: _global.fullWidth, overlayColor: 'rgba(0, 0, 0, 0.3)', minSwipeDistance: 10, useNativeAnimations: true, contentComponent: _sideNav.default, gestureEnabled: true, drawerWidth: function drawerWidth() { return Math.min(320, _global.fullWidth * 0.9); }, defaultNavigationOptions: function defaultNavigationOptions() { return { gestureResponseDistance: { horizontal: _global.fullWidth } }; } }); exports.MainStack = MainStack; var MainNavigator = (0, _reactNavigation.createAppContainer)(MainStack); function DrawerRouter() { var discoverTab = (0, _reactRedux.useSelector)(function (state) { return state.navigation.discover.view; }); return /*#__PURE__*/_react.default.createElement(MainNavigator, { screenProps: { discoverTab: discoverTab }, uriPrefix: 'https://relevant.community/', ref: function ref(navigatorRef) { (0, _nav.setTopLevelNavigator)(navigatorRef); }, onNavigationStateChange: function onNavigationStateChange(prevState, currentState) { var currentScreen = getActiveRouteName(currentState); var prevScreen = getActiveRouteName(prevState); if (prevScreen !== currentScreen) { Analytics.logEvent('screenView', { viewName: currentScreen }); } } }); } // gets the current screen from navigation state function getActiveRouteName(navigationState) { if (!navigationState) { return null; } var route = navigationState.routes[navigationState.index]; // dive into nested navigators if (route.routes) { return getActiveRouteName(route); } return route.routeName; } //# sourceMappingURL=drawerRouter.js.map