Skip to content

defineBehavior

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

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

Type Parameters

TPayload extends Record<string, unknown>

TBehaviorEventType extends "focus" | "delete" | "select" | "serialize" | "copy" | "serialization.failure" | "serialization.success" | "deserialize" | "deserialization.failure" | "deserialization.success" | "annotation.add" | "annotation.remove" | "annotation.toggle" | "block.set" | "block.unset" | "blur" | "data transfer.set" | "decorator.add" | "decorator.remove" | "decorator.toggle" | "delete.backward" | "delete.block" | "delete.forward" | "delete.text" | "insert.blocks" | "insert.block object" | "insert.inline object" | "insert.break" | "insert.soft break" | "insert.block" | "insert.span" | "insert.text" | "insert.text block" | "list item.add" | "list item.remove" | "list item.toggle" | "move.block" | "move.block down" | "move.block up" | "select.previous block" | "select.next block" | "style.add" | "style.remove" | "style.toggle" | "text block.set" | "text block.unset" | "key.down" | "key.up" | "paste" | `custom.${string}` = `custom.${string}`

TGuardResponse = true

Parameters

behavior

Behavior<TBehaviorEventType, TGuardResponse, TBehaviorEventType extends `custom.${TType}` ? CustomBehaviorEvent<TPayload, TType, `custom.${TType}`> : PickFromUnion<BehaviorEvent, "type", TBehaviorEventType>>

Returns

Behavior

Example

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