127 lines
4 KiB
JavaScript
127 lines
4 KiB
JavaScript
// Module ID: 1580
|
|
// Function ID: 1581
|
|
// Name: useOnAction
|
|
// Dependencies: [19, 1530, 1534, 1581]
|
|
// Exports: useOnAction
|
|
|
|
// Module 1580 (useOnAction)
|
|
import closure_2 from "noop" /* 19 */;
|
|
|
|
const require = arg1;
|
|
|
|
export const useOnAction = function useOnAction(router) {
|
|
router = router.router;
|
|
const getState = router.getState;
|
|
const setState = router.setState;
|
|
const key = router.key;
|
|
const actionListeners = router.actionListeners;
|
|
const beforeRemoveListeners = router.beforeRemoveListeners;
|
|
const routerConfigOptions = router.routerConfigOptions;
|
|
const emitter = router.emitter;
|
|
let onAction;
|
|
let onRouteFocus;
|
|
let addListener;
|
|
let onDispatchAction;
|
|
let flushUpdates;
|
|
let context1;
|
|
closure_14 = undefined;
|
|
let callback;
|
|
const context = setState.useContext(router(getState[1]).NavigationBuilderContext);
|
|
onAction = context.onAction;
|
|
onRouteFocus = context.onRouteFocus;
|
|
addListener = context.addListener;
|
|
onDispatchAction = context.onDispatchAction;
|
|
flushUpdates = context.flushUpdates;
|
|
context1 = setState.useContext(router(getState[2]).DeprecatedNavigationInChildContext);
|
|
closure_14 = setState.useRef(routerConfigOptions);
|
|
const insertionEffect = setState.useInsertionEffect(() => {
|
|
closure_14.current = routerConfigOptions;
|
|
});
|
|
const items = [actionListeners, beforeRemoveListeners, emitter, flushUpdates, getState, context1, key, onAction, onDispatchAction, onRouteFocus, router, setState];
|
|
callback = setState.useCallback((target) => {
|
|
let set = arg1;
|
|
if (arg1 === undefined) {
|
|
const _Set = Set;
|
|
set = new Set();
|
|
}
|
|
flushUpdates();
|
|
const tmp6 = getState();
|
|
if (set.has(tmp6.key)) {
|
|
return false;
|
|
} else {
|
|
set.add(tmp6.key);
|
|
if (typeof target.target !== "string") {
|
|
const stateForAction = router.getStateForAction(tmp6, target, ref.current);
|
|
let tmp12 = stateForAction;
|
|
if (null === stateForAction) {
|
|
tmp12 = stateForAction;
|
|
if (target.target === tmp6.key) {
|
|
tmp12 = tmp6;
|
|
}
|
|
}
|
|
let tmp13 = null !== tmp12;
|
|
if (tmp13) {
|
|
tmp13 = false !== tmp12.stale;
|
|
}
|
|
let rehydratedState = tmp12;
|
|
if (tmp13) {
|
|
rehydratedState = obj2.getRehydratedState(tmp12, tmp9.current);
|
|
}
|
|
if (null !== rehydratedState) {
|
|
if (tmp6 !== rehydratedState) {
|
|
const obj3 = router(getState[3]);
|
|
if (obj3.shouldPreventRemove(emitter, beforeRemoveListeners, tmp6.routes, rehydratedState.routes, target)) {
|
|
onDispatchAction(target, true);
|
|
return true;
|
|
} else if (getState() !== tmp6) {
|
|
const _Set2 = Set;
|
|
const set1 = new Set();
|
|
return callback(target, set1);
|
|
} else {
|
|
onDispatchAction(target, false);
|
|
setState(rehydratedState);
|
|
}
|
|
} else {
|
|
onDispatchAction(target, true);
|
|
}
|
|
if (undefined !== onRouteFocus) {
|
|
let result = obj2.shouldActionChangeFocus(target);
|
|
if (result) {
|
|
result = undefined !== key;
|
|
}
|
|
if (result) {
|
|
tmp32(key);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
tmp9 = ref;
|
|
}
|
|
if (undefined !== onAction) {
|
|
if (onAction(target, set)) {
|
|
return true;
|
|
}
|
|
}
|
|
if (typeof target.target !== "string") {
|
|
return false;
|
|
}
|
|
let diff = actionListeners.length - 1;
|
|
if (0 <= diff) {
|
|
while (!actionListeners[diff](target, set)) {
|
|
diff = diff - 1;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}, items);
|
|
const onPreventRemove = router(getState[3]).useOnPreventRemove({ getState, emitter, beforeRemoveListeners });
|
|
const items1 = [addListener, callback];
|
|
const effect = setState.useEffect(() => {
|
|
let tmpResult;
|
|
if (addListener != null) {
|
|
tmpResult = tmp("action", callback);
|
|
}
|
|
return tmpResult;
|
|
}, items1);
|
|
return callback;
|
|
};
|