From f66d9e1d239d14c1f515a1034713003fb6d6b5fb Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 29 May 2022 12:38:59 -0500 Subject: [PATCH] accessing content and displaying --- packages/desktop/src/components/Terminal.tsx | 50 +++++++++++--------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/packages/desktop/src/components/Terminal.tsx b/packages/desktop/src/components/Terminal.tsx index c283fc0..c72630b 100644 --- a/packages/desktop/src/components/Terminal.tsx +++ b/packages/desktop/src/components/Terminal.tsx @@ -86,6 +86,7 @@ type ConversationContentMap = { interface ITerminalContext { conversationMap: ConversationMap; + conversationContentMap: ConversationContentMap; selectedConversation?: Conversation; selectConversation?: (conversationId: string) => void; @@ -100,6 +101,7 @@ interface ITerminalContext { const TerminalContext = React.createContext({ conversationMap: {}, + conversationContentMap: {}, isUserSpeaking: false, isCloudDoingMagic: false, @@ -142,7 +144,7 @@ export function TerminalProvider({ children }: { children?: React.ReactNode }) { const [conversationMap, updateConversationMap] = useImmer({}); const [userMap, updateUserMap] = useImmer({}); - const [contentMap, updatecontentMap] = useImmer({}); + const [conversationContentMap, updateContentMap] = useImmer({}); // fetch conversations useEffect(() => { @@ -197,7 +199,7 @@ export function TerminalProvider({ children }: { children?: React.ReactNode }) { if (docChange.type === 'added') { // TODO: add to audio queue from here if there was an addition? enqueueSnackbar('new content received!', { variant: 'default' }); - updatecontentMap((draftContent) => { + updateContentMap((draftContent) => { if (draftContent[conversationId]) { draftContent[conversationId].push(currentContentBlock); } else { @@ -231,7 +233,7 @@ export function TerminalProvider({ children }: { children?: React.ReactNode }) { return () => { Object.values(contentListeners).forEach((unsub) => unsub()); }; - }, [conversationMap, updatecontentMap, enqueueSnackbar, setContentListeners, contentListeners]); + }, [conversationMap, updateContentMap, enqueueSnackbar, setContentListeners, contentListeners]); // cache of selected conversation const selectedConversation: Conversation | undefined = useMemo(() => { @@ -493,6 +495,7 @@ export function TerminalProvider({ children }: { children?: React.ReactNode }) { handleQuickDial, selectConversation, isCloudDoingMagic, + conversationContentMap, }} > @@ -1034,7 +1037,9 @@ function ConversationDetails() { } function ConversationHistory() { - const { isCloudDoingMagic, selectedConversation } = useTerminal(); + const { isCloudDoingMagic, selectedConversation, conversationContentMap } = useTerminal(); + + const contentBlocks = conversationContentMap[selectedConversation?.id] ?? []; return ( @@ -1077,27 +1082,28 @@ function ConversationHistory() { }} > today + {contentBlocks.map((contentBlock) => ( + + + {/* + - - - - + + {'Viet Phan'} + + */} - - {'Viet Phan'} - + + + - - - - - - + + ))} {isCloudDoingMagic && (