diff --git a/packages/desktop/src/components/ProtectedRoute/index.tsx b/packages/desktop/src/components/ProtectedRoute/index.tsx index a99f7f6..84c1d16 100644 --- a/packages/desktop/src/components/ProtectedRoute/index.tsx +++ b/packages/desktop/src/components/ProtectedRoute/index.tsx @@ -25,13 +25,18 @@ export default function ProtectedRoute({ .then((jwtToken: string) => { if (jwtToken) { NirvanaApi._jwtToken = jwtToken; + setJwtToken(jwtToken); refetch(); + + console.log("retrieved jwtToken from storage", jwtToken); + } else { + console.log("no jwt token in store"); } }); }, []); useEffect(() => { - console.log("change in jwt token"); + console.log("change in jwt token", jwtToken); if (jwtToken) { window.electronAPI.store.set(STORE_ITEMS.AUTH_SESSION_JWT, jwtToken); diff --git a/packages/desktop/src/nirvanaApp.tsx b/packages/desktop/src/nirvanaApp.tsx index c6038df..5305acf 100644 --- a/packages/desktop/src/nirvanaApp.tsx +++ b/packages/desktop/src/nirvanaApp.tsx @@ -1,4 +1,5 @@ import { QueryClient, QueryClientProvider } from "react-query"; +import { ThemeProvider, createTheme } from "@mui/material"; import Home from "./pages/Home"; import Login from "./pages/Login"; @@ -16,18 +17,26 @@ export const queryClient = new QueryClient(); export const socket = io("http://localhost:5000"); +const darkTheme = createTheme({ + palette: { + mode: "dark", + }, +}); + function NirvanaApp() { return ( <> - - - - - - + + + + + + + - + + ); diff --git a/packages/desktop/src/pages/Home/conversations/index.tsx b/packages/desktop/src/pages/Home/conversations/index.tsx index 375de48..694d3c7 100644 --- a/packages/desktop/src/pages/Home/conversations/index.tsx +++ b/packages/desktop/src/pages/Home/conversations/index.tsx @@ -1,5 +1,6 @@ import { Add, LinkRounded } from "@mui/icons-material"; import { Avatar, Tooltip } from "antd"; +import { Tab, Tabs } from "@mui/material"; import { $selectedConversation } from "../../../controller/recoil"; import { ContactDetails } from "@nirvana/core/responses/getContacts.response"; @@ -9,7 +10,14 @@ import UserAvatarWithStatus from "../../../components/User/userAvatarWithStatus" import UserStatusText from "../../../components/User/userStatusText"; import { useRecoilState } from "recoil"; import useSocketData from "../../../controller/sockets"; +import { useState } from "react"; +enum ConvoTab { + LIVE = "LIVE", + TUNED = "TUNED", + INBOX = "INBOX", + REQUESTS = "REQUESTS", +} export default function Conversations() { // const { data: contactDetailsListResponse, isLoading } = // useGetAllContactBasicDetails(); @@ -18,6 +26,12 @@ export default function Conversations() { $selectedConversation ); + const [selectedTab, setSelectedTab] = useState(ConvoTab.INBOX); + + const handleChangeTab = (event: any, newTab: ConvoTab) => { + setSelectedTab(newTab); + }; + // todo: show conversations with activity/new content for me first...then the rest of the contacts const selectContact = async (googleUserId: string) => { @@ -32,6 +46,21 @@ export default function Conversations() { return ( <> +
+ + + + + + +
+ {/* pinned conversations */}
diff --git a/packages/desktop/src/pages/Home/header/index.tsx b/packages/desktop/src/pages/Home/header/index.tsx index 1667557..fd169f8 100644 --- a/packages/desktop/src/pages/Home/header/index.tsx +++ b/packages/desktop/src/pages/Home/header/index.tsx @@ -22,11 +22,8 @@ import { useGetUserDetails } from "../../../controller/index"; export default function Header() { const { data: userDetailsResponse, isLoading } = useGetUserDetails(); const [searchQuery, setSearchQuery] = useRecoilState($searchQuery); - const setJwtToken = useSetRecoilState($jwtToken); - const inputRef = useRef(null); - const [anchorEl, setAnchorEl] = useState(null); const openAvatarMenu = Boolean(anchorEl); @@ -97,54 +94,32 @@ export default function Header() { updateStatus(UserStatus.ONLINE)}> - + {userDetailsResponse?.user.status === UserStatus.ONLINE && ( + + )} Online updateStatus(UserStatus.OFFLINE)}> - + {userDetailsResponse?.user.status === UserStatus.OFFLINE && ( + + )} Away updateStatus(UserStatus.FLOW_STATE)}> - + {userDetailsResponse?.user.status === UserStatus.OFFLINE && ( + + )} Flow State