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 let messages: Message[] = [];
export const setMessages = (init: {messages: Message[]}) => { export const setMessages = (init: {messages: Message[]}) => {
console.log("setMessages", init);
messages = init.messages; messages = init.messages;
ipcEmit("init-messages", messages); ipcEmit("init-messages", messages);
} }
export const newMessage = (message: Message) => { export const newMessage = (message: Message) => {
console.log("newMessage", message);
messages.push(message); messages.push(message);
ipcEmit("add-message", message); ipcEmit("add-message", message);
} }
export const annotateMessage = (annotation: Annotation) => { export const annotateMessage = (annotation: Annotation) => {
console.log("annotateMessage", annotation);
for (let i in messages) { for (let i in messages) {
if (messages[i].uid == annotation.uid) { 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; 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 => { private _onPost = (_e: IpcRendererEvent, payload: InputParam): void => {
console.log(`[IPC] Post: ${this.channel}`); console.log(`[IPC] Post: ${this.channel}`, payload);
this._listenerCallback(payload); this._listenerCallback(payload);
} }

View file

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

View file

@ -5,39 +5,55 @@ import useScroll from "@/render/composables/useScroll";
export const messages: Ref<Array<Message>> = ref([]); export const messages: Ref<Array<Message>> = ref([]);
export const setMessages: IpcListenerCallback<Array<Message>> = (payload) => { 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) => { export const addMessage: IpcListenerCallback<Message> = (payload) => {
console.log("addMessage", payload);
messages.value.push(payload as Message); messages.value.push(payload as Message);
} }
export const updateMessage: IpcListenerCallback<Annotation> = (payload) => { export const updateMessage: IpcListenerCallback<Annotation> = (payload) => {
console.log("updateMessage", payload);
const annotation = payload as Annotation; const annotation = payload as Annotation;
/* find the target message */
let targetMessage = messages.value.filter((m: Message) => { let targetMessage = messages.value.filter((m: Message) => {
return m.uid === annotation.uid; return m.uid === annotation.uid;
})[0]; })[0];
if (targetMessage) { 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 = [ // messages.value = [
{ // {
content: ["Welcome Andrew"], // content: ["Welcome Andrew"],
context: "Crimata", // context: "Crimata",
modifier: "ai", // modifier: "ai",
uid: "b5dd3d1b-cef0-4057-aa0f-c72e5c4cd67d" // uid: "b5dd3d1b-cef0-4057-aa0f-c72e5c4cd67d"
}, // },
{ // {
content: ["show contacts"], // content: ["show contacts"],
context: "show contacts", // context: "false",
modifier: "client", // modifier: "client",
uid: "ee2819a3-1125-4881-9942-ca5b3d0ad502" // uid: "ee2819a3-1125-4881-9942-ca5b3d0ad502"
}] // }]
// setTimeout(() => { // setTimeout(() => {
@ -52,10 +68,3 @@ messages.value = [
// }, 2000); // }, 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 => { const isAnnotation = (object: any): object is Annotation => {
return 'messages' in object; return 'uid' in object;
}; };
const deauthenticate = (): void => { const deauthenticate = (): void => {

View file

@ -6,9 +6,16 @@ interface Message {
uid: string; uid: string;
} }
interface Annotation { interface ContentData {
content: string[]; content: string[];
}
interface ContextData {
context: string; context: string;
}
interface Annotation {
data: ContentData | ContextData;
uid: string; uid: string;
} }