import { StateNode, TLEventHandlers } from '@bigbluebutton/editor' export class Idle extends StateNode { static override id = 'idle' override onPointerDown: TLEventHandlers['onPointerDown'] = (info) => { this.parent.transition('pointing', info) } override onEnter = () => { this.editor.setCursor({ type: 'cross', rotation: 0 }) } override onCancel = () => { this.editor.setCurrentTool('select') } override onKeyUp: TLEventHandlers['onKeyUp'] = (info) => { if (info.key === 'Enter') { if (this.editor.getInstanceState().isReadonly) return null const onlySelectedShape = this.editor.getOnlySelectedShape() // If the only selected shape is editable, start editing it if ( onlySelectedShape && this.editor.getShapeUtil(onlySelectedShape).canEdit(onlySelectedShape) ) { this.editor.setCurrentTool('select') this.editor.setEditingShape(onlySelectedShape.id) this.editor.root.getCurrent()?.transition('editing_shape', { ...info, target: 'shape', shape: onlySelectedShape, }) } } } }