diff --git a/packages/desktop/src/components/header/index.tsx b/packages/desktop/src/components/header/index.tsx index 9e8ad1c..f2126bb 100644 --- a/packages/desktop/src/components/header/index.tsx +++ b/packages/desktop/src/components/header/index.tsx @@ -1,14 +1,26 @@ -import { Button, Drawer } from "@mui/material"; -import { Header, HeaderName } from "carbon-components-react"; -import { useEffect, useMemo, useRef, useState } from "react"; +import { + Button, + ListItemIcon, + ListItemText, + Menu, + MenuItem, + MenuList, +} from "@mui/material"; +import { HeadsetMicSharp, VideocamSharp } from "@mui/icons-material"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { $selectedOutputMode } from "../../controller/recoil"; import { Avatar } from "antd"; import Logo from "../Logo"; import { useGetUserDetails } from "../../controller/index"; +import { useRecoilState } from "recoil"; export default function NirvanaHeader() { const { data: userDetailsRes, isLoading } = useGetUserDetails(); + const [anchorEl, setAnchorEl] = useState(null); + const [outputMode, setOutputMode] = useRecoilState($selectedOutputMode); + const userVideo = useRef(); const [userVideoStream, setUserVideoStream] = useState(undefined); @@ -23,53 +35,71 @@ export default function NirvanaHeader() { }); }, []); + const handleOpenMenu = useCallback((event: React.MouseEvent) => { + setAnchorEl(event.currentTarget); + }, []); + + const handleCloseMenu = useCallback(() => { + setAnchorEl(null); + }, []); + if (isLoading) return <>loading; + const menuOpen = useMemo(() => Boolean(anchorEl), [anchorEl]); + return (
- -
-
); } - -/** - * - * select between video, audio, and just profile picture - */ -function UserOutputSelectionDrawer() { - const [open, setOpen] = useState(false); - - const toggleDrawer = (event: React.KeyboardEvent | React.MouseEvent) => { - setOpen((isCurrentlyOpen) => !isCurrentlyOpen); - }; - - return ( - <> - - - Option one - - - ); -} diff --git a/packages/desktop/src/controller/recoil.tsx b/packages/desktop/src/controller/recoil.tsx index 5a7ac31..333588f 100644 --- a/packages/desktop/src/controller/recoil.tsx +++ b/packages/desktop/src/controller/recoil.tsx @@ -21,3 +21,11 @@ export const $newConvoPage = atom({ key: "NEW_CONVO_PAGE", default: false, }); + +type outputMode = "audio" | "video" | "off"; + +// selected output mode +export const $selectedOutputMode = atom({ + key: "OUTPUT_MODE", + default: "video", +});