Tldraw/examples/tldraw-example/src/multiplayer/multiplayer.tsx

35 wiersze
949 B
TypeScript
Czysty Zwykły widok Historia

/* eslint-disable @typescript-eslint/no-non-null-assertion */
import * as React from 'react'
import { Tldraw } from '@tldraw/tldraw'
import { createClient } from '@liveblocks/client'
import { LiveblocksProvider, RoomProvider } from '@liveblocks/react'
import { useMultiplayerState } from './useMultiplayerState'
const client = createClient({
publicApiKey: process.env.LIVEBLOCKS_PUBLIC_API_KEY || '',
throttle: 100,
})
const roomId = 'mp-test-8'
export function Multiplayer() {
return (
<LiveblocksProvider client={client}>
<RoomProvider id={roomId}>
2021-11-16 19:41:16 +00:00
<Editor roomId={roomId} />
</RoomProvider>
</LiveblocksProvider>
)
}
2021-11-16 19:41:16 +00:00
function Editor({ roomId }: { roomId: string }) {
const { error, ...events } = useMultiplayerState(roomId)
if (error) return <div>Error: {error.message}</div>
return (
<div className="tldraw">
2021-12-25 17:06:33 +00:00
<Tldraw showPages={false} {...events} disableAssets={true} />
</div>
)
}