decord/source/1580_useOnAction.js
2026-08-24 06:08:38 +00:00

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;
};