Spaces:
Runtime error
Runtime error
<!-- | |
Works similarly to `liveblocks-react` RoomProvider | |
https://liveblocks.io/docs/api-reference/liveblocks-react#RoomProvider | |
--> | |
<script lang="ts"> | |
// @ts-nocheck | |
import { clientSymbol, roomSymbol } from './symbols'; | |
import type { Client, Room } from '@liveblocks/client'; | |
import { getContext, onDestroy, setContext } from 'svelte'; | |
import type { Presence } from '$lib/types'; | |
export let id: string; | |
export let initialPresence: Presence = {}; | |
if (!id) { | |
throw new Error('RoomProvider requires an id'); | |
} | |
const client = getContext<Client>(clientSymbol); | |
if (client) { | |
const room = client.enter(id, { initialPresence }); | |
setContext<Room>(roomSymbol, room); | |
onDestroy(() => { | |
client.leave(id); | |
}); | |
} | |
</script> | |
<slot /> | |