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:

PropTypeDefault
config
Pick<WeaveCommentToolActionConfig<T>, 'model' | 'getUser' | 'getUserBackgroundColor' | 'getUserForegroundColor'> & DeepPartial<Pick<WeaveCommentToolActionConfig<T>, 'style'>>
-

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

PropTypeDefault
getUserForegroundColor
(user: WeaveUser) => string | CanvasGradient | undefined
-
getUserBackgroundColor
(user: WeaveUser) => string | CanvasGradient | undefined
-
getUser
() => WeaveUser
-
model
WeaveCommentToolModel<T>
-
style?
WeaveCommentToolStyle
check default values

Default values

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