UNPKG

@r3l/app

Version:
405 lines (350 loc) 9.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.setDiscoverLoading = setDiscoverLoading; exports.showAuth = showAuth; exports.lockDrawer = lockDrawer; exports.showModal = showModal; exports.hideModal = hideModal; exports.scrolling = scrolling; exports.registerGesture = registerGesture; exports.closeDrawer = closeDrawer; exports.push = push; exports.pop = pop; exports.replace = replace; exports.toggleTopics = toggleTopics; exports.goToTab = goToTab; exports.resetTabs = resetTabs; exports.goToTopic = goToTopic; exports.setScrollTab = setScrollTab; exports.setWidth = setWidth; exports.refreshTab = refreshTab; exports.reloadTab = reloadTab; exports.reloadAllTabs = reloadAllTabs; exports.openWebSideNav = openWebSideNav; exports.closeWebSideNav = closeWebSideNav; exports.goToPeople = goToPeople; exports.goToUrl = goToUrl; exports.goToComments = goToComments; exports.goToPost = goToPost; exports.goToProfile = goToProfile; exports.viewBlocked = viewBlocked; exports.viewInvites = viewInvites; exports.goToInviteList = goToInviteList; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _actionTypes = require("../../core/actionTypes"); var _tooltip = require("../tooltip/tooltip.actions"); var _nav = require("../../utils/nav"); var _auth = require("../auth/auth.actions"); // eslint-disable-line var dismissKeyboard; var safariView; var Orientation; var NavigationActions; var StackActions; var DrawerActions; var Linking; var native; var isNative = process.env.WEB !== 'true'; if (process.env.WEB !== 'true') { Orientation = require('react-native-orientation'); dismissKeyboard = require('react-native-dismiss-keyboard'); safariView = require('react-native-safari-view').default; NavigationActions = require('react-navigation').NavigationActions; StackActions = require('react-navigation').StackActions; DrawerActions = require('react-navigation-drawer').DrawerActions; Linking = require("react-native-web").Linking; native = true; } function setDiscoverLoading(payload) { return { type: _actionTypes.SET_DISCOVER_LOADING, payload: payload }; } function showAuth() { return function (dispatch) { return isNative ? (0, _nav.dispatchNavigatorAction)(NavigationActions.navigate({ routeName: 'auth' })) : dispatch(showModal('login')); }; } function lockDrawer(lock) { return { type: _actionTypes.LOCK_DRAWER, payload: lock }; } function showModal(modal, data) { return { type: _actionTypes.SHOW_MODAL, payload: { modal: modal, data: data } }; } function hideModal(modal) { return { type: _actionTypes.HIDE_MODAL, payload: modal }; } function scrolling(scroll) { return { type: _actionTypes.SCROLL, payload: scroll }; } function registerGesture(gesture) { return { type: _actionTypes.REGISTER_GESTURE, payload: gesture }; } function closeDrawer() { return function () { return native ? (0, _nav.dispatchNavigatorAction)(DrawerActions.closeDrawer()) : null; }; } function push(route) { return function (dispatch) { if (dismissKeyboard) dismissKeyboard(); if (native) { (0, _nav.dispatchNavigatorAction)(DrawerActions.closeDrawer()); (0, _nav.dispatchNavigatorAction)(StackActions.push({ routeName: route.key || route, params: route })); } // check if we need this // console.log('c', route.community, route.community !== 'undefined'); if (route.community && route.community !== '') { requestAnimationFrame(function () { return dispatch((0, _auth.setCommunity)(route.community)); }); } }; } function pop() { return function () { (0, _nav.dispatchNavigatorAction)(NavigationActions.back()); }; } function replace(key) { return function () { (0, _nav.dispatchNavigatorAction)(StackActions.replace({ routeName: key })); }; } function toggleTopics(showTopics) { return { type: _actionTypes.TOGGLE_TOPICS, payload: showTopics }; } function goToTab(tab) { return function () { if (!native) return; (0, _nav.dispatchNavigatorAction)(DrawerActions.closeDrawer()); (0, _nav.dispatchNavigatorAction)(NavigationActions.navigate({ routeName: tab })); }; } function resetTabs() { return function () { if (!native) return; var resetAction = NavigationActions.navigate({ routeName: 'discover' }); // const resetAction = StackActions.reset({ // index: 0, // actions: [NavigationActions.navigate({ routeName: 'discover' })], // }); (0, _nav.dispatchNavigatorAction)(resetAction); }; } function goToTopic(topic) { return function (dispatch) { (0, _nav.dispatchNavigatorAction)(NavigationActions.navigate({ routeName: 'discover' })); dispatch(push({ key: 'discoverTag', title: topic.categoryName || topic, back: true, id: topic._id || topic.topic || topic, topic: topic, gestureResponseDistance: 150 })); }; } function setScrollTab(type, params) { return { type: _actionTypes.SET_SCROLL_TAB, payload: { type: type, params: params } }; } function setWidth(width) { var screenSize = (0, _nav.getScreenSize)(width); return { type: _actionTypes.SET_WIDTH, payload: { width: width, screenSize: screenSize } }; } function refreshTab(key) { return { type: _actionTypes.REFRESH_ROUTE, key: key }; } function reloadTab(key) { return { type: _actionTypes.RELOAD_ROUTE, key: key }; } function reloadAllTabs() { return { type: _actionTypes.RELOAD_ALL_TABS }; } function openWebSideNav() { return { type: _actionTypes.OPEN_WEB_SIDE_NAV }; } function closeWebSideNav() { return { type: _actionTypes.CLOSE_WEB_SIDE_NAV }; } function goToPeople(topic) { return push({ key: 'peopleView', component: 'peopleView', title: topic ? '#' + topic : 'People', back: true, id: topic + '_people', topic: topic ? { _id: topic.toLowerCase() } : null }); } function goToUrl(url, id) { return /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(dispatch) { return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; if (!url.match('mailto:')) { _context.next = 3; break; } return _context.abrupt("return", Linking.openURL(url)); case 3: dispatch((0, _tooltip.setButtonTooltip)('upvote', id)); if (safariView) { _context.next = 6; break; } return _context.abrupt("return", null); case 6: _context.next = 8; return safariView.isAvailable(); case 8: Orientation.unlockAllOrientations(); return _context.abrupt("return", safariView.show({ url: url, readerMode: true })); case 12: _context.prev = 12; _context.t0 = _context["catch"](0); return _context.abrupt("return", dispatch(push({ key: 'articleView', component: 'articleView', back: true, uri: url, id: url, gestureResponseDistance: 120 }, 'home'))); case 15: case "end": return _context.stop(); } } }, _callee, null, [[0, 12]]); })); return function (_x) { return _ref.apply(this, arguments); }; }(); } function goToComments(post, key, animation) { return push({ key: 'comment', title: 'Comments', community: post.data ? post.data.community : post.community, back: true, id: post._id }, key, animation); } function goToPost(post, openComment) { var _post$data; return push({ key: 'singlePost', title: post.title ? post.title : '', back: true, community: (post === null || post === void 0 ? void 0 : (_post$data = post.data) === null || _post$data === void 0 ? void 0 : _post$data.community) || post.community, id: post._id, comment: post.comment, commentCount: post.commentCount, openComment: openComment }); } function goToProfile(user, key) { var handle = user.handle || user.replace('@', ''); return push({ key: 'profile', title: user.name, back: true, id: handle }, key); } function viewBlocked() { return push({ key: 'blocked', title: 'Blocked Users', id: 'blocked', back: true }); } function viewInvites() { return push({ key: 'invites', title: 'Invite Friends', id: 'invites', back: true }); } function goToInviteList() { return push({ key: 'inviteList', title: 'Invite List', id: 'inviteList', back: true }); } //# sourceMappingURL=navigation.actions.js.map