Files
discord-decomp/modules/safe_area/SafeAreaProvider.native.tsx
T
2026-11-01 12:12:55 +02:00

107 lines
3.4 KiB
TypeScript

// Metro module 13630 (f13631).
import { useLayoutEffect, useRef, useCallback } from "react";
import { View } from "react-native";
import { jsx } from "react/jsx-runtime";
import { INITIAL_SAFE_AREA_METRICS } from "./SafeAreaConstants.native";
import { batchUpdates } from "../../_bundle/Module705";
import * as _Module1584 from "../../_bundle/Module1584";
import { useSafeAreaInsets } from "../../_bundle/Module1584";
import { useAppEntryKey } from "../window/native/AppEntryKeyContext";
function $mk91695($env) {
return () => {
let META_QUEST_SAFE_AREA_INSETS;
const r2 = $env;
const r9 = r2[0];
const r10 = r2[1];
const r4 = $env.$parent;
const r6 = r4[0];
const r3 = r4[2];
if (r6(r3[3]).isMetaQuest()) {
META_QUEST_SAFE_AREA_INSETS = r6(r3[4]).META_QUEST_SAFE_AREA_INSETS;
} else {
const isAndroid = r6(r3[5]).isAndroid();
META_QUEST_SAFE_AREA_INSETS = r9;
if (isAndroid) {
const r8 = r4[1];
let safeAreaInsets2 = r8(r3[6]).getState().byAppEntry[r10].safeAreaInsets;
const stableSafeAreaInsets = r8(r3[7]).getStableSafeAreaInsets(r10);
let r30 = r9;
if (stableSafeAreaInsets != null) {
if (!(stableSafeAreaInsets.bottom === safeAreaInsets2.bottom && (stableSafeAreaInsets.top === safeAreaInsets2.top && (stableSafeAreaInsets.left === safeAreaInsets2.left && stableSafeAreaInsets.right === safeAreaInsets2.right)))) {
safeAreaInsets2 = {
bottom: stableSafeAreaInsets.bottom,
top: stableSafeAreaInsets.top,
left: r9.left,
right: r9.right
};
}
r30 = safeAreaInsets2;
}
META_QUEST_SAFE_AREA_INSETS = r30;
}
}
let env27546 = {
$parent: $env
};
env27546[0] = META_QUEST_SAFE_AREA_INSETS;
(0, r4[1])(r3[6]).setState((state) => {
const byAppEntry = state.byAppEntry;
const r4 = env27546.$parent[1];
const safeAreaInsets2 = byAppEntry[r4].safeAreaInsets;
const safeAreaInsets3 = env27546[0];
let r11 = state;
if (safeAreaInsets2 !== safeAreaInsets3) {
const byAppEntry2 = {
...state.byAppEntry
};
byAppEntry2[r4] = {
safeAreaInsets: safeAreaInsets3
};
r11 = {
byAppEntry: byAppEntry2
};
}
return r11;
});
};
}
let env9469 = {};
const c9469_6 = {
position: "absolute",
width: 0,
height: 0
};
export function SafeAreaReporter() {
let ref;
const safeAreaInsets = useSafeAreaInsets();
const appEntryKey = useAppEntryKey();
useLayoutEffect(() => {
let env27547;
const r5 = env27547 = {
$parent: env9469
};
env27547[0] = safeAreaInsets;
env27547[1] = appEntryKey;
batchUpdates($mk91695(r5));
}, [safeAreaInsets, appEntryKey]);
ref = useRef(false);
return (0, jsx)(View, {
style: c9469_6,
onLayout: useCallback(() => {
if (!ref.current) {
let env27548;
ref.current = true;
const r7 = env27548 = {
$parent: env9469
};
env27548[0] = safeAreaInsets;
env27548[1] = appEntryKey;
batchUpdates($mk91695(r7));
}
}, [safeAreaInsets, appEntryKey])
});
}
export function SafeAreaProvider(props) {
return <_Module1584.SafeAreaProvider initialMetrics={INITIAL_SAFE_AREA_METRICS} style={props.style}>{props.children}</_Module1584.SafeAreaProvider>;
}