From af421e6bfb9cbfdfdf586c5e3c3b0708435447f3 Mon Sep 17 00:00:00 2001 From: Andrew Gundersen Date: Mon, 28 Jun 2021 11:32:45 -0500 Subject: [PATCH] more updates --- src/messages.ts | 20 ++++++- .../controllers/messenger.control.ts | 38 ------------- src/render/composables/useIpcRend.ts | 2 +- src/render/listeners.ts | 1 - src/render/shared/messages.ts | 55 +++++++++++-------- src/session.ts | 2 +- src/types.ts | 9 ++- 7 files changed, 60 insertions(+), 67 deletions(-) delete mode 100644 src/render/components/controllers/messenger.control.ts diff --git a/src/messages.ts b/src/messages.ts index fdd9d15..fa2ab22 100644 --- a/src/messages.ts +++ b/src/messages.ts @@ -3,21 +3,37 @@ import { ipcEmit } from "@/composables/useEmitter"; export let messages: Message[] = []; export const setMessages = (init: {messages: Message[]}) => { + console.log("setMessages", init); messages = init.messages; ipcEmit("init-messages", messages); } export const newMessage = (message: Message) => { + console.log("newMessage", message); messages.push(message); ipcEmit("add-message", message); } export const annotateMessage = (annotation: Annotation) => { + console.log("annotateMessage", annotation); + for (let i in messages) { + if (messages[i].uid == annotation.uid) { - messages[i].context = annotation.context; - ipcEmit("update-message", annotation) + + if (annotation.data.hasOwnProperty("content")) { + const data = annotation.data as ContentData; + messages[i].content = data.content; + } + + if (annotation.data.hasOwnProperty("context")) { + const data = annotation.data as ContextData; + messages[i].context = data.context; + } + + ipcEmit("update-message", annotation); break; + } } } diff --git a/src/render/components/controllers/messenger.control.ts b/src/render/components/controllers/messenger.control.ts deleted file mode 100644 index b9c3a96..0000000 --- a/src/render/components/controllers/messenger.control.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { ref } from 'vue'; -import useScroll from "@/render/composables/useScroll"; - -const messagesRef = ref(); - -/* seed the canvas with messages */ -const seedCanvas = (messages: Message[]) => { - messagesRef.value = messages; -} - -const addMessage = (message: Message) => { - messagesRef.value.push(message); -} - -const updateMessage = (message: Message) => { - - let target_message = messagesRef.value.filter((m: Message) => { - return m.uid = message.uid; - })[0]; - - if (target_message) { - target_message = message; - } - -} - -export default function useMessages() { - - const { updateScrollRef, adjustScroll } = useScroll("messenger"); - - return { - messagesRef, - seedCanvas, - addMessage, - updateMessage - }; - -} diff --git a/src/render/composables/useIpcRend.ts b/src/render/composables/useIpcRend.ts index bbfb4e1..477289f 100644 --- a/src/render/composables/useIpcRend.ts +++ b/src/render/composables/useIpcRend.ts @@ -25,7 +25,7 @@ export class IpcRendererListener implements IIpcListener } private _onPost = (_e: IpcRendererEvent, payload: InputParam): void => { - console.log(`[IPC] Post: ${this.channel}`); + console.log(`[IPC] Post: ${this.channel}`, payload); this._listenerCallback(payload); } diff --git a/src/render/listeners.ts b/src/render/listeners.ts index 0a05208..62f7cb7 100644 --- a/src/render/listeners.ts +++ b/src/render/listeners.ts @@ -38,4 +38,3 @@ export const connectionStatusListener = new IpcRendererListener({ channel: UPDATE_MESSAGE_CHANNEL, listenerCallback: setConnectionStatus }); - diff --git a/src/render/shared/messages.ts b/src/render/shared/messages.ts index 8d87534..79b8fe7 100644 --- a/src/render/shared/messages.ts +++ b/src/render/shared/messages.ts @@ -5,39 +5,55 @@ import useScroll from "@/render/composables/useScroll"; export const messages: Ref> = ref([]); export const setMessages: IpcListenerCallback> = (payload) => { - // messages.value = payload as Array; + console.log("setMessages", payload); + messages.value = payload as Array; } export const addMessage: IpcListenerCallback = (payload) => { + console.log("addMessage", payload); messages.value.push(payload as Message); } export const updateMessage: IpcListenerCallback = (payload) => { + console.log("updateMessage", payload); const annotation = payload as Annotation; + /* find the target message */ let targetMessage = messages.value.filter((m: Message) => { return m.uid === annotation.uid; })[0]; if (targetMessage) { - targetMessage.content = annotation.content; - targetMessage.context = annotation.context; + + /* update the content (add a new bubble) */ + if (annotation.data.hasOwnProperty("content")) { + const data = annotation.data as ContentData; + targetMessage.content = data.content; + } + + /* and/or update the context */ + if (annotation.data.hasOwnProperty("context")) { + const data = annotation.data as ContextData; + targetMessage.context = data.context; + } + } + } -messages.value = [ -{ - content: ["Welcome Andrew"], - context: "Crimata", - modifier: "ai", - uid: "b5dd3d1b-cef0-4057-aa0f-c72e5c4cd67d" -}, -{ - content: ["show contacts"], - context: "show contacts", - modifier: "client", - uid: "ee2819a3-1125-4881-9942-ca5b3d0ad502" -}] +// messages.value = [ +// { +// content: ["Welcome Andrew"], +// context: "Crimata", +// modifier: "ai", +// uid: "b5dd3d1b-cef0-4057-aa0f-c72e5c4cd67d" +// }, +// { +// content: ["show contacts"], +// context: "false", +// modifier: "client", +// uid: "ee2819a3-1125-4881-9942-ca5b3d0ad502" +// }] // setTimeout(() => { @@ -52,10 +68,3 @@ messages.value = [ // }, 2000); - -export default { - messages, - setMessages, - addMessage, - updateMessage -}; diff --git a/src/session.ts b/src/session.ts index df0c122..c1aec40 100644 --- a/src/session.ts +++ b/src/session.ts @@ -19,7 +19,7 @@ const isNewMessage = (object: any): object is Message => { }; const isAnnotation = (object: any): object is Annotation => { - return 'messages' in object; + return 'uid' in object; }; const deauthenticate = (): void => { diff --git a/src/types.ts b/src/types.ts index 7b6d964..a0cbb70 100644 --- a/src/types.ts +++ b/src/types.ts @@ -6,9 +6,16 @@ interface Message { uid: string; } -interface Annotation { +interface ContentData { content: string[]; +} + +interface ContextData { context: string; +} + +interface Annotation { + data: ContentData | ContextData; uid: string; } -- 2.43.0