Spaces:
Runtime error
Runtime error
// @ts-nocheck | |
import type { Others } from "@liveblocks/client"; | |
import { onDestroy } from "svelte"; | |
import type { Writable } from "svelte/store"; | |
import { writable } from "svelte/store"; | |
import { useRoom } from "./useRoom"; | |
/** | |
* Works similarly to `liveblocks-react` useOthers | |
* https://liveblocks.io/docs/api-reference/liveblocks-react#useOthers | |
* | |
* The main difference is that it returns a Svelte store: | |
* const others = useOthers() | |
* console.log($others.value) | |
* {#each [...$others] as other} | |
* ... | |
*/ | |
export function useOthers(): Writable<Others> { | |
const room = useRoom(); | |
const others = writable<Others>(); | |
const unsubscribe = room.subscribe("others", (newOthers) => { | |
others.set(newOthers); | |
}); | |
onDestroy(unsubscribe); | |
return others; | |
} | |