UNPKG

tldraw

Version:

A tiny little drawing editor.

35 lines (31 loc) 947 B
import { StateNode, TLStateNodeConstructor } from '@tldraw/editor' import { Cropping } from './children/Cropping' import { Idle } from './children/Idle' import { PointingCrop } from './children/PointingCrop' import { PointingCropHandle } from './children/PointingCropHandle' import { TranslatingCrop } from './children/TranslatingCrop' export class Crop extends StateNode { static override id = 'crop' static override initial = 'idle' static override children(): TLStateNodeConstructor[] { return [Idle, TranslatingCrop, PointingCrop, PointingCropHandle, Cropping] } markId = '' override onEnter() { this.didExit = false this.markId = this.editor.markHistoryStoppingPoint('crop') } didExit = false override onExit() { if (!this.didExit) { this.didExit = true this.editor.squashToMark(this.markId) } } override onCancel() { if (!this.didExit) { this.didExit = true this.editor.bailToMark(this.markId) } } }