Weave.js

WeaveCommentToolAction

Let users add comments to a (x,y) position of the stage.

Overview

The WeaveCommentToolAction class that allows users to create comments on a particular position (x,y) of the stage.

The class extends the WeaveAction class.

Name

This action name property value is commentTool.

Import

import { WeaveCommentToolAction } from "@inditextech/weave-sdk";

Instantiation

new WeaveCommentToolAction<T>(params: WeaveCommentToolActionParams<T>);

TypeScript types

type WeaveCommentToolActionStateKeys = keyof typeof WEAVE_COMMENT_TOOL_STATE;
type WeaveCommentToolActionState =
  (typeof WEAVE_COMMENT_TOOL_STATE)[WeaveCommentToolActionStateKeys];

type WeaveCommentToolStyle = {
  cursor: {
    add: string;
    block: string;
  };
};

type WeaveCommentToolModel<T> = {
  getCreateModel: () => DeepPartial<T>;
};

type WeaveCommentToolActionConfig<T> = {
  style: WeaveCommentToolStyle;
  getUser: () => WeaveUser;
  getUserBackgroundColor: (
    user: WeaveUser
  ) => string | CanvasGradient | undefined;
  getUserForegroundColor: (
    user: WeaveUser
  ) => string | CanvasGradient | undefined;
  model: WeaveCommentToolModel<T>;
};

type WeaveCommentToolActionParams<T> = {
  config: Pick<
    WeaveCommentToolActionConfig<T>,
    "model" | "getUser" | "getUserBackgroundColor" | "getUserForegroundColor"
  > &
    DeepPartial<Pick<WeaveCommentToolActionConfig<T>, "style">>;
};

Constants

const WEAVE_COMMENT_TOOL_ACTION_NAME = "commentTool";
const WEAVE_COMMENT_TOOL_LAYER_NAME = "commentsLayer";

const WEAVE_COMMENT_TOOL_STATE = {
  ["IDLE"]: "idle",
  ["ADDING"]: "adding",
  ["SELECTED_POSITION"]: "selectedPosition",
  ["CREATING_COMMENT"]: "creatingComment",
  ["ADDED"]: "added",
} as const;

Parameters

For WeaveBrushToolActionParams:

Property Type Required Description

config

Pick<WeaveCommentToolActionConfig<T>

Required

Config parameters for the tool.

For Pick<WeaveCommentToolActionConfig<T>, 'model' | 'getUser' | 'getUserBackgroundColor' | 'getUserForegroundColor'> & DeepPartial<Pick<WeaveCommentToolActionConfig<T>, 'style'>>:

Property Type Required Default Description

style

WeaveCommentToolStyle

check default values

Defines the tool style properties.

model

WeaveCommentToolModel<T>

Required

Setup the Entity model

getUser

() ⇒ WeaveUser

Required

A function that return the actual user model

getUserBackgroundColor

(user: WeaveUser) ⇒ string | CanvasGradient | undefined

Required

A function that is called to define a user background color base on its model.

getUserForegroundColor

(user: WeaveUser) ⇒ string | CanvasGradient | undefined

Required

A function that is called to define a user foreground color base on its model.

Default values

const WEAVE_COMMENT_TOOL_DEFAULT_CONFIG = {
  style: {
    cursor: {
      add: "crosshair",
      block: "not-allowed",
    },
  },
};