import React, { useEffect, useState, useContext, useCallback } from 'react'; import { Link, usePathname, useFocusEffect } from 'expo-router'; import { StyleSheet, View} from 'react-native'; import { __styles } from './stylesheet/styles'; import storage from '@/constants/module/storages/storage'; import { Icon, MD3Colors, Button, Text, TouchableRipple } from 'react-native-paper'; import Theme from '@/constants/theme'; import {useWindowDimensions} from 'react-native'; import MenuButton from './components/menu_button'; import { CONTEXT } from '@/constants/module/context'; import Storage from '@/constants/module/storages/storage'; const Menu = () => { const [style, setStyle]:any = useState("") const {themeTypeContext, setThemeTypeContext}:any = useContext(CONTEXT) const [showMenuContext,setShowMenuContext]:any = useState(true) const Dimensions = useWindowDimensions(); useFocusEffect(useCallback(() => { (async ()=>{ const MENU_STATE = await Storage.get("MENU_STATE") if (MENU_STATE === null || MENU_STATE === undefined) setShowMenuContext(true) else setShowMenuContext(MENU_STATE) })() return () => { } },[])) useEffect(() => { (async ()=>{ console.log(showMenuContext) setStyle(__styles(themeTypeContext,Dimensions)) })() },[]) return (<>{style && <> <>{showMenuContext && <> } { await Storage.store("MENU_STATE", !showMenuContext) setShowMenuContext(!showMenuContext) }} style={{ backgroundColor: showMenuContext ? Theme[themeTypeContext].background_color : Theme[themeTypeContext].button_color, borderTopRightRadius: showMenuContext ? 0 : ((Dimensions.height+Dimensions.width)/2)*0.015, borderBottomRightRadius: showMenuContext ? 0 : ((Dimensions.height+Dimensions.width)/2)*0.015, padding:8, height:"auto", width:"auto", paddingVertical: showMenuContext ? 12 : 18, justifyContent:"center", alignItems:"center", borderRightWidth: showMenuContext ? 0 : 0.5, borderBottomWidth: showMenuContext ? 0 : 0.5, borderTopWidth: showMenuContext ? 0.5 : 0.5, borderColor: Theme[themeTypeContext].border_color, }} > }); } export default Menu;