UNPKG

repoweaver

Version:

A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies

1 lines 9.25 kB
{"ast":null,"code":"\"use strict\";\n\nimport { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport { NavigationContext } from \"./NavigationContext.js\";\nimport { PrivateValueStore } from \"./types.js\";\nimport { UnhandledActionContext } from \"./UnhandledActionContext.js\";\nPrivateValueStore;\nexport function useNavigationHelpers({\n id: navigatorId,\n onAction,\n getState,\n emitter,\n router,\n stateRef\n}) {\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?.(action);\n }\n };\n const actions = Object.assign({}, router.actionCreators, CommonActions);\n const helpers = Object.keys(actions).reduce((acc, name) => {\n acc[name] = (...args) => dispatch(actions[name](...args));\n return acc;\n }, {});\n const navigationHelpers = Object.assign({}, parentNavigationHelpers, 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?.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 if (stateRef.current != null) {\n return stateRef.current;\n }\n return getState();\n }\n });\n return navigationHelpers;\n }, [router, parentNavigationHelpers, emitter.emit, getState, onAction, onUnhandledAction, navigatorId, stateRef]);\n}","map":{"version":3,"names":["CommonActions","React","NavigationContext","PrivateValueStore","UnhandledActionContext","useNavigationHelpers","id","navigatorId","onAction","getState","emitter","router","stateRef","onUnhandledAction","useContext","parentNavigationHelpers","useMemo","dispatch","op","action","handled","actions","Object","assign","actionCreators","helpers","keys","reduce","acc","name","args","navigationHelpers","emit","isFocused","canGoBack","state","getStateForAction","goBack","routeNames","routeParamList","routeGetIdList","getId","getParent","undefined","current"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/core/src/useNavigationHelpers.tsx"],"sourcesContent":["import {\n CommonActions,\n type NavigationAction,\n type NavigationState,\n type ParamListBase,\n type Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport { NavigationContext } from './NavigationContext';\nimport { type NavigationHelpers, PrivateValueStore } from './types';\nimport { UnhandledActionContext } from './UnhandledActionContext';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\nPrivateValueStore;\n\ntype Options<State extends NavigationState, Action extends NavigationAction> = {\n id: string | undefined;\n onAction: (action: NavigationAction) => boolean;\n getState: () => State;\n emitter: NavigationEventEmitter<any>;\n router: Router<State, Action>;\n stateRef: React.RefObject<State | null>;\n};\n\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 function useNavigationHelpers<\n State extends NavigationState,\n ActionHelpers extends Record<string, () => void>,\n Action extends NavigationAction,\n EventMap extends Record<string, any>,\n>({\n id: navigatorId,\n onAction,\n getState,\n emitter,\n router,\n stateRef,\n}: Options<State, Action>) {\n const onUnhandledAction = React.useContext(UnhandledActionContext);\n const parentNavigationHelpers = React.useContext(NavigationContext);\n\n return React.useMemo(() => {\n const dispatch = (op: Action | ((state: State) => Action)) => {\n const action = typeof op === 'function' ? op(getState()) : op;\n\n const handled = onAction(action);\n\n if (!handled) {\n onUnhandledAction?.(action);\n }\n };\n\n const actions = {\n ...router.actionCreators,\n ...CommonActions,\n };\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] = (...args: any) => dispatch(actions[name](...args));\n return acc;\n }, {} as ActionHelpers);\n\n const navigationHelpers = {\n ...parentNavigationHelpers,\n ...helpers,\n dispatch,\n emit: emitter.emit,\n isFocused: parentNavigationHelpers\n ? parentNavigationHelpers.isFocused\n : () => true,\n canGoBack: () => {\n const state = getState();\n\n return (\n router.getStateForAction(state, CommonActions.goBack() as Action, {\n routeNames: state.routeNames,\n routeParamList: {},\n routeGetIdList: {},\n }) !== null ||\n parentNavigationHelpers?.canGoBack() ||\n false\n );\n },\n getId: () => navigatorId,\n getParent: (id?: string) => {\n if (id !== undefined) {\n let current = navigationHelpers;\n\n while (current && id !== current.getId()) {\n current = current.getParent();\n }\n\n return current;\n }\n\n return parentNavigationHelpers;\n },\n getState: (): State => {\n // FIXME: Workaround for when the state is read during render\n // By this time, we haven't committed the new state yet\n // Without this `useSyncExternalStore` will keep reading the old state\n // This may result in `useNavigationState` or `useIsFocused` returning wrong values\n // Apart from `useSyncExternalStore`, `getState` should never be called during render\n if (stateRef.current != null) {\n return stateRef.current;\n }\n\n return getState();\n },\n } as NavigationHelpers<ParamListBase, EventMap> & ActionHelpers;\n\n return navigationHelpers;\n }, [\n router,\n parentNavigationHelpers,\n emitter.emit,\n getState,\n onAction,\n onUnhandledAction,\n navigatorId,\n stateRef,\n ]);\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}