{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport NavigationContext from \"./NavigationContext\";\nimport { PrivateValueStore } from \"./types\";\nimport UnhandledActionContext from \"./UnhandledActionContext\";\nPrivateValueStore;\nexport default function useNavigationHelpers(_ref) {\n var navigatorId = _ref.id,\n onAction = _ref.onAction,\n getState = _ref.getState,\n emitter = _ref.emitter,\n router = _ref.router;\n var onUnhandledAction = React.useContext(UnhandledActionContext);\n var parentNavigationHelpers = React.useContext(NavigationContext);\n return React.useMemo(function () {\n var dispatch = function dispatch(op) {\n var action = typeof op === 'function' ? op(getState()) : op;\n var handled = onAction(action);\n if (!handled) {\n onUnhandledAction === null || onUnhandledAction === void 0 ? void 0 : onUnhandledAction(action);\n }\n };\n var actions = _objectSpread(_objectSpread({}, router.actionCreators), CommonActions);\n var helpers = Object.keys(actions).reduce(function (acc, name) {\n acc[name] = function () {\n return dispatch(actions[name].apply(actions, arguments));\n };\n return acc;\n }, {});\n var navigationHelpers = _objectSpread(_objectSpread(_objectSpread({}, parentNavigationHelpers), helpers), {}, {\n dispatch: dispatch,\n emit: emitter.emit,\n isFocused: parentNavigationHelpers ? parentNavigationHelpers.isFocused : function () {\n return true;\n },\n canGoBack: function canGoBack() {\n var state = getState();\n return router.getStateForAction(state, CommonActions.goBack(), {\n routeNames: state.routeNames,\n routeParamList: {},\n routeGetIdList: {}\n }) !== null || (parentNavigationHelpers === null || parentNavigationHelpers === void 0 ? void 0 : parentNavigationHelpers.canGoBack()) || false;\n },\n getId: function getId() {\n return navigatorId;\n },\n getParent: function getParent(id) {\n if (id !== undefined) {\n var current = navigationHelpers;\n while (current && id !== current.getId()) {\n current = current.getParent();\n }\n return current;\n }\n return parentNavigationHelpers;\n },\n getState: getState\n });\n return navigationHelpers;\n }, [navigatorId, emitter.emit, getState, onAction, onUnhandledAction, parentNavigationHelpers, router]);\n}","map":{"version":3,"sources":["useNavigationHelpers.tsx"],"names":["CommonActions","React","NavigationContext","PrivateValueStore","UnhandledActionContext","useNavigationHelpers","id","navigatorId","onAction","getState","emitter","router","onUnhandledAction","useContext","parentNavigationHelpers","useMemo","dispatch","op","action","handled","actions","actionCreators","helpers","Object","keys","reduce","acc","name","navigationHelpers","emit","isFocused","canGoBack","state","getStateForAction","goBack","routeNames","routeParamList","routeGetIdList","getId","getParent","undefined","current"],"mappings":"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","sourceRoot":"../../src","sourcesContent":["import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport NavigationContext from './NavigationContext';\nimport { PrivateValueStore } from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n/**\n * Navigation object with helper methods to be used by a navigator.\n * This object includes methods for common actions as well as methods the parent screen's navigation object.\n */\nexport default function useNavigationHelpers(_ref) {\n let {\n id: navigatorId,\n onAction,\n getState,\n emitter,\n router\n } = _ref;\n const onUnhandledAction = React.useContext(UnhandledActionContext);\n const parentNavigationHelpers = React.useContext(NavigationContext);\n return React.useMemo(() => {\n const dispatch = op => {\n const action = typeof op === 'function' ? op(getState()) : op;\n const handled = onAction(action);\n if (!handled) {\n onUnhandledAction === null || onUnhandledAction === void 0 ? void 0 : onUnhandledAction(action);\n }\n };\n const actions = {\n ...router.actionCreators,\n ...CommonActions\n };\n const helpers = Object.keys(actions).reduce((acc, name) => {\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n acc[name] = function () {\n return dispatch(actions[name](...arguments));\n };\n return acc;\n }, {});\n const navigationHelpers = {\n ...parentNavigationHelpers,\n ...helpers,\n dispatch,\n emit: emitter.emit,\n isFocused: parentNavigationHelpers ? parentNavigationHelpers.isFocused : () => true,\n canGoBack: () => {\n const state = getState();\n return router.getStateForAction(state, CommonActions.goBack(), {\n routeNames: state.routeNames,\n routeParamList: {},\n routeGetIdList: {}\n }) !== null || (parentNavigationHelpers === null || parentNavigationHelpers === void 0 ? void 0 : parentNavigationHelpers.canGoBack()) || false;\n },\n getId: () => navigatorId,\n getParent: id => {\n if (id !== undefined) {\n let current = navigationHelpers;\n while (current && id !== current.getId()) {\n current = current.getParent();\n }\n return current;\n }\n return parentNavigationHelpers;\n },\n getState\n };\n return navigationHelpers;\n }, [navigatorId, emitter.emit, getState, onAction, onUnhandledAction, parentNavigationHelpers, router]);\n}\n//# sourceMappingURL=useNavigationHelpers.js.map"]},"metadata":{},"sourceType":"module"}