decord/source/1621_useScrollToTop.js
2026-08-11 06:20:06 +00:00

93 lines
3.2 KiB
JavaScript

// Module ID: 1621
// Function ID: 1622
// Name: useScrollToTop
// Dependencies: [19, 1502]
// Exports: useScrollToTop
// Module 1621 (useScrollToTop)
import noop from "noop";
const require = arg1;
export const useScrollToTop = function useScrollToTop(ref) {
const _require = ref;
context = route.useContext(_require(context[1]).NavigationContext);
route = _require(context[1]).useRoute();
if (undefined === context) {
const _Error = Error;
const error = new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
throw error;
} else {
let items = [context, ref, route.key];
const effect = obj.useEffect(() => {
const items = [];
for (let parent = closure_1; parent; parent = parent.getParent()) {
let tmp = parent;
if ("tab" === parent.getState().type) {
let arr = items.push(parent);
}
}
if (0 !== items.length) {
closure_1 = items.map((addListener) => addListener.addListener("tabPress", (arg0) => {
let closure_0 = arg0;
let closure_1 = outer1_1.isFocused();
let hasItem = closure_0.includes(outer1_1);
if (!hasItem) {
hasItem = outer1_1.getState().routes[0].key === outer1_2.key;
}
const animationFrame = requestAnimationFrame(() => {
if (null == ref.current) {
let tmp3 = closure_1;
if (closure_1) {
tmp3 = hasItem;
}
if (tmp3) {
tmp3 = null;
}
if (tmp3) {
tmp3 = !ref.defaultPrevented;
}
if (tmp3) {
if ("scrollToTop" in null) {
null.scrollToTop();
} else if ("scrollTo" in null) {
null.scrollTo({ y: 0, animated: true });
} else if ("scrollToOffset" in null) {
null.scrollToOffset({ offset: 0, animated: true });
} else if ("scrollResponderScrollTo" in null) {
const result = null.scrollResponderScrollTo({ y: 0, animated: true });
}
}
} else {
if (!("scrollToTop" in tmp.current)) {
if (!("scrollTo" in tmp.current)) {
if (!("scrollToOffset" in tmp.current)) {
if (!("scrollResponderScrollTo" in tmp.current)) {
const current = tmp.current;
if ("getScrollResponder" in tmp.current) {
let current3 = current.getScrollResponder();
} else {
const current2 = tmp.current;
if ("getNode" in current) {
current3 = current2.getNode();
} else {
current3 = current2;
}
}
}
}
}
}
current3 = tmp.current;
}
});
}));
return () => {
const item = closure_1.forEach((arg0) => arg0());
};
}
}, items);
}
obj = route;
const obj2 = _require(context[1]);
};