more updates
This commit is contained in:
parent
cb40a811fa
commit
af421e6bfb
7 changed files with 60 additions and 67 deletions
|
|
@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,4 +38,3 @@ export const connectionStatusListener = new IpcRendererListener({
|
|||
channel: UPDATE_MESSAGE_CHANNEL,
|
||||
listenerCallback: setConnectionStatus
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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 => {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue