import { useFocusEffect } from "expo-router";
import { type PropsWithChildren, useCallback, useState } from "react";
import { Dimensions, Pressable, TouchableOpacity } from "react-native";
import {
type EdgeInsets,
useSafeAreaInsets,
} from "react-native-safe-area-context";
import { Flex } from "../../flex";
import { Icon } from "../../icon";
import { makeStyles, useTheme } from "../../theme";
import { useShadowStyle } from "../../theme/default-styles";
export default function HeaderMenuContainer({ children }: PropsWithChildren) {
const insets = useSafeAreaInsets();
const styles = useStyles({ insets });
const { theme } = useTheme();
const { defaultShadow } = useShadowStyle();
const [visible, setVisible] = useState(false);
useFocusEffect(
useCallback(() => {
setVisible(false);
}, [])
);
return (
<>
setVisible(true)}>
{visible ? (
) : (
)}
{visible && (
setVisible(false)}
style={styles.backdropStyle}
>
{children}
)}
>
);
}
const useStyles = makeStyles((theme, props: { insets: EdgeInsets }) => ({
menuTouchable: {
padding: 8,
},
backdropStyle: {
position: "absolute",
top: 0,
left: 0,
width: Dimensions.get("window").width,
height: Dimensions.get("window").height,
justifyContent: "flex-start",
alignItems: "flex-end",
backgroundColor: theme.colors.select(
"rgba(0, 0, 0, 0.1)",
"rgba(0, 0, 0, 0.25)"
),
},
overlayStyle: {
borderRadius: theme.radius("default"),
borderTopRightRadius: 0,
borderBottomRightRadius: 0,
padding: theme.spacing("md"),
marginTop: props.insets.top + theme.spacing("sm"),
backgroundColor: theme.colors.background("auto"),
},
}));