diff --git a/packages/desktop/src/components/MainPanel.tsx b/packages/desktop/src/components/MainPanel.tsx index d638fa5..4441f2a 100644 --- a/packages/desktop/src/components/MainPanel.tsx +++ b/packages/desktop/src/components/MainPanel.tsx @@ -1,13 +1,13 @@ import { Grid, Container, Typography } from '@mui/material'; import { blueGrey } from '@mui/material/colors'; -import React from 'react'; +import React, { useMemo } from 'react'; import useAuth from '../providers/AuthProvider'; import ConversationDetails from './ConversationDetails'; import useTerminal from './Terminal'; export default function MainPanel() { const { user } = useAuth(); - const { selectedConversation } = useTerminal(); + const { selectedConversation, createConversationMode } = useTerminal(); // if selected conversation, show details // do all fetching necessary to paint things here @@ -15,20 +15,11 @@ export default function MainPanel() { // show who is - return ( - - {selectedConversation ? ( - - ) : ( + const pageContent = useMemo(() => { + if (selectedConversation) return ; + + if (createConversationMode) + return ( - {`Hi ${ - user.displayName?.split(' ')[0] ?? 'there' - }!`} - - Start a conversation with one tap
or just take a breather. -
+ creating group conversation
- )} + ); + + return ( + + {`Hi ${user.displayName?.split(' ')[0] ?? 'there'}!`} + + Start a conversation with one tap
or just take a breather. +
+
+ ); + }, [createConversationMode, selectedConversation, user]); + + return ( + + {pageContent} ); } diff --git a/packages/desktop/src/components/Navbar.tsx b/packages/desktop/src/components/Navbar.tsx index 404aeae..b4356a0 100644 --- a/packages/desktop/src/components/Navbar.tsx +++ b/packages/desktop/src/components/Navbar.tsx @@ -21,6 +21,7 @@ import { blueGrey } from '@mui/material/colors'; import KeyboardShortcutLabel from './KeyboardShortcutLabel'; import { useSnackbar } from 'notistack'; import { useKeyPressEvent } from 'react-use'; +import useTerminal from './Terminal'; const Navbar = ({ handleChangeSearchInput, @@ -31,9 +32,10 @@ const Navbar = ({ searchVal: string; isSearching: boolean; }) => { - const { logout, user } = useAuth(); const { enqueueSnackbar } = useSnackbar(); + const { handleShowCreateConvoForm } = useTerminal(); + const searchRef = useRef(null); const onSearchFocus = useCallback(() => { enqueueSnackbar('search focused'); @@ -87,7 +89,7 @@ const Navbar = ({ - + diff --git a/packages/desktop/src/components/Terminal.tsx b/packages/desktop/src/components/Terminal.tsx index 9e7964e..3c5a6bf 100644 --- a/packages/desktop/src/components/Terminal.tsx +++ b/packages/desktop/src/components/Terminal.tsx @@ -72,6 +72,11 @@ interface ITerminalContext { isUserSpeaking: boolean; isCloudDoingMagic: boolean; + + createConversationMode: boolean; + handleShowCreateConvoForm?: () => void; + + handleEscape?: () => void; } const TerminalContext = React.createContext({ @@ -80,6 +85,8 @@ const TerminalContext = React.createContext({ isUserSpeaking: false, isCloudDoingMagic: false, + + createConversationMode: false, }); // global audio data in memory @@ -490,6 +497,17 @@ export function TerminalProvider({ children }: { children?: React.ReactNode }) { setAnchorEl(null); }; + // const handleCreateConversation = useCallback(() => { + + // }, []) + + const [createConversationMode, setCreateConversationMode] = useState(false); + + const handleShowCreateConvoForm = useCallback(() => { + setSelectedConversationId(undefined); + setCreateConversationMode(true); + }, [setCreateConversationMode, setSelectedConversationId]); + return (