]> Repos - mime-chat/commitdiff
more updates
authorAndrew Gundersen <gundersena@xavier.edu>
Mon, 28 Jun 2021 16:32:45 +0000 (11:32 -0500)
committerAndrew Gundersen <gundersena@xavier.edu>
Mon, 28 Jun 2021 16:32:45 +0000 (11:32 -0500)
src/messages.ts
src/render/components/controllers/messenger.control.ts [deleted file]
src/render/composables/useIpcRend.ts
src/render/listeners.ts
src/render/shared/messages.ts
src/session.ts
src/types.ts

index fdd9d155e2484509ee1c10cf744df59e9a013eab..fa2ab22c98987df57d8cd022e39cbea88352f1ee 100644 (file)
@@ -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 (file)
index b9c3a96..0000000
+++ /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
-  };
-
-}
index bbfb4e1c54cbfdd0e0c0f9450e47fa06dc833852..477289f0193b17dc191dcadd7fe02684121a64a2 100644 (file)
@@ -25,7 +25,7 @@ export class IpcRendererListener<InputParam> implements IIpcListener<InputParam>
   }
 
   private _onPost = (_e: IpcRendererEvent, payload: InputParam): void => {
-      console.log(`[IPC] Post: ${this.channel}`);
+      console.log(`[IPC] Post: ${this.channel}`, payload);
       this._listenerCallback(payload);
   }
 
index 0a0520857e2eb46b11adb114f956dbc32bd5a721..62f7cb7d0ce5ce4f9b780f26462035d09963493b 100644 (file)
@@ -38,4 +38,3 @@ export const connectionStatusListener = new IpcRendererListener({
     channel: UPDATE_MESSAGE_CHANNEL,
     listenerCallback: setConnectionStatus
 });
-
index 8d875342cb79633e1edadf3c401a8281763d7069..79b8fe7851a2ce676cf4eb5c1f23fff2240d88ac 100644 (file)
@@ -5,39 +5,55 @@ import useScroll from "@/render/composables/useScroll";
 export const messages: Ref<Array<Message>> = ref([]);
 
 export const setMessages: IpcListenerCallback<Array<Message>> = (payload) => {
-    // messages.value = payload as Array<Message>;
+    console.log("setMessages", payload);
+    messages.value = payload as Array<Message>;
 }
 
 export const addMessage: IpcListenerCallback<Message> = (payload) => {
+    console.log("addMessage", payload);
     messages.value.push(payload as Message);
 }
 
 export const updateMessage: IpcListenerCallback<Annotation> = (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
-};
index df0c1228eb06348b91e8dce9eec83d0dcb61858c..c1aec403879b72ce3498b9e1c1b305846441ef20 100644 (file)
@@ -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 => {
index 7b6d964ab2af8793e6fe68d89c737628f41bf1a9..a0cbb70ddbbba4cbace157e2f953abb7d1da54da 100644 (file)
@@ -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;
 }