ArrowBindingUtil

See source code
Table of contents

Extends BindingUtil<TLArrowBinding>.

class ArrowBindingUtil extends BindingUtil<TLArrowBinding> {}

Constructor

Constructs a new instance of the BindingUtil class

Parameters

NameDescription

editor


Properties

migrations

static
static migrations: import('@tldraw/editor').TLPropsMigrations

props

static
static props: import('@tldraw/editor').RecordProps<TLArrowBinding>

type

static
static type: string

editor

editor: Editor

Methods

getDefaultProps()

getDefaultProps(): Partial<TLArrowBindingProps>

onAfterChange()

onAfterChange({ bindingAfter }: BindingOnChangeOptions<TLArrowBinding>): void

Parameters

NameDescription

{ bindingAfter }

Returns

void

onAfterChangeFromShape()

onAfterChangeFromShape({
  shapeAfter,
}: BindingOnShapeChangeOptions<TLArrowBinding>): void

Parameters

NameDescription

{ shapeAfter, }

Returns

void

onAfterChangeToShape()

onAfterChangeToShape({
  binding,
}: BindingOnShapeChangeOptions<TLArrowBinding>): void

Parameters

NameDescription

{ binding }

Returns

void

onAfterCreate()

onAfterCreate({ binding }: BindingOnCreateOptions<TLArrowBinding>): void

Parameters

NameDescription

{ binding }

Returns

void

onAfterDelete()

optional

Called after a binding has been deleted. See BindingOnDeleteOptions for details.

onAfterDelete?(options: BindingOnDeleteOptions<Binding>): void

Parameters

NameDescription

options

Returns

void

onBeforeChange()

optional

Called when a binding is about to be changed. See BindingOnChangeOptions for details.

Note that this only fires when the binding record is changing, not when the shapes associated change. Use BindingUtil.onAfterChangeFromShape and BindingUtil.onAfterChangeToShape for that.

You can optionally return a new binding to replace the one being changed - for example, to enforce constraints on the binding's props.

onBeforeChange?(options: BindingOnChangeOptions<Binding>): Binding | void

Parameters

NameDescription

options

Returns

Binding | void

onBeforeCreate()

optional

Called when a binding is about to be created. See BindingOnCreateOptions for details.

You can optionally return a new binding to replace the one being created - for example, to set different initial props.

onBeforeCreate?(options: BindingOnCreateOptions<Binding>): Binding | void

Parameters

NameDescription

options

Returns

Binding | void

onBeforeDelete()

optional

Called when a binding is about to be deleted. See BindingOnDeleteOptions for details.

onBeforeDelete?(options: BindingOnDeleteOptions<Binding>): void

Parameters

NameDescription

options

Returns

void

onBeforeDeleteFromShape()

optional

Called before the shape referenced in a binding's fromId is about to be deleted. Use this with care - you may want to use BindingUtil.onBeforeIsolateToShape instead. See BindingOnShapeDeleteOptions for details.

onBeforeDeleteFromShape?(options: BindingOnShapeDeleteOptions<Binding>): void

Parameters

NameDescription

options

Returns

void

onBeforeDeleteToShape()

optional

Called before the shape referenced in a binding's toId is about to be deleted. Use this with care - you may want to use BindingUtil.onBeforeIsolateFromShape instead. See BindingOnShapeDeleteOptions for details.

onBeforeDeleteToShape?(options: BindingOnShapeDeleteOptions<Binding>): void

Parameters

NameDescription

options

Returns

void

onBeforeIsolateFromShape()

onBeforeIsolateFromShape({
  binding,
}: BindingOnShapeIsolateOptions<TLArrowBinding>): void

Parameters

NameDescription

{ binding, }

Returns

void

onBeforeIsolateToShape()

optional

Called before the shape referenced in a binding's toId is about to be isolated from the shape referenced in fromId. See BindingOnShapeIsolateOptions for discussion on what isolation means, and when/how to use this callback.

onBeforeIsolateToShape?(options: BindingOnShapeIsolateOptions<Binding>): void

Parameters

NameDescription

options

Returns

void

onOperationComplete()

optional

Called whenever a store operation involving this binding type has completed. This is useful for working with networks of related bindings that may need to update together.

onOperationComplete?(): void

Example

class MyBindingUtil extends BindingUtil<MyBinding> {
  changedBindingIds = new Set<TLBindingId>()

  onOperationComplete() {
    doSomethingWithChangedBindings(this.changedBindingIds)
    this.changedBindingIds.clear()
  }

  onAfterChange({ bindingAfter }: BindingOnChangeOptions<MyBinding>) {
    this.changedBindingIds.add(bindingAfter.id)
  }
}

Prev
TLSocketRoom
Next
ArrowShapeTool