Skip to content

defineBehavior

defineBehavior<TPayload, TBehaviorEventType, TGuardResponse>(behavior): Behavior

Defined in: behaviors/behavior.types.behavior.ts:56

Type Parameters

TPayload

TPayload extends Record<string, unknown>

TBehaviorEventType

TBehaviorEventType extends "serialize" | "clipboard.copy" | "clipboard.cut" | "drag.dragstart" | "serialization.failure" | "serialization.success" | "deserialize" | "deserialization.failure" | "deserialization.success" | "delete" | "select" | "*" | "annotation.add" | "annotation.remove" | "block.set" | "block.unset" | "decorator.add" | "decorator.remove" | "delete.backward" | "delete.block" | "delete.forward" | "history.redo" | "history.undo" | "insert.inline object" | "insert.block" | "insert.span" | "insert.text" | "move.backward" | "move.block" | "move.forward" | "split.block" | "annotation.toggle" | "decorator.toggle" | "delete.text" | "insert.blocks" | "insert.break" | "insert.soft break" | "list item.add" | "list item.remove" | "list item.toggle" | "move.block down" | "move.block up" | "select.previous block" | "select.next block" | "style.add" | "style.remove" | "style.toggle" | "clipboard.paste" | "drag.drag" | "drag.dragend" | "drag.dragenter" | "drag.dragover" | "drag.dragleave" | "drag.drop" | "input.*" | "keyboard.keydown" | "keyboard.keyup" | "mouse.click" | "serialize.*" | "deserialize.*" | "split.*" | "style.*" | "block.*" | "delete.*" | "move.*" | "select.*" | "history.*" | "annotation.*" | "decorator.*" | "insert.*" | "serialization.*" | "deserialization.*" | "list item.*" | "clipboard.*" | "drag.*" | "keyboard.*" | "mouse.*" | `custom.${string}` = `custom.${string}`

TGuardResponse

TGuardResponse = true

Parameters

behavior

Behavior<TBehaviorEventType, TGuardResponse, ResolveBehaviorEvent<TBehaviorEventType, TPayload>>

Returns

Behavior

Example

const noLowerCaseA = defineBehavior({
on: 'insert.text',
guard: ({event, snapshot}) => event.text === 'a',
actions: [({event, snapshot}) => [{type: 'insert.text', text: 'A'}]],
})