diff options
| author | kj_sh604 | 2026-03-15 16:19:35 -0400 |
|---|---|---|
| committer | kj_sh604 | 2026-03-15 16:19:35 -0400 |
| commit | bc297e5e496d9f48ef77581b7fb41fdf328a62cf (patch) | |
| tree | 66192466eef76ee4c5cf71a9788ae9fe947514d4 /dev-docs/docs/@excalidraw/excalidraw/api/children-components/live-collaboration-trigger.mdx | |
| parent | f6538b8f1a78a7d72a41916ac79376f8c2d30193 (diff) | |
refactor: dev-docs/
Diffstat (limited to 'dev-docs/docs/@excalidraw/excalidraw/api/children-components/live-collaboration-trigger.mdx')
| -rw-r--r-- | dev-docs/docs/@excalidraw/excalidraw/api/children-components/live-collaboration-trigger.mdx | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/dev-docs/docs/@excalidraw/excalidraw/api/children-components/live-collaboration-trigger.mdx b/dev-docs/docs/@excalidraw/excalidraw/api/children-components/live-collaboration-trigger.mdx new file mode 100644 index 0000000..ef74d0e --- /dev/null +++ b/dev-docs/docs/@excalidraw/excalidraw/api/children-components/live-collaboration-trigger.mdx @@ -0,0 +1,62 @@ +# LiveCollaborationTrigger + +If you implement live collaboration support and want to expose the same UI button as on [excalidraw.com](https://excalidraw.com), you can render the `<LiveCollaborationTrigger/>` component using the [renderTopRightUI](/docs/@excalidraw/excalidraw/api/props#rendertoprightui) prop. + +You'll need to supply `onSelect()` to handle opening of your collaboration dialog, but the button will display `appState.collaborators` count provided you have supplied it. + +| Prop | Type | Required | Default | Description | +| --- | --- | --- | --- | --- | +| `onSelect` | `function` | Yes | | Handler called when the user clicks on the button | +| `isCollaborating` | `boolean` | Yes | false | Whether live collaboration session is in effect. Modifies button style. | + +```tsx live +function App() { + const [excalidrawAPI, setExcalidrawAPI] = useState(null); + const [isCollaborating, setIsCollaborating] = useState(false); + return ( + <div style={{ height: "500px" }}> + <p style={{ fontSize: "16px" }}> + Selecting the checkbox to see the collaborator count + </p> + <label style={{ fontSize: "16px", fontWeight: "bold" }}> + <input + type="checkbox" + checked={isCollaborating} + onChange={() => { + if (!isCollaborating) { + const collaborators = new Map(); + collaborators.set("id1", { + username: "Doremon", + avatarUrl: "../../../../img/doremon.png", + }); + collaborators.set("id3", { + username: "Pika", + avatarUrl: "../../../../img/pika.jpeg", + }); + excalidrawAPI.updateScene({ collaborators }); + } else { + excalidrawAPI.updateScene({ + collaborators: new Map(), + }); + } + setIsCollaborating(!isCollaborating); + }} + /> + Show Collaborators + </label> + <Excalidraw + ref={(api) => setExcalidrawAPI(api)} + renderTopRightUI={() => ( + <LiveCollaborationTrigger + isCollaborating={isCollaborating} + onSelect={() => { + window.alert("You clicked on collab button"); + setIsCollaborating(true); + }} + /> + )} + ></Excalidraw> + </div> + ); +} +``` |
