// Metro module 9848 (f9849). import { useRef, useEffect, useCallback } from "react"; import { getWindowDimensions } from "../screen/useWindowDimensions.native"; import Module712 from "../../_bundle/Module712"; import { measureViewRefInWindow, measureViewRefInView, measureViewInWindow } from "../view_measure/ViewMeasureUtils.native"; import { getKeyboardDuration } from "../keyboard/native/useKeyboardDuration"; function $mk115560($env) { return function calculateScrollOffset() { return $env[5].apply(this, arguments); }; } function $mk115561($env) { return function calculateTargetScrollY(a0) { const r6 = a0.scrollView.y + a0.scrollView.height; const r19 = getWindowDimensions({ ignoreKeyboard: true }).height - a0.insets.bottom; if (!(a0.inputInWindow.y + a0.inputInWindow.height + a0.scrollOffset <= r19)) { const r34 = a0.scrollView.height - Math.max(0, r6 - r19); const r41 = a0.inputInScrollView.y + a0.inputInScrollView.height + a0.scrollOffset; if (!(r41 <= r34)) { return r41 - r34; } } }; } let env6540 = {}; env6540[5] = function _calculateScrollOffset() { const r8 = async (c26549_0, c26549_1) => { let r79, MAX_SAFE_INTEGER, PX_16, value; let extraOffset; let c30150_0, c30150_1, c30150_2, c30150_3; L26: { L25: { L17: { L16: { c30150_0 = c26549_0; c30150_1 = c26549_1; c30150_2 = void 0; c30150_3 = void 0; if (c26549_0 == null) { PX_16 = Module712.space.PX_16; break L26; } const type = c26549_0.type; if (type === "toRef") { c30150_2 = await measureViewRefInWindow(c26549_0.ref); const extraOffset2 = c30150_0.extraOffset; extraOffset = extraOffset2; if (extraOffset2 == null) { extraOffset = 0; } c30150_3 = extraOffset; if (c30150_2 == null) { r79 = Module712.space.PX_16 + c30150_3; break L25; } r79 = c30150_2.y - (c30150_1.y + c30150_1.height) + c30150_2.height + c30150_3; break L25; } if (type === "toValue") { value = c26549_0.value; break L17; } if (type === "toBottom") { MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER; break L16; } return void 0; } return MAX_SAFE_INTEGER; } return value; } return r79; } return PX_16; }; env6540[5] = r8; return r8.apply(this, arguments); }; export default function useSafeAreaAvoidingInputs({ insets, inputs, scrollViewRef }) { let callback; callback = void 0; const ref = useRef(inputs); useEffect(() => { ref.current = inputs; }, [inputs]); callback = useCallback(async () => { let c26550_0, c26550_1; L26: { L25: { let env30151; c26550_1 = void 0; const r10 = env30151 = { $parent: env6540 }; c26550_0 = r10; env30151[0] = void 0; env30151[1] = void 0; env30151[2] = void 0; env30151[3] = void 0; env30151[4] = void 0; env30151[5] = void 0; env30151[6] = void 0; const current = scrollViewRef.current; env30151[0] = current; const r35 = ref.current.find((item) => { const current = item.ref.current; return current == null ? void 0 : current.isFocused(); }); env30151[1] = r35; if (r35 == null) { break L26; } if (current != null) { env30151[2] = await measureViewRefInWindow(r35.ref); env30151[3] = await measureViewRefInView(env30151[1].ref, env30151[0]); if (env30151[2] == null) { break L25; } if (env30151[3] == null) { break L25; } env30151[4] = await measureViewInWindow(env30151[0]); const offset = env30151[1].offset; const r117 = env30151[2]; env30151[5] = await $mk115560(env6540)(offset, r117); if (env30151[5] !== Number.MAX_SAFE_INTEGER) { const r144 = { insets, inputInScrollView: env30151[3], inputInWindow: env30151[2], scrollOffset: env30151[5], scrollView: env30151[4] }; env30151[6] = $mk115561(env6540)(r144); if (env30151[6] == null) { break L25; } (function scrollToTargetY(a0, a1) { const current = a0.current; const r2 = current == null; let r4 = void 0; if (!r2) { const scrollTo = current.scrollTo; r4 = scrollTo == null ? void 0 : scrollTo.call(current, { x: 0, y: a1, animated: true }); } if (r4 == null) { const current2 = a0.current; if (current2 != null) { const scrollToOffset = current2.scrollToOffset; if (scrollToOffset != null) { scrollToOffset.call(current2, { offset: a1, animated: true }); } } } })(scrollViewRef, env30151[6]); break L25; } const current2 = scrollViewRef.current; if (current2 == null) { break L25; } current2.scrollToEnd({ animated: true }); break L25; } break L26; } return void 0; } }, [insets, scrollViewRef]); useEffect(() => { let c26551_0 = setTimeout(callback, getKeyboardDuration()); return () => clearTimeout(c26551_0); }, [callback]); return { onFocus: callback }; };