added menuvisible

This commit is contained in:
whysman 2025-03-29 23:18:28 -04:00
parent e102d1ccb7
commit db917f82dc
4 changed files with 14 additions and 7 deletions

View File

@ -15,6 +15,8 @@ const Index = () => {
const { const {
isProfileActive, isProfileActive,
setProfileActive, setProfileActive,
isMenuActive,
setMenuActive,
userId, userId,
userName, userName,
setUserName, setUserName,
@ -41,6 +43,7 @@ const Index = () => {
<View style={[styles.indexContainer, { backgroundColor: theme.colors.background }]}> <View style={[styles.indexContainer, { backgroundColor: theme.colors.background }]}>
<TopNav <TopNav
toggleProfile={() => setProfileActive(true)} toggleProfile={() => setProfileActive(true)}
toggleMenu={() => setMenuActive(true)}
/> />
<Status <Status
id={userId} id={userId}
@ -50,6 +53,7 @@ const Index = () => {
setStatus={setUserStatus} setStatus={setUserStatus}
currentTheme={currentTheme} currentTheme={currentTheme}
isProfileActive={isProfileActive} isProfileActive={isProfileActive}
isMenuActive={isMenuActive}
/> />
<Profile <Profile
visible={isProfileActive} visible={isProfileActive}

View File

@ -27,9 +27,10 @@ interface StatusProps {
setStatus: (currentStatus: string) => void; setStatus: (currentStatus: string) => void;
currentTheme: string; currentTheme: string;
isProfileActive: boolean; isProfileActive: boolean;
isMenuActive: boolean;
} }
const Status: React.FC<StatusProps> = ({ id, name, image, currentStatus, setStatus, currentTheme, isProfileActive }) => { const Status: React.FC<StatusProps> = ({ id, name, image, currentStatus, setStatus, currentTheme, isProfileActive, isMenuActive }) => {
log.debug("WebSocket URL: ", WS_URL); log.debug("WebSocket URL: ", WS_URL);
log.debug("API URL: ", API_URL); log.debug("API URL: ", API_URL);
const theme = useTheme(); const theme = useTheme();
@ -166,7 +167,7 @@ const Status: React.FC<StatusProps> = ({ id, name, image, currentStatus, setStat
}, [lastMessage, setStatus, id]); }, [lastMessage, setStatus, id]);
return ( return (
<View style={[styles.container, isProfileActive && { display: 'none' }]}> <View style={[styles.container, (isProfileActive || isMenuActive) && { display: 'none' }]}>
<ImageBackground source={require('../assets/images/bg.webp')} style={styles.imageBackground} /> <ImageBackground source={require('../assets/images/bg.webp')} style={styles.imageBackground} />
<View style={styles.listContainer}> <View style={styles.listContainer}>
<List.Section style={styles.listColumn}> <List.Section style={styles.listColumn}>

View File

@ -6,7 +6,7 @@ import About from "@/components/About";
import Privacy from "@/components/Privacy"; import Privacy from "@/components/Privacy";
import Broken from "@/components/Broken"; import Broken from "@/components/Broken";
const TopNav = ({ toggleProfile }: { toggleProfile: () => void; }) => { const TopNav = ({ toggleProfile, toggleMenu }: { toggleProfile: () => void; toggleMenu: () => void; }) => {
const theme = useTheme(); const theme = useTheme();
const colorScheme = useColorScheme(); const colorScheme = useColorScheme();
const [aboutVisible, setAboutVisible] = useState(false); const [aboutVisible, setAboutVisible] = useState(false);
@ -25,10 +25,7 @@ const TopNav = ({ toggleProfile }: { toggleProfile: () => void; }) => {
<Menu.Item onPress={() => { setMenuVisible(false); setBugVisible(true);}} title="Report a Bug" style={{ backgroundColor: theme.colors.primaryContainer }}/> <Menu.Item onPress={() => { setMenuVisible(false); setBugVisible(true);}} title="Report a Bug" style={{ backgroundColor: theme.colors.primaryContainer }}/>
</Menu> </Menu>
<Appbar.Action icon="menu" <Appbar.Action icon="menu"
onPressIn={(event) => { onPress={toggleMenu}
setMenuAnchor({ x: event.nativeEvent.pageX, y: event.nativeEvent.pageY + 40 });
setMenuVisible(true);
}}
iconColor={theme.colors.primary} /> iconColor={theme.colors.primary} />
</View> </View>
<View style={styles.logoContainer} > <View style={styles.logoContainer} >

View File

@ -11,6 +11,8 @@ export const API_URL = process.env.EXPO_PUBLIC_API_URL;
interface UserContextType { interface UserContextType {
isProfileActive: boolean; isProfileActive: boolean;
setProfileActive: (active: boolean) => void; setProfileActive: (active: boolean) => void;
isMenuActive: boolean;
setMenuActive: (active: boolean) => void;
userId: string; userId: string;
userName: string; userName: string;
setUserName: (name: string) => void; setUserName: (name: string) => void;
@ -34,6 +36,7 @@ interface UserProviderProps {
export const UserProvider: React.FC<UserProviderProps> = ({ children }) => { export const UserProvider: React.FC<UserProviderProps> = ({ children }) => {
const [isProfileActive, setProfileActive] = useState(false); const [isProfileActive, setProfileActive] = useState(false);
const [isMenuActive, setMenuActive] = useState(false);
const [userId, setUserId] = useState(""); const [userId, setUserId] = useState("");
const [userName, setUserName] = useState(""); const [userName, setUserName] = useState("");
const [userImage, setUserImage] = useState(""); const [userImage, setUserImage] = useState("");
@ -130,6 +133,8 @@ export const UserProvider: React.FC<UserProviderProps> = ({ children }) => {
value={{ value={{
isProfileActive, isProfileActive,
setProfileActive, setProfileActive,
isMenuActive,
setMenuActive,
userId, userId,
userName, userName,
setUserName, setUserName,