Spaces:
Runtime error
Runtime error
<script lang="ts"> | |
import Cursor from '$lib/Cursor.svelte'; | |
import Frame from '$lib/Frame.svelte'; | |
import Canvas from '$lib/Canvas.svelte'; | |
import Menu from '$lib/Menu.svelte'; | |
import type { Room } from '@liveblocks/client'; | |
import { COLORS, EMOJIS } from '$lib/constants'; | |
import { currZoomTransform, myPresence, others } from '$lib/store'; | |
/** | |
* The main Liveblocks code for the example. | |
* Check in src/routes/index.svelte to see the setup code. | |
*/ | |
export let room: Room; | |
</script> | |
<!-- Show the current user's cursor location --> | |
<div class="text"> | |
{$myPresence?.cursor | |
? `${$myPresence.cursor.x} × ${$myPresence.cursor.y}` | |
: 'Move your cursor to broadcast its position to other people in the room.'} | |
</div> | |
<div class="fixed left-0 z-0 w-screen h-screen cursor-none"> | |
<Canvas /> | |
<main class="z-10 relative"> | |
{#if $myPresence?.cursor} | |
<Frame color={COLORS[0]} position={$myPresence.cursor} transform={$currZoomTransform} /> | |
<Cursor | |
emoji={EMOJIS[0]} | |
color={COLORS[0]} | |
position={$myPresence.cursor} | |
transform={$currZoomTransform} | |
/> | |
{/if} | |
<!-- When others connected, iterate through others and show their cursors --> | |
{#if others} | |
{#each [...$others] as { connectionId, presence } (connectionId)} | |
{#if presence?.cursor} | |
<Frame | |
color={COLORS[1 + (connectionId % (COLORS.length - 1))]} | |
position={presence.cursor} | |
transform={$currZoomTransform} | |
/> | |
<Cursor | |
emoji={EMOJIS[1 + (connectionId % (EMOJIS.length - 1))]} | |
color={COLORS[1 + (connectionId % (COLORS.length - 1))]} | |
position={presence.cursor} | |
transform={$currZoomTransform} | |
/> | |
{/if} | |
{/each} | |
{/if} | |
</main> | |
</div> | |
<div class="fixed bottom-0 left-0 right-0 z-50 my-2"> | |
<Menu /> | |
</div> | |
<style lang="postcss" scoped> | |
</style> | |