UNPKG

tldraw

Version:

A tiny little drawing editor.

8 lines (7 loc) 3.11 kB
{ "version": 3, "sources": ["../../src/lib/defaultSideEffects.ts"], "sourcesContent": ["import { Editor } from '@tldraw/editor'\n\n/** @public */\nexport function registerDefaultSideEffects(editor: Editor) {\n\treturn editor.sideEffects.register({\n\t\tinstance_page_state: {\n\t\t\tafterChange: (prev, next) => {\n\t\t\t\tif (prev.croppingShapeId !== next.croppingShapeId) {\n\t\t\t\t\tconst isInCroppingState = editor.isIn('select.crop')\n\t\t\t\t\tif (!prev.croppingShapeId && next.croppingShapeId) {\n\t\t\t\t\t\tif (!isInCroppingState) {\n\t\t\t\t\t\t\teditor.setCurrentTool('select.crop.idle')\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (prev.croppingShapeId && !next.croppingShapeId) {\n\t\t\t\t\t\tif (isInCroppingState) {\n\t\t\t\t\t\t\teditor.setCurrentTool('select.idle')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (prev.editingShapeId !== next.editingShapeId) {\n\t\t\t\t\tif (!prev.editingShapeId && next.editingShapeId) {\n\t\t\t\t\t\tif (!editor.isIn('select.editing_shape')) {\n\t\t\t\t\t\t\t// Here's where we handle the special tool locking case for text\n\t\t\t\t\t\t\t// If tool lock is enabled, and we just finished editing a text\n\t\t\t\t\t\t\t// shape and are setting that shape as the new editing shape,\n\t\t\t\t\t\t\t// then create the shape with a flag that will let it know to\n\t\t\t\t\t\t\t// go back to the text tool once the edit is complete.\n\t\t\t\t\t\t\tconst shape = editor.getEditingShape()\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tshape &&\n\t\t\t\t\t\t\t\tshape.type === 'text' &&\n\t\t\t\t\t\t\t\teditor.isInAny('text.pointing', 'select.resizing') &&\n\t\t\t\t\t\t\t\teditor.getInstanceState().isToolLocked\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\teditor.setCurrentTool('select.editing_shape', {\n\t\t\t\t\t\t\t\t\tisCreatingTextWhileToolLocked: true,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\teditor.setCurrentTool('select.editing_shape')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (prev.editingShapeId && !next.editingShapeId) {\n\t\t\t\t\t\tif (editor.isIn('select.editing_shape')) {\n\t\t\t\t\t\t\teditor.setCurrentTool('select.idle')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t})\n}\n"], "mappings": "AAGO,SAAS,2BAA2B,QAAgB;AAC1D,SAAO,OAAO,YAAY,SAAS;AAAA,IAClC,qBAAqB;AAAA,MACpB,aAAa,CAAC,MAAM,SAAS;AAC5B,YAAI,KAAK,oBAAoB,KAAK,iBAAiB;AAClD,gBAAM,oBAAoB,OAAO,KAAK,aAAa;AACnD,cAAI,CAAC,KAAK,mBAAmB,KAAK,iBAAiB;AAClD,gBAAI,CAAC,mBAAmB;AACvB,qBAAO,eAAe,kBAAkB;AAAA,YACzC;AAAA,UACD,WAAW,KAAK,mBAAmB,CAAC,KAAK,iBAAiB;AACzD,gBAAI,mBAAmB;AACtB,qBAAO,eAAe,aAAa;AAAA,YACpC;AAAA,UACD;AAAA,QACD;AAEA,YAAI,KAAK,mBAAmB,KAAK,gBAAgB;AAChD,cAAI,CAAC,KAAK,kBAAkB,KAAK,gBAAgB;AAChD,gBAAI,CAAC,OAAO,KAAK,sBAAsB,GAAG;AAMzC,oBAAM,QAAQ,OAAO,gBAAgB;AACrC,kBACC,SACA,MAAM,SAAS,UACf,OAAO,QAAQ,iBAAiB,iBAAiB,KACjD,OAAO,iBAAiB,EAAE,cACzB;AACD,uBAAO,eAAe,wBAAwB;AAAA,kBAC7C,+BAA+B;AAAA,gBAChC,CAAC;AAAA,cACF,OAAO;AACN,uBAAO,eAAe,sBAAsB;AAAA,cAC7C;AAAA,YACD;AAAA,UACD,WAAW,KAAK,kBAAkB,CAAC,KAAK,gBAAgB;AACvD,gBAAI,OAAO,KAAK,sBAAsB,GAAG;AACxC,qBAAO,eAAe,aAAa;AAAA,YACpC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAC;AACF;", "names": [] }