60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
// shared
|
|
import { ref, Ref } from "vue";
|
|
|
|
export const messages: Ref<Array<Message>> = ref([]);
|
|
|
|
export const setMessages: IpcListenerCallback<Array<Message>> = (payload) => {
|
|
messages.value = payload;
|
|
}
|
|
|
|
export const addMessage: IpcListenerCallback<Message> = (payload) => {
|
|
messages.value.push(payload as Message);
|
|
}
|
|
|
|
export const updateMessage: IpcListenerCallback<Annotation> = (payload) => {
|
|
const annotation = payload as Annotation;
|
|
|
|
for (const i in messages.value) {
|
|
|
|
if (messages.value[i].uid == annotation.uid) {
|
|
|
|
if (annotation.name == "content") {
|
|
messages.value[i].content = annotation.data as Content[];
|
|
}
|
|
|
|
if (annotation.name == "context") {
|
|
messages.value[i].context = annotation.data as Context;
|
|
}
|
|
|
|
if (annotation.name == "seen") {
|
|
messages.value[i].seen = annotation.data as boolean;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export const deleteMessage: IpcListenerCallback<string> = (payload) => {
|
|
const uid = payload as string;
|
|
|
|
for (let i = 0; i < messages.value.length; i++) {
|
|
if (messages.value[i].uid === uid) {
|
|
messages.value.splice(i, 1);
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
export const resetMessages = () => {
|
|
messages.value = [];
|
|
}
|
|
|
|
export default {
|
|
messages,
|
|
setMessages,
|
|
addMessage,
|
|
updateMessage
|
|
};
|