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

104 lines
4.8 KiB
React

// Metro module 5606 (f5607).
import { useState } from "react";
import { StyleSheet, Platform } from "react-native";
import memoize from "./memoize_5607";
import { HeaderBackButton, getDefaultHeaderHeight, Header, HeaderTitle } from "./Module5579";
const _excluded = ["progress", "layout", "modal", "onGoBack", "headerTitle", "headerLeft", "headerRight", "headerBackImage", "headerBackTitle", "headerBackTitleVisible", "headerTruncatedBackTitle", "headerBackAccessibilityLabel", "headerBackTestID", "headerBackAllowFontScaling", "headerBackTitleStyle", "headerTitleContainerStyle", "headerLeftContainerStyle", "headerRightContainerStyle", "headerBackgroundContainerStyle", "headerStyle", "headerStatusBarHeight", "styleInterpolator"];
Platform;
export default function HeaderSegment(props) {
let handleLeftLabelLayout2, layout, onGoBack, headerTitle, c14940_9, headerRight, headerBackImage, headerBackTitle, headerTruncatedBackTitle, headerBackAccessibilityLabel, headerBackTestID, headerBackAllowFontScaling, headerBackTitleStyle, leftLabelStyle;
const [state, setState] = useState(void 0);
const [state2, setState2] = useState(void 0);
const handleTitleLayout2 = (a0) => {
const layout2 = a0.nativeEvent.layout;
const { height, width } = layout2;
setState2((prevState2) => prevState2 && (height === prevState2.height && width === prevState2.width) ? prevState2 : {
height,
width
});
};
handleLeftLabelLayout2 = (a0) => {
const layout2 = a0.nativeEvent.layout;
const { height: height2, width: width2 } = layout2;
if (!((state ? height2 === state.height : state) && width2 === state.width)) {
setState({
height: height2,
width: width2
});
}
};
const r24 = memoize((a0, a1, a2, a3, a4, a5, a6) => a0({
current: {
progress: a2
},
next: a3 ? {
progress: a3
} : a3,
layouts: {
header: {
height: a6,
width: a1.width
},
screen: a1,
title: a4,
leftLabel: a5
}
}));
const progress = props.progress;
layout = props.layout;
const modal = props.modal;
onGoBack = props.onGoBack;
headerTitle = props.headerTitle;
let headerLeft = props.headerLeft;
if (headerLeft === void 0) {
headerLeft = onGoBack ? (a0) => <HeaderBackButton {...a0} /> : void 0;
}
c14940_9 = headerLeft;
headerRight = props.headerRight;
headerBackImage = props.headerBackImage;
headerBackTitle = props.headerBackTitle;
const headerBackTitleVisible = props.headerBackTitleVisible;
const headerLeftLabelVisible = headerBackTitleVisible !== void 0 && headerBackTitleVisible;
headerTruncatedBackTitle = props.headerTruncatedBackTitle;
headerBackAccessibilityLabel = props.headerBackAccessibilityLabel;
headerBackTestID = props.headerBackTestID;
headerBackAllowFontScaling = props.headerBackAllowFontScaling;
headerBackTitleStyle = props.headerBackTitleStyle;
const { headerTitleContainerStyle, headerLeftContainerStyle, headerRightContainerStyle, headerBackgroundContainerStyle, headerStyle, headerStatusBarHeight, styleInterpolator, ...rest } = props;
let r67 = getDefaultHeaderHeight(layout, modal, headerStatusBarHeight);
let height2 = StyleSheet.flatten(headerStyle || {}).height;
if (height2 === void 0) {
height2 = r67;
}
const { current, next } = progress;
const r73 = headerBackTitle ? state : void 0;
if (typeof height2 === "number") {
r67 = height2;
}
const r74 = r24(styleInterpolator, layout, current, next, state2, r73, r67);
const { titleStyle, leftButtonStyle } = r74;
leftLabelStyle = r74.leftLabelStyle;
const rightButtonStyle = r74.rightButtonStyle;
return <Header modal={modal} layout={layout} headerTitle={typeof headerTitle !== "function" ? (a0) => <HeaderTitle {...a0} onLayout={handleTitleLayout2} /> : (a0) => headerTitle({
...a0,
onLayout: handleTitleLayout2
})} headerLeft={headerLeft ? (a0) => c14940_9({
...a0,
backImage: headerBackImage,
accessibilityLabel: headerBackAccessibilityLabel,
testID: headerBackTestID,
allowFontScaling: headerBackAllowFontScaling,
onPress: onGoBack,
label: headerBackTitle,
truncatedLabel: headerTruncatedBackTitle,
labelStyle: [leftLabelStyle, headerBackTitleStyle],
onLabelLayout: handleLeftLabelLayout2,
screenLayout: layout,
titleLayout: state2,
canGoBack: Boolean(onGoBack)
}) : void 0} headerLeftLabelVisible={headerLeftLabelVisible} headerRight={headerRight ? (a0) => headerRight({
...a0,
canGoBack: Boolean(onGoBack)
}) : void 0} headerTitleContainerStyle={[titleStyle, headerTitleContainerStyle]} headerLeftContainerStyle={[leftButtonStyle, headerLeftContainerStyle]} headerRightContainerStyle={[rightButtonStyle, headerRightContainerStyle]} headerBackgroundContainerStyle={[r74.backgroundStyle, headerBackgroundContainerStyle]} headerStyle={headerStyle} headerStatusBarHeight={headerStatusBarHeight} {...rest} />;
};