repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
1 lines • 12.7 kB
JSON
{"ast":null,"code":"\"use strict\";\n\nimport * as React from 'react';\nimport { DeprecatedNavigationInChildContext } from \"./DeprecatedNavigationInChildContext.js\";\nimport { NavigationBuilderContext } from \"./NavigationBuilderContext.js\";\nimport { shouldPreventRemove, useOnPreventRemove } from \"./useOnPreventRemove.js\";\nexport function useOnAction(_ref) {\n var router = _ref.router,\n getState = _ref.getState,\n setState = _ref.setState,\n key = _ref.key,\n actionListeners = _ref.actionListeners,\n beforeRemoveListeners = _ref.beforeRemoveListeners,\n routerConfigOptions = _ref.routerConfigOptions,\n emitter = _ref.emitter;\n var _React$useContext = React.useContext(NavigationBuilderContext),\n onActionParent = _React$useContext.onAction,\n onRouteFocusParent = _React$useContext.onRouteFocus,\n addListenerParent = _React$useContext.addListener,\n onDispatchAction = _React$useContext.onDispatchAction;\n var navigationInChildEnabled = React.useContext(DeprecatedNavigationInChildContext);\n var routerConfigOptionsRef = React.useRef(routerConfigOptions);\n React.useEffect(function () {\n routerConfigOptionsRef.current = routerConfigOptions;\n });\n var onAction = React.useCallback(function (action) {\n var visitedNavigators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n var state = getState();\n if (visitedNavigators.has(state.key)) {\n return false;\n }\n visitedNavigators.add(state.key);\n if (typeof action.target !== 'string' || action.target === state.key) {\n var result = router.getStateForAction(state, action, routerConfigOptionsRef.current);\n result = result === null && action.target === state.key ? state : result;\n if (result !== null) {\n onDispatchAction(action, state === result);\n if (state !== result) {\n var isPrevented = shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, result.routes, action);\n if (isPrevented) {\n return true;\n }\n setState(result);\n }\n if (onRouteFocusParent !== undefined) {\n var shouldFocus = router.shouldActionChangeFocus(action);\n if (shouldFocus && key !== undefined) {\n onRouteFocusParent(key);\n }\n }\n return true;\n }\n }\n if (onActionParent !== undefined) {\n if (onActionParent(action, visitedNavigators)) {\n return true;\n }\n }\n if (typeof action.target === 'string' || action.type === 'NAVIGATE_DEPRECATED' || navigationInChildEnabled) {\n for (var i = actionListeners.length - 1; i >= 0; i--) {\n var listener = actionListeners[i];\n if (listener(action, visitedNavigators)) {\n return true;\n }\n }\n }\n return false;\n }, [actionListeners, beforeRemoveListeners, emitter, getState, navigationInChildEnabled, key, onActionParent, onDispatchAction, onRouteFocusParent, router, setState]);\n useOnPreventRemove({\n getState: getState,\n emitter: emitter,\n beforeRemoveListeners: beforeRemoveListeners\n });\n React.useEffect(function () {\n return addListenerParent == null ? void 0 : addListenerParent('action', onAction);\n }, [addListenerParent, onAction]);\n return onAction;\n}","map":{"version":3,"names":["React","DeprecatedNavigationInChildContext","NavigationBuilderContext","shouldPreventRemove","useOnPreventRemove","useOnAction","_ref","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","_React$useContext","useContext","onActionParent","onAction","onRouteFocusParent","onRouteFocus","addListenerParent","addListener","onDispatchAction","navigationInChildEnabled","routerConfigOptionsRef","useRef","useEffect","current","useCallback","action","visitedNavigators","arguments","length","undefined","Set","state","has","add","target","result","getStateForAction","isPrevented","routes","shouldFocus","shouldActionChangeFocus","type","i","listener"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/core/src/useOnAction.tsx"],"sourcesContent":["import type {\n NavigationAction,\n NavigationState,\n PartialState,\n Router,\n RouterConfigOptions,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport { DeprecatedNavigationInChildContext } from './DeprecatedNavigationInChildContext';\nimport {\n type ChildActionListener,\n type ChildBeforeRemoveListener,\n NavigationBuilderContext,\n} from './NavigationBuilderContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\nimport { shouldPreventRemove, useOnPreventRemove } from './useOnPreventRemove';\n\ntype Options = {\n router: Router<NavigationState, NavigationAction>;\n key?: string;\n getState: () => NavigationState;\n setState: (state: NavigationState | PartialState<NavigationState>) => void;\n actionListeners: ChildActionListener[];\n beforeRemoveListeners: Record<string, ChildBeforeRemoveListener | undefined>;\n routerConfigOptions: RouterConfigOptions;\n emitter: NavigationEventEmitter<EventMapCore<any>>;\n};\n\n/**\n * Hook to handle actions for a navigator, including state updates and bubbling.\n *\n * Bubbling an action is achieved in 2 ways:\n * 1. To bubble action to parent, we expose the action handler in context and then access the parent context\n * 2. To bubble action to child, child adds event listeners subscribing to actions from parent\n *\n * When the action handler handles as action, it returns `true`, otherwise `false`.\n */\nexport function useOnAction({\n router,\n getState,\n setState,\n key,\n actionListeners,\n beforeRemoveListeners,\n routerConfigOptions,\n emitter,\n}: Options) {\n const {\n onAction: onActionParent,\n onRouteFocus: onRouteFocusParent,\n addListener: addListenerParent,\n onDispatchAction,\n } = React.useContext(NavigationBuilderContext);\n const navigationInChildEnabled = React.useContext(\n DeprecatedNavigationInChildContext\n );\n\n const routerConfigOptionsRef =\n React.useRef<RouterConfigOptions>(routerConfigOptions);\n\n React.useEffect(() => {\n routerConfigOptionsRef.current = routerConfigOptions;\n });\n\n const onAction = React.useCallback(\n (\n action: NavigationAction,\n visitedNavigators: Set<string> = new Set<string>()\n ) => {\n const state = getState();\n\n // Since actions can bubble both up and down, they could come to the same navigator again\n // We keep track of navigators which have already tried to handle the action and return if it's already visited\n if (visitedNavigators.has(state.key)) {\n return false;\n }\n\n visitedNavigators.add(state.key);\n\n if (typeof action.target !== 'string' || action.target === state.key) {\n let result = router.getStateForAction(\n state,\n action,\n routerConfigOptionsRef.current\n );\n\n // If a target is specified and set to current navigator, the action shouldn't bubble\n // So instead of `null`, we use the state object for such cases to signal that action was handled\n result =\n result === null && action.target === state.key ? state : result;\n\n if (result !== null) {\n onDispatchAction(action, state === result);\n\n if (state !== result) {\n const isPrevented = shouldPreventRemove(\n emitter,\n beforeRemoveListeners,\n state.routes,\n result.routes,\n action\n );\n\n if (isPrevented) {\n return true;\n }\n\n setState(result);\n }\n\n if (onRouteFocusParent !== undefined) {\n // Some actions such as `NAVIGATE` also want to bring the navigated route to focus in the whole tree\n // This means we need to focus all of the parent navigators of this navigator as well\n const shouldFocus = router.shouldActionChangeFocus(action);\n\n if (shouldFocus && key !== undefined) {\n onRouteFocusParent(key);\n }\n }\n\n return true;\n }\n }\n\n if (onActionParent !== undefined) {\n // Bubble action to the parent if the current navigator didn't handle it\n if (onActionParent(action, visitedNavigators)) {\n return true;\n }\n }\n\n if (\n typeof action.target === 'string' ||\n // For backward compatibility\n action.type === 'NAVIGATE_DEPRECATED' ||\n navigationInChildEnabled\n ) {\n // If the action wasn't handled by current navigator or a parent navigator, let children handle it\n // Handling this when target isn't specified is deprecated and will be removed in the future\n for (let i = actionListeners.length - 1; i >= 0; i--) {\n const listener = actionListeners[i];\n\n if (listener(action, visitedNavigators)) {\n return true;\n }\n }\n }\n\n return false;\n },\n [\n actionListeners,\n beforeRemoveListeners,\n emitter,\n getState,\n navigationInChildEnabled,\n key,\n onActionParent,\n onDispatchAction,\n onRouteFocusParent,\n router,\n setState,\n ]\n );\n\n useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners,\n });\n\n React.useEffect(\n () => addListenerParent?.('action', onAction),\n [addListenerParent, onAction]\n );\n\n return onAction;\n}\n"],"mappings":";;AAOA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,kCAAkC;AAC3C,SAGEC,wBAAwB;AAI1B,SAASC,mBAAmB,EAAEC,kBAAkB;AAsBhD,OAAO,SAASC,WAAWA,CAAAC,IAAA,EASf;EAAA,IARVC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,GAAG,GAAAJ,IAAA,CAAHI,GAAG;IACHC,eAAe,GAAAL,IAAA,CAAfK,eAAe;IACfC,qBAAqB,GAAAN,IAAA,CAArBM,qBAAqB;IACrBC,mBAAmB,GAAAP,IAAA,CAAnBO,mBAAmB;IACnBC,OAAA,GAAAR,IAAA,CAAAQ,OAAA;EAEA,IAAAC,iBAAA,GAKIf,KAAK,CAACgB,UAAU,CAACd,wBAAwB,CAAC;IAJlCe,cAAc,GAAAF,iBAAA,CAAxBG,QAAQ;IACMC,kBAAkB,GAAAJ,iBAAA,CAAhCK,YAAY;IACCC,iBAAiB,GAAAN,iBAAA,CAA9BO,WAAW;IACXC,gBAAA,GAAAR,iBAAA,CAAAQ,gBAAA;EAEF,IAAMC,wBAAwB,GAAGxB,KAAK,CAACgB,UAAU,CAC/Cf,kCACF,CAAC;EAED,IAAMwB,sBAAsB,GAC1BzB,KAAK,CAAC0B,MAAM,CAAsBb,mBAAmB,CAAC;EAExDb,KAAK,CAAC2B,SAAS,CAAC,YAAM;IACpBF,sBAAsB,CAACG,OAAO,GAAGf,mBAAmB;EACtD,CAAC,CAAC;EAEF,IAAMK,QAAQ,GAAGlB,KAAK,CAAC6B,WAAW,CAChC,UACEC,MAAwB,EAErB;IAAA,IADHC,iBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAIG,GAAG,CAAS,CAAC;IAElD,IAAMC,KAAK,GAAG5B,QAAQ,CAAC,CAAC;IAIxB,IAAIuB,iBAAiB,CAACM,GAAG,CAACD,KAAK,CAAC1B,GAAG,CAAC,EAAE;MACpC,OAAO,KAAK;IACd;IAEAqB,iBAAiB,CAACO,GAAG,CAACF,KAAK,CAAC1B,GAAG,CAAC;IAEhC,IAAI,OAAOoB,MAAM,CAACS,MAAM,KAAK,QAAQ,IAAIT,MAAM,CAACS,MAAM,KAAKH,KAAK,CAAC1B,GAAG,EAAE;MACpE,IAAI8B,MAAM,GAAGjC,MAAM,CAACkC,iBAAiB,CACnCL,KAAK,EACLN,MAAM,EACNL,sBAAsB,CAACG,OACzB,CAAC;MAIDY,MAAM,GACJA,MAAM,KAAK,IAAI,IAAIV,MAAM,CAACS,MAAM,KAAKH,KAAK,CAAC1B,GAAG,GAAG0B,KAAK,GAAGI,MAAM;MAEjE,IAAIA,MAAM,KAAK,IAAI,EAAE;QACnBjB,gBAAgB,CAACO,MAAM,EAAEM,KAAK,KAAKI,MAAM,CAAC;QAE1C,IAAIJ,KAAK,KAAKI,MAAM,EAAE;UACpB,IAAME,WAAW,GAAGvC,mBAAmB,CACrCW,OAAO,EACPF,qBAAqB,EACrBwB,KAAK,CAACO,MAAM,EACZH,MAAM,CAACG,MAAM,EACbb,MACF,CAAC;UAED,IAAIY,WAAW,EAAE;YACf,OAAO,IAAI;UACb;UAEAjC,QAAQ,CAAC+B,MAAM,CAAC;QAClB;QAEA,IAAIrB,kBAAkB,KAAKe,SAAS,EAAE;UAGpC,IAAMU,WAAW,GAAGrC,MAAM,CAACsC,uBAAuB,CAACf,MAAM,CAAC;UAE1D,IAAIc,WAAW,IAAIlC,GAAG,KAAKwB,SAAS,EAAE;YACpCf,kBAAkB,CAACT,GAAG,CAAC;UACzB;QACF;QAEA,OAAO,IAAI;MACb;IACF;IAEA,IAAIO,cAAc,KAAKiB,SAAS,EAAE;MAEhC,IAAIjB,cAAc,CAACa,MAAM,EAAEC,iBAAiB,CAAC,EAAE;QAC7C,OAAO,IAAI;MACb;IACF;IAEA,IACE,OAAOD,MAAM,CAACS,MAAM,KAAK,QAAQ,IAEjCT,MAAM,CAACgB,IAAI,KAAK,qBAAqB,IACrCtB,wBAAwB,EACxB;MAGA,KAAK,IAAIuB,CAAC,GAAGpC,eAAe,CAACsB,MAAM,GAAG,CAAC,EAAEc,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QACpD,IAAMC,QAAQ,GAAGrC,eAAe,CAACoC,CAAC,CAAC;QAEnC,IAAIC,QAAQ,CAAClB,MAAM,EAAEC,iBAAiB,CAAC,EAAE;UACvC,OAAO,IAAI;QACb;MACF;IACF;IAEA,OAAO,KAAK;EACd,CAAC,EACD,CACEpB,eAAe,EACfC,qBAAqB,EACrBE,OAAO,EACPN,QAAQ,EACRgB,wBAAwB,EACxBd,GAAG,EACHO,cAAc,EACdM,gBAAgB,EAChBJ,kBAAkB,EAClBZ,MAAM,EACNE,QAAQ,CAEZ,CAAC;EAEDL,kBAAkB,CAAC;IACjBI,QAAQ,EAARA,QAAQ;IACRM,OAAO,EAAPA,OAAO;IACPF,qBAAA,EAAAA;EACF,CAAC,CAAC;EAEFZ,KAAK,CAAC2B,SAAS,CACb;IAAA,OAAMN,iBAAiB,oBAAjBA,iBAAiB,CAAG,QAAQ,EAAEH,QAAQ,CAAC;EAAA,GAC7C,CAACG,iBAAiB,EAAEH,QAAQ,CAC9B,CAAC;EAED,OAAOA,QAAQ;AACjB","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}