more updates

This commit is contained in:
Andrew Gundersen 2021-06-28 11:32:45 -05:00
commit af421e6bfb
7 changed files with 60 additions and 67 deletions

View 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;
}
}
}

View file

@ -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
};
}

View 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);
}

View file

@ -38,4 +38,3 @@ export const connectionStatusListener = new IpcRendererListener({
channel: UPDATE_MESSAGE_CHANNEL,
listenerCallback: setConnectionStatus
});

View 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
};

View 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 => {

View 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;
}