Files
discord-decomp/_bundle/Module1585.jsx
T
2026-11-01 12:12:55 +02:00

123 lines
3.7 KiB
React

// Metro module 1585 (f1586).
import { createContext, useContext, useState, useCallback, forwardRef } from "react";
import { Dimensions, StyleSheet } from "react-native";
import { NativeSafeAreaProvider } from "./Module1586";
const context = createContext(null);
const context2 = createContext(null);
const styles = StyleSheet.create({
fill: {
flex: 1
}
});
let c1263_9 = "No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.";
const Consumer = context.Consumer;
export { context as SafeAreaInsetsContext };
export { context2 as SafeAreaFrameContext };
export function SafeAreaProvider(props) {
const { children, initialMetrics, initialSafeAreaInsets, style, ...props2 } = props;
const context3 = useContext(context);
const context4 = useContext(context2);
let r25 = initialMetrics?.insets;
if (r25 == null) {
r25 = initialSafeAreaInsets;
}
if (r25 == null) {
r25 = context3;
}
if (r25 == null) {
r25 = null;
}
const [value, setState] = useState(r25);
let r33 = initialMetrics?.frame;
if (r33 == null) {
r33 = context4;
}
if (r33 == null) {
r33 = {
x: 0,
y: 0,
width: Dimensions.get("window").width,
height: Dimensions.get("window").height
};
}
const [value2, setState2] = useState(r33);
return <NativeSafeAreaProvider style={[styles.fill, style]} onInsetsChange={useCallback(({ nativeEvent }) => {
const { frame, insets } = nativeEvent;
setState2((prevState2) => {
let r5;
L6: {
if (frame) {
const height2 = frame.height;
const height = prevState2.height;
r5 = frame;
if (height2 !== height) {
break L6;
}
const width = frame.width;
const width2 = prevState2.width;
r5 = frame;
if (width !== width2) {
break L6;
}
const r8 = frame.x;
const r9 = prevState2.x;
r5 = frame;
if (r8 !== r9) {
break L6;
}
r5 = frame.y === prevState2.y ? prevState2 : frame;
} else {
r5 = prevState2;
}
}
return r5;
});
setState((prevState) => prevState && (insets.bottom === prevState.bottom && (insets.left === prevState.left && (insets.right === prevState.right && insets.top === prevState.top))) ? prevState : insets);
}, [])} {...props2}>
{value != null ? <context2.Provider value={value2}>
<context.Provider value={value}>{children}</context.Provider>
</context2.Provider> : null}
</NativeSafeAreaProvider>;
}
export function SafeAreaListener(props) {
const { onChange, style, children, ...rest } = props;
return <NativeSafeAreaProvider {...rest} style={[styles.fill, style]} onInsetsChange={(event) => {
onChange({
insets: event.nativeEvent.insets,
frame: event.nativeEvent.frame
});
}}>{children}</NativeSafeAreaProvider>;
}
export function useSafeAreaInsets() {
const context3 = useContext(context);
if (context3 == null) {
throw new Error(c1263_9);
}
return context3;
}
export function useSafeAreaFrame() {
const context3 = useContext(context2);
if (context3 == null) {
throw new Error(c1263_9);
}
return context3;
}
export function withSafeAreaInsets(Component) {
return forwardRef((a0, a1) => {
const context3 = useContext(context);
if (context3 == null) {
throw new Error(c1263_9);
}
return <Component {...a0} insets={context3} ref={a1} />;
});
}
export function useSafeArea() {
const context3 = useContext(context);
if (context3 == null) {
throw new Error(c1263_9);
}
return context3;
}
export { Consumer as SafeAreaConsumer };
export { context as SafeAreaContext };