diff --git a/src/lib/stores/messageStore.ts b/src/lib/stores/messageStore.ts index baa490e..9c5846e 100644 --- a/src/lib/stores/messageStore.ts +++ b/src/lib/stores/messageStore.ts @@ -1,6 +1,6 @@ import { createGenericPbStore } from "$stores/pbStore"; import pb, { Collections, type MessageResponse } from "$lib/pocketbase"; -import { Message, ActiveMessage } from "$lib/types"; +import { Message, Status } from "$lib/types"; import { writable } from "svelte/store"; import eventsource from "eventsource"; @@ -9,8 +9,8 @@ import eventsource from "eventsource"; export const messages = createGenericPbStore(Collections.Message, Message); -function createActiveMessageStore() { - const { subscribe, set, update } = writable(ActiveMessage.baseValue); +function createStatusStore() { + const { subscribe, set, update } = writable(Status.baseValue); (async () => { // Only use the first record. Assumes that PB already has this and only this record. @@ -19,15 +19,12 @@ function createActiveMessageStore() { .collection(Collections.Message) .getFullList(); - const initialData = ActiveMessage.fromPb( - initialActiveMessage, - initialMessages.map(Message.fromPb) - ); + const initialData = Status.fromPb(initialActiveMessage, initialMessages.map(Message.fromPb)); set(initialData); pb.collection(Collections.Status).subscribe("*", async (event) => { update((state) => { - return ActiveMessage.fromPb(event.record, state.messages); + return Status.fromPb(event.record, state.messages); }); }); @@ -56,9 +53,9 @@ function createActiveMessageStore() { return subscribe; } -export const activeMessage = { - subscribe: createActiveMessageStore(), - update: async (activeMessage: ActiveMessage) => { - await pb.collection(Collections.Status).update(activeMessage.id, activeMessage.toPb()); +export const status = { + subscribe: createStatusStore(), + update: async (status: Status) => { + await pb.collection(Collections.Status).update(status.id, status.toPb()); } }; diff --git a/src/lib/types.ts b/src/lib/types.ts index ebb3366..c1702e3 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -203,39 +203,35 @@ export class Message extends Record implements RecordBase { } } -export type ExpandedActiveMessageRecord = StatusResponse & { - expand: { message: MessageResponse }; -}; - -export class ActiveMessage extends Record implements RecordBase { +export class Status extends Record implements RecordBase { message: Message; messages: Message[]; - visible: boolean; + online: boolean; static baseValue = { id: "", - visible: false, + online: false, message: Message.baseValue, messages: [Message.baseValue] - } as ActiveMessage; + } as Status; - constructor(data: ActiveMessage) { + constructor(data: Status) { super(data); this.messages = data.messages; this.message = data.message; - this.visible = data.visible; + this.online = data.online; } toPb() { - return { message: this.message.id, online: this.visible }; + return { message: this.message.id, online: this.online }; } - static fromPb(activeMessage: StatusResponse, messages: Message[]): ActiveMessage { - return new ActiveMessage({ - id: activeMessage.id, - message: messages.filter((m) => m.id == activeMessage.message)[0] || Message.baseValue, + static fromPb(status: StatusResponse, messages: Message[]): Status { + return new Status({ + id: status.id, + message: messages.filter((m) => m.id == status.message)[0] || Message.baseValue, messages: messages, - visible: activeMessage.online - } as ActiveMessage); + online: status.online + } as Status); } } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index aee8e28..3e490b6 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -3,7 +3,7 @@ import Logo from "$assets/logo.png"; import AuthButton from "$components/AuthButton.svelte"; import Menu from "./Menu.svelte"; - import { activeMessage } from "$stores/messageStore"; + import { status } from "$stores/messageStore";