WeaveUsersPresencePlugin
Showcase what users are doing in real-time on the canvas
Overview
The WeaveUsersPresencePlugin class that enables real-time sharing of operations data (drag, transform, etc.) across all connected users on the collaborative canvas. It will then display this changes as awareness without merging them on the room state.
This plugin helps create a shared sense of presence, making collaborative tools feel dynamic, interactive, and truly multi-user.
The class extends the WeavePlugin class
Name
This plugin name property value is usersPresence.
Import
import { WeaveUsersPresencePlugin } from "@inditextech/weave-sdk";Instantiation
new WeaveUsersPresencePlugin(params: WeaveUsersPresencePluginParams);TypeScript types
type WeaveUser = {
[key: string]: any;
name: string;
email: string;
};
type WeaveUsersPresencePluginConfig = {
awarenessThrottleMs: number;
getUser: () => WeaveUser;
};
type WeaveUsersPresencePluginParams = {
config: Pick<WeaveUsersPresencePluginConfig, "getUser"> &
Partial<Omit<WeaveUsersPresencePluginConfig, "getUser">>;
};
type WeaveUserPresenceInformation = Record<string, WeaveUserPresence<unknown>>;
type WeaveUserPresence<T> = {
userId: string;
nodeId: string;
attrs: T;
};
type WeaveUserPresenceKey = typeof WEAVE_USER_PRESENCE_KEY;Parameters
For WeaveUsersPresencePluginParams:
| Prop | Type | Default |
|---|---|---|
config? | WeaveUsersPresencePluginConfig | - |
For WeaveUsersPresencePluginConfig:
| Prop | Type | Default |
|---|---|---|
getUser? | () => WeaveUser | - |
