import React, { useState, useContext } from 'react'; import axios from 'axios'; import { useNavigate } from 'react-router-dom'; import { IconButton, Menu, MenuItem, Typography, Tooltip, Chip } from "@mui/material"; import { AccountCircle, Logout, Clear, Brightness4, Brightness7 } from "@mui/icons-material"; import styled from "styled-components"; import { stopRecording } from "../../api/recording"; import { useGlobalInfoStore } from "../../context/globalInfo"; import { AuthContext } from '../../context/auth'; import { SaveRecording } from '../molecules/SaveRecording'; import DiscordIcon from '../atoms/DiscordIcon'; import { apiUrl } from '../../apiConfig'; import MaxunLogo from "../../assets/maxunlogo.png"; import { useThemeMode } from '../../context/theme-provider'; interface NavBarProps { recordingName: string; isRecording: boolean; } export const NavBar: React.FC = ({ recordingName, isRecording }) => { const { notify, browserId, setBrowserId } = useGlobalInfoStore(); const { state, dispatch } = useContext(AuthContext); const { user } = state; const navigate = useNavigate(); const { darkMode, toggleTheme } = useThemeMode(); const [anchorEl, setAnchorEl] = useState(null); const handleMenuOpen = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; const handleMenuClose = () => { setAnchorEl(null); }; const logout = async () => { dispatch({ type: 'LOGOUT' }); window.localStorage.removeItem('user'); const { data } = await axios.get(`${apiUrl}/auth/logout`); notify('success', data.message); navigate('/login'); }; const goToMainMenu = async () => { if (browserId) { await stopRecording(browserId); notify('warning', 'Current Recording was terminated'); setBrowserId(null); } navigate('/'); }; const renderBrandSection = () => ( Maxun ); const renderSocialButtons = () => ( <>