diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 0e0dc31..a7e3b41 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -69,14 +69,6 @@ "preload": { "js": "./src/electron/preload.ts" } - }, - { - "html": "./src/index.html", - "js": "./src/rendererTwo.ts", - "name": "second_window", - "preload": { - "js": "./src/electron/preload.ts" - } } ] } diff --git a/packages/desktop/src/app.tsx b/packages/desktop/src/app.tsx index d4f8e0a..9c40d4a 100644 --- a/packages/desktop/src/app.tsx +++ b/packages/desktop/src/app.tsx @@ -1,10 +1,10 @@ -import "./index.css"; -import "./carbon.scss"; +import "./styles/index.css"; +import "./styles/carbon.scss"; import * as React from "react"; import * as ReactDOM from "react-dom"; -import NirvanaApp from "./nirvanaApp"; +import NirvanaApp from "./pages/nirvanaApp"; function render() { ReactDOM.render(, document.getElementById("root")); diff --git a/packages/desktop/src/controller/sockets.tsx b/packages/desktop/src/controller/sockets.tsx index 2c06231..3ac9404 100644 --- a/packages/desktop/src/controller/sockets.tsx +++ b/packages/desktop/src/controller/sockets.tsx @@ -2,7 +2,7 @@ import { useEffect, useState } from "react"; import SocketChannels from "@nirvana/core/sockets/channels"; import { UserStatus } from "../../../core/models/user.model"; -import { socket } from "../nirvanaApp"; +import { socket } from "../pages/nirvanaApp"; // import { useGetAllContactBasicDetails } from "./index"; diff --git a/packages/desktop/src/index.ts b/packages/desktop/src/index.ts index f8201ad..8c7479c 100644 --- a/packages/desktop/src/index.ts +++ b/packages/desktop/src/index.ts @@ -10,7 +10,6 @@ import store from "./electron/store"; // whether you're running in development or production). declare const MAIN_WINDOW_WEBPACK_ENTRY: string; declare const MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY: string; -declare const SECOND_WINDOW_WEBPACK_ENTRY: string; // Handle creating/removing shortcuts on Windows when installing/uninstalling. if (require("electron-squirrel-startup")) { @@ -21,7 +20,6 @@ if (require("electron-squirrel-startup")) { // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. export let browserWindow: BrowserWindow; -export let overlayWindow: BrowserWindow; const createWindow = (): void => { // Create the browser window. @@ -34,23 +32,11 @@ const createWindow = (): void => { icon: "./assets/1024x1024.icns", }); - overlayWindow = new BrowserWindow({ - ...Dimensions.default, - webPreferences: { - preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY, - sandbox: true, - }, - icon: "./assets/1024x1024.icns", - alwaysOnTop: true, - }); - // and load the index.html of the app. browserWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY); - overlayWindow.loadURL(SECOND_WINDOW_WEBPACK_ENTRY); // Open the DevTools. browserWindow.webContents.openDevTools({ mode: "detach" }); - overlayWindow.webContents.openDevTools({ mode: "detach" }); }; // This method will be called when Electron has finished diff --git a/packages/desktop/src/overlay/index.tsx b/packages/desktop/src/overlay/index.tsx deleted file mode 100644 index 774225a..0000000 --- a/packages/desktop/src/overlay/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import "../index.css"; -import "../carbon.scss"; - -import * as React from "react"; -import * as ReactDOM from "react-dom"; - -import { Button } from "carbon-components-react"; - -function render() { - ReactDOM.render( -
- this is the overlay for video streams and conversations to be passed in - -
, - document.getElementById("root") - ); -} - -render(); diff --git a/packages/desktop/src/pages/Home/conversations/index.tsx b/packages/desktop/src/pages/Home/conversations/index.tsx deleted file mode 100644 index 7d1d5e7..0000000 --- a/packages/desktop/src/pages/Home/conversations/index.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import { - $newConvoPage, - $selectedConversation, -} from "../../../controller/recoil"; -import { Avatar, Tooltip } from "antd"; -import { - Conversation, - ConversationMemberState, -} from "../../../../../core/models/conversation.model"; -import { useRecoilState, useSetRecoilState } from "recoil"; - -import BasicConversationRow from "../../../components/conversation/basicRow"; -import { ContactDetails } from "@nirvana/core/responses/getContacts.response"; -import { FaVolumeUp } from "react-icons/fa"; -import MasterConversation from "../../../../../core/models/masterConversation.model"; -import SkeletonLoader from "../../../components/loading/skeleton"; -import UserAvatarWithStatus from "../../../components/User/userAvatarWithStatus"; -import UserStatusText from "../../../components/User/userStatusText"; -import useSocketData from "../../../controller/sockets"; -import { useState } from "react"; -import { useUserConvos } from "../../../controller/index"; - -enum ConvoTab { - LIVE = "LIVE", - TUNED = "TUNED", - INBOX = "INBOX", - REQUESTS = "REQUESTS", -} -export default function Conversations() { - // const { data: contactDetailsListResponse, isLoading } = - // useGetAllContactBasicDetails(); - const { speakingRooms } = useSocketData(); - const [selectedConvo, setSelectedConvo] = useRecoilState( - $selectedConversation - ); - const setNewConvoPageTrigger = useSetRecoilState($newConvoPage); - - const [selectedTab, setSelectedTab] = useState(ConvoTab.INBOX); - - const handleChangeTab = (event: any, newTab: ConvoTab) => { - setSelectedTab(newTab); - }; - - const handleNewConvo = () => { - setNewConvoPageTrigger(true); - }; - - // todo: show conversations with activity/new content for me first...then the rest of the contacts - - const selectContact = async (googleUserId: string) => { - // if this person is already selected, unselect - if (selectedConvo === googleUserId) { - setSelectedConvo(null); - return; - } - - setSelectedConvo(googleUserId); - }; - - const { data: userConverstionsData } = useUserConvos(); - - // render right content based on selected tab - const renderConversationContent = () => { - // if no content for a tab, then show stale text - - const invitedConvos = userConverstionsData?.filter( - (masterConvo) => - masterConvo.currentUserMember.state === ConversationMemberState.INVITED - ); - const inboxConvos = userConverstionsData?.filter( - (masterConvo) => - masterConvo.currentUserMember.state === ConversationMemberState.INBOX - ); - const tunedConvos = userConverstionsData?.filter( - (masterConvo) => - masterConvo.currentUserMember.state === ConversationMemberState.TUNED - ); - - const liveConversations = []; - - switch (selectedTab) { - case ConvoTab.LIVE: - return ( - - None of your channels are live. Join and chill in a room and it will - show up here! - - ); - case ConvoTab.TUNED: - if (tunedConvos?.length) { - return displaying all tuned in convos; - } - return Pin a channel to turn it into a walkie talkie.; - case ConvoTab.INBOX: - if (inboxConvos?.length) { - return ( - <> - {inboxConvos.map((convo) => ( - - ))} - - ); - } - return Connect with someone and start talking!; - case ConvoTab.REQUESTS: - if (invitedConvos?.length) { - return displaying all request convos; - } - return ( - - No new conversations, connect with someone to get started. - - ); - } - }; - - return ( - <> -
- -
- {renderConversationContent()} -
- - {/* {isLoading ? ( - - ) : ( -
- {contactDetailsListResponse?.contactsDetails.map( - (contactDetail: ContactDetails) => { - const isSelected = - contactDetail.otherUser.googleId === selectedConvo; - - return ( -
- selectContact(contactDetail.otherUser.googleId) - } - className={`flex flex-row items-center hover:bg-zinc-600 group py-4 px-2 cursor-pointer ${ - isSelected ? "bg-zinc-600" : "" - } rounded`} - > - - - - {contactDetail.otherUser.name} - - - - - - - {speakingRooms.includes( - contactDetail.relationship._id.toString() - ) ? ( - speaking... - ) : null} -
- ); - } - )} -
- )} */} - - ); -} diff --git a/packages/desktop/src/pages/Home/header/index.tsx b/packages/desktop/src/pages/Home/header/index.tsx deleted file mode 100644 index 3b54af3..0000000 --- a/packages/desktop/src/pages/Home/header/index.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import { $jwtToken, $searchQuery } from "../../../controller/recoil"; -import Logo, { LogoType } from "../../../components/Logo"; -import { useEffect, useRef, useState } from "react"; -import { useRecoilState, useSetRecoilState } from "recoil"; - -import { GlobalHotKeys } from "react-hotkeys"; -import SocketChannels from "@nirvana/core/sockets/channels"; -import UserAvatarWithStatus from "../../../components/User/userAvatarWithStatus"; -import { UserStatus } from "@nirvana/core/models"; -import { socket } from "../../../nirvanaApp"; -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); - - const [userVideo, setUserVideo] = useState(null); - - // useEffect(() => { - // navigator.mediaDevices - // .getUserMedia({ video: true, audio: true }) - // .then((localMediaStream: any) => { - // console.log(localMediaStream); - - // setUserVideo(localMediaStream); - - // var video = document.querySelector("video"); - // video.srcObject = localMediaStream; - // video.onloadedmetadata = function (e) { - // video.play(); - // }; - - // setTimeout(() => { - // localMediaStream.getTracks().forEach((track: any) => { - // track.stop(); - // }); - - // video.srcObject = null; - // }, 2000); - // }); - // }, []); - - const handleClick = (event: any) => { - setAnchorEl(event.currentTarget); - }; - - const handleClose = () => { - setAnchorEl(null); - }; - - if (isLoading) { - return getting data; - } - - const logOut = () => { - console.log("logging out!"); - setJwtToken(undefined); - }; - - const updateStatus = (newStatus: UserStatus) => { - // send update in socket - socket.emit( - SocketChannels.SEND_USER_STATUS_UPDATE, - userDetailsResponse.user.status, - newStatus - ); - }; - - // hot keys for selecting search - const handleSearch = () => { - if (inputRef?.current) { - inputRef?.current?.focus(); - setSearchQuery(""); - } - }; - - const keyMap = { START_SEARCH: "/" }; - const handlers = { START_SEARCH: handleSearch }; - - return ( - <> - - -