decord/source/1509_useOptionsGetters.js

122 lines
3.1 KiB
JavaScript
Raw Normal View History

2026-08-06 08:05:19 +00:00
// Module ID: 1509
// Function ID: 1510
2026-07-20 16:05:17 +00:00
// Name: useOptionsGetters
2026-08-06 08:05:19 +00:00
// Dependencies: [19, 1510, 1497]
// Exports: useOptionsGetters
2026-07-20 16:05:17 +00:00
2026-08-06 08:05:19 +00:00
// Module 1509 (useOptionsGetters)
2026-07-29 08:29:29 +00:00
import noop from "noop";
2026-07-23 10:11:24 +00:00
2026-08-06 08:05:19 +00:00
const require = arg1;
2026-07-20 16:05:17 +00:00
2026-08-06 08:05:19 +00:00
export const useOptionsGetters = function useOptionsGetters(key) {
2026-07-23 10:11:24 +00:00
key = key.key;
2026-07-20 16:05:17 +00:00
const options = key.options;
const navigation = key.navigation;
2026-07-29 08:29:29 +00:00
let closure_3;
let closure_4;
let onOptionsChange;
let addOptionsGetter;
let callback;
let callback1;
let callback2;
closure_3 = navigation.useRef(options);
closure_4 = navigation.useRef({});
2026-08-06 08:05:19 +00:00
onOptionsChange = navigation.useContext(key(options[1]).NavigationBuilderContext).onOptionsChange;
addOptionsGetter = navigation.useContext(key(options[2]).NavigationStateContext).addOptionsGetter;
2026-07-20 16:05:17 +00:00
const items = [navigation, onOptionsChange];
2026-07-29 08:29:29 +00:00
callback = navigation.useCallback(() => {
let flag;
if (navigation != null) {
flag = navigation.isFocused();
}
if (flag == null) {
flag = true;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
if (flag) {
flag = !Object.keys(closure_4.current).length;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
if (flag) {
2026-07-20 16:05:17 +00:00
let current = ref.current;
2026-07-29 08:29:29 +00:00
if (current == null) {
2026-07-20 16:05:17 +00:00
current = {};
}
onOptionsChange(current);
2026-07-29 08:29:29 +00:00
const tmp = onOptionsChange;
2026-07-20 16:05:17 +00:00
}
}, items);
2026-08-06 08:05:19 +00:00
const items1 = [options];
const insertionEffect = navigation.useInsertionEffect(() => {
2026-07-20 16:05:17 +00:00
closure_3.current = options;
2026-08-06 08:05:19 +00:00
}, items1);
const items2 = [navigation, options, callback];
const effect = navigation.useEffect(() => {
2026-07-20 16:05:17 +00:00
callback();
2026-07-29 08:29:29 +00:00
let addListenerResult;
if (navigation != null) {
2026-07-20 16:05:17 +00:00
addListenerResult = navigation.addListener("focus", callback);
}
return addListenerResult;
2026-08-06 08:05:19 +00:00
}, items2);
2026-07-29 08:29:29 +00:00
callback1 = navigation.useCallback(() => {
for (const key10004 in closure_4.current) {
let tmp3 = key10004;
2026-08-06 08:05:19 +00:00
if (!(key10004 in closure_4.current)) {
2026-07-20 16:05:17 +00:00
continue;
} else {
2026-07-29 08:29:29 +00:00
let current = tmp4.current;
let tmp = current[key10004];
let tmpResult;
if (tmp != null) {
tmpResult = tmp();
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
if (null === tmpResult) {
2026-07-20 16:05:17 +00:00
continue;
} else {
2026-07-29 08:29:29 +00:00
return tmpResult;
2026-07-20 16:05:17 +00:00
}
}
continue;
}
return null;
}, []);
2026-08-06 08:05:19 +00:00
const items3 = [navigation, callback1];
2026-07-29 08:29:29 +00:00
callback2 = navigation.useCallback(() => {
2026-07-20 16:05:17 +00:00
let isFocusedResult;
2026-07-29 08:29:29 +00:00
if (navigation != null) {
2026-07-20 16:05:17 +00:00
isFocusedResult = navigation.isFocused();
}
2026-07-29 08:29:29 +00:00
if (isFocusedResult != null) {
2026-07-20 16:05:17 +00:00
if (!isFocusedResult) {
return null;
}
}
let current = callback1();
if (null === current) {
current = ref.current;
}
return current;
2026-08-06 08:05:19 +00:00
}, items3);
const items4 = [callback2, addOptionsGetter, key];
2026-07-23 10:11:24 +00:00
const effect1 = navigation.useEffect(() => {
2026-07-29 08:29:29 +00:00
let tmpResult;
if (addOptionsGetter != null) {
tmpResult = tmp(key, callback2);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return tmpResult;
2026-08-06 08:05:19 +00:00
}, items4);
const items5 = [callback];
2026-07-20 16:05:17 +00:00
return {
2026-07-23 10:11:24 +00:00
addOptionsGetter: navigation.useCallback((arg0, arg1) => {
let closure_0 = arg0;
closure_4.current[arg0] = arg1;
2026-07-20 16:05:17 +00:00
callback();
return () => {
2026-07-23 10:11:24 +00:00
delete tmp2[tmp];
outer1_7();
2026-07-20 16:05:17 +00:00
};
2026-08-06 08:05:19 +00:00
}, items5),
2026-07-20 16:05:17 +00:00
getCurrentOptions: callback2
};
};