// Metro module 4563 (f4564). import { forwardRef, useRef, useContext, useImperativeHandle, useEffect } from "react"; import { Platform, StyleSheet } from "react-native"; import * as _Module4561 from "./Module4561"; import { useEdgeInsetApplication, EdgeInsetApplicationContext } from "./Module4552"; import warnOnce from "./warnOnce_4545"; import _default from "./_default_4564"; import { ScreenStackHeaderConfig } from "./Module4551"; import { FooterComponent } from "./ScreenFooter"; import Screen from "./Screen_4540"; let styles; const r28 = forwardRef(function ScreenStackItem(props, a1) { let current, ref3; const { children, headerConfig, activityState, shouldFreeze, stackPresentation: _stackPresentation, sheetAllowedDetents, contentStyle, style, screenId, onHeaderHeightChange, unstable_sheetFooter, ...props2 } = props; let stackPresentation = props.stackPresentation; current = void 0; ref3 = void 0; const ref2 = useRef(null); const context = useContext(_Module4561.RNSScreensRefContext); useImperativeHandle(a1, () => ref2.current); let r42 = headerConfig?.disableLeftInsetApplication; if (r42 == null) { r42 = false; } let r44 = headerConfig?.disableRightInsetApplication; if (r44 == null) { r44 = false; } let r46 = headerConfig?.disableBottomInsetApplication; if (r46 == null) { r46 = false; } const nextContextValue = useEdgeInsetApplication(r42, r44, r46).nextContextValue; if (stackPresentation == null) { stackPresentation = "push"; } let r49 = headerConfig?.hidden; if (r49 == null) { r49 = false; } current = r49; ref3 = useRef(current); useEffect(() => { warnOnce(false, "Dynamically changing header's visibility in modals will result in remounting the screen and losing all local state."); ref3.current = current; }, [current, stackPresentation]); let r58 = props2?.scrollEdgeEffects === void 0 || Object.values(props2.scrollEdgeEffects).some((item) => item !== "hidden"); const r68 = headerConfig?.blurEffect !== void 0 && headerConfig.blurEffect !== "none"; if (r58) { r58 = r68; } if (r58) { r58 = false; } warnOnce(r58, "[RNScreens] Using both `blurEffect` and `scrollEdgeEffects` simultaneously may cause overlapping effects."); Platform.constants.reactNativeVersion.minor; const r113 = <> {[ <_default contentStyle={contentStyle} style={stackPresentation !== "formSheet" ? styles.container : sheetAllowedDetents === "fitToContents" ? styles.absoluteWithNoBottom : styles.container} stackPresentation={stackPresentation}>{children} , , stackPresentation === "formSheet" && unstable_sheetFooter && {unstable_sheetFooter()} ]} ; let hasLargeHeader = headerConfig?.largeTitle; if (hasLargeHeader == null) { hasLargeHeader = false; } return { ref2.current = a0; if (context !== null) { const current2 = context.current; if (a0 === null) { delete current2[screenId]; } else { current2[screenId] = { current: a0 }; } } else { console.warn("Looks like RNSScreensRefContext is missing. Make sure the ScreenStack component is wrapped in it"); } }} enabled isNativeStack activityState={activityState} shouldFreeze={shouldFreeze} screenId={screenId} stackPresentation={stackPresentation} hasLargeHeader={hasLargeHeader} sheetAllowedDetents={sheetAllowedDetents} style={[style, void 0]} onHeaderHeightChange={onHeaderHeightChange} {...props2}>{r113}; }); styles = StyleSheet.create({ container: { flex: 1 }, absoluteWithNoBottom: { position: "absolute", top: 0, start: 0, end: 0 } }); export default r28;