UNPKG

@r3l/app

Version:
105 lines (81 loc) 2.46 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.transtionConfig = transtionConfig; exports.setTopLevelNavigator = setTopLevelNavigator; exports.getNavigator = getNavigator; exports.dispatchNavigatorAction = dispatchNavigatorAction; exports.getCurrentRouteAndTab = getCurrentRouteAndTab; exports.withProps = exports.getScreenSize = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _reactNativeWeb = require("react-native-web"); var _screens = require("../styles/screens"); function transtionConfig() { return { timing: _reactNativeWeb.Animated.spring, useNativeDriver: true, speed: 20, bounciness: 0, overshootClamping: true }; } var getScreenSize = function getScreenSize(width) { var breakpoints = [_screens.mediumScreenWidth, _screens.smallScreenWidth]; var screenSize = 0; for (var i = 0; i < breakpoints.length; i++) { screenSize = i; if (width > breakpoints[i]) return screenSize; } return screenSize; }; exports.getScreenSize = getScreenSize; var withProps = function withProps(component) { var Comp = component; return function (navProps) { return /*#__PURE__*/_react.default.createElement(Comp, (0, _extends2.default)({ navigation: navProps.navigation }, navProps.screenProps)); }; }; exports.withProps = withProps; var _navigator; var actionCache = []; function setTopLevelNavigator(navigatorRef) { _navigator = navigatorRef; if (_navigator) { actionCache.forEach(_navigator.dispatch); actionCache = []; } } function getNavigator() { return _navigator; } function dispatchNavigatorAction(action) { if (!_navigator && action) { actionCache.push(action); return console.warn('TopLevelNavigator not ready!'); // eslint-disable-line } return _navigator.dispatch(action); } function getCurrentRouteAndTab() { if (!_navigator) return {}; var route = _navigator.state.nav; var tab; var tabChildrenCount = 0; while (route.routes) { route = route.routes[route.index]; if (tab) tabChildrenCount++; if (route.routeName === 'main') { tab = route.routes[route.index]; } } return { route: route, tab: tab, tabChildrenCount: tabChildrenCount }; } //# sourceMappingURL=nav.js.map