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 /> | |