Lib: Add pocketbase realtime subscribe/unsubscribe helpers
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
import Pocketbase, { type AuthRecord } from "pocketbase";
|
import Pocketbase, { type AuthRecord, type RecordModel, type RecordSubscription } from "pocketbase";
|
||||||
import type { Graphic, User } from "$lib/schema";
|
import type { Graphic, User } from "$lib/schema";
|
||||||
import { env } from "$env/dynamic/public";
|
import { env } from "$env/dynamic/public";
|
||||||
|
import { invalidate } from "$app/navigation";
|
||||||
|
|
||||||
export let pb = new Pocketbase(env.PUBLIC_PBURL || "http://192.168.86.50:8090");
|
export let pb = new Pocketbase(env.PUBLIC_PBURL || "http://192.168.86.50:8090");
|
||||||
export let pbUser: User | undefined = undefined;
|
export let pbUser: User | undefined = undefined;
|
||||||
@ -41,3 +42,17 @@ pb.authStore.onChange(async () => {
|
|||||||
console.log("Updating pbUser...");
|
console.log("Updating pbUser...");
|
||||||
console.dir(pbUser, { depth: null });
|
console.dir(pbUser, { depth: null });
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
|
export const subscribe = (collections: string[]) => {
|
||||||
|
collections.forEach((collection: string) => {
|
||||||
|
pb.collection(collection).subscribe("*", (event: RecordSubscription<RecordModel>) => {
|
||||||
|
invalidate(`data:${collection}`);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const unsubscribe = (collections: string[]) => {
|
||||||
|
collections.forEach((collection: string) => {
|
||||||
|
pb.collection(collection).unsubscribe("*");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
Reference in New Issue
Block a user