@yorab/react-paint 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +1 -0
  2. package/dist/components/App.js +58 -71
  3. package/dist/components/Canvas.js +9 -9
  4. package/dist/components/common/Button.js +4 -4
  5. package/dist/components/common/Loading.js +3 -3
  6. package/dist/components/common/Modal.js +3 -3
  7. package/dist/components/common/Panel.js +2 -2
  8. package/dist/components/common/Snackbar.js +2 -2
  9. package/dist/components/settings/ColorField.js +9 -9
  10. package/dist/components/settings/FontFamilyField.js +7 -5
  11. package/dist/components/settings/LayoutButton.js +1 -1
  12. package/dist/components/settings/Layouts.js +9 -9
  13. package/dist/components/settings/LineArrowField.js +8 -6
  14. package/dist/components/settings/LineTypeField.js +7 -5
  15. package/dist/components/settings/PointsNumberField.js +19 -29
  16. package/dist/components/settings/RangeField.js +2 -1
  17. package/dist/components/settings/SelectField.js +2 -1
  18. package/dist/components/settings/SettingsBar.js +107 -80
  19. package/dist/components/toolbox/EditTextBox.js +6 -6
  20. package/dist/components/toolbox/LoadFileTool.js +5 -3
  21. package/dist/components/toolbox/MenuGroup.js +31 -40
  22. package/dist/components/toolbox/PictureUrlInput.js +1 -1
  23. package/dist/components/toolbox/Tool.js +4 -4
  24. package/dist/components/toolbox/Toolbar.js +77 -73
  25. package/dist/components/toolbox/ToolbarGroup.js +22 -26
  26. package/dist/constants/style.js +3 -1
  27. package/dist/constants/tools.js +420 -0
  28. package/dist/hooks/useDrawableCanvas.js +22 -17
  29. package/dist/styles.css +51 -52
  30. package/dist/types/Shapes.js +2 -16
  31. package/dist/types/tools.js +22 -0
  32. package/dist/utils/data.js +81 -25
  33. package/dist/utils/style.js +4 -2
  34. package/dist/utils/toolbar.js +66 -11
  35. package/dist/utils/transform.js +3 -3
  36. package/package.json +1 -1
  37. package/Changelog.md +0 -75
@@ -0,0 +1,420 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UPLOAD_PICTURE_TOOL = exports.UNDO_TOOL = exports.SETTINGS_DEFAULT_TEXT = exports.SETTINGS_DEFAULT_SQUARE = exports.SETTINGS_DEFAULT_RECT = exports.SETTINGS_DEFAULT_POLYGON = exports.SETTINGS_DEFAULT_PICTURE = exports.SETTINGS_DEFAULT_LINE = exports.SETTINGS_DEFAULT_ELLIPSE = exports.SETTINGS_DEFAULT_CURVE = exports.SETTINGS_DEFAULT_CIRCLE = exports.SETTINGS_DEFAULT_BRUSH = exports.SELECTION_TOOL = exports.SAVE_TOOL = exports.REDO_TOOL = exports.MOVE_TOOL = exports.LOAD_TOOL = exports.EXPORT_TOOL = exports.DEFAULT_SHAPE_TOOLS = exports.DEFAULT_SHAPE_TEXT = exports.DEFAULT_SHAPE_SQUARE = exports.DEFAULT_SHAPE_RECT = exports.DEFAULT_SHAPE_POLYGON = exports.DEFAULT_SHAPE_PICTURE = exports.DEFAULT_SHAPE_LINE = exports.DEFAULT_SHAPE_ELLIPSE = exports.DEFAULT_SHAPE_CURVE = exports.DEFAULT_SHAPE_CIRCLE = exports.DEFAULT_SHAPE_BRUSH = exports.CLEAR_TOOL = exports.ADD_URL_PICTURE_TOOL = void 0;
7
+
8
+ var _Shapes = require("../types/Shapes");
9
+
10
+ var _tools = require("../types/tools");
11
+
12
+ var _icons = require("./icons");
13
+
14
+ var _style = require("./style");
15
+
16
+ var PREFIX_ID = 'react-paint-';
17
+ var SETTINGS_DEFAULT_RECT = {
18
+ strokeColor: {
19
+ values: _style.STYLE_COLORS,
20
+ "default": 'black'
21
+ },
22
+ fillColor: {
23
+ values: _style.STYLE_COLORS,
24
+ "default": 'transparent'
25
+ },
26
+ opacity: {
27
+ min: 0,
28
+ max: 100,
29
+ step: 1,
30
+ "default": 100
31
+ },
32
+ lineWidth: {
33
+ min: 1,
34
+ max: 20,
35
+ step: 1,
36
+ "default": 1
37
+ },
38
+ lineDash: {
39
+ values: _style.STYLE_LINE_DASH,
40
+ "default": 0
41
+ }
42
+ };
43
+ exports.SETTINGS_DEFAULT_RECT = SETTINGS_DEFAULT_RECT;
44
+ var SETTINGS_DEFAULT_SQUARE = {
45
+ strokeColor: {
46
+ values: _style.STYLE_COLORS,
47
+ "default": 'black'
48
+ },
49
+ fillColor: {
50
+ values: _style.STYLE_COLORS,
51
+ "default": 'transparent'
52
+ },
53
+ opacity: {
54
+ min: 0,
55
+ max: 100,
56
+ step: 1,
57
+ "default": 100
58
+ },
59
+ lineWidth: {
60
+ min: 1,
61
+ max: 20,
62
+ step: 1,
63
+ "default": 1
64
+ },
65
+ lineDash: {
66
+ values: _style.STYLE_LINE_DASH,
67
+ "default": 0
68
+ }
69
+ };
70
+ exports.SETTINGS_DEFAULT_SQUARE = SETTINGS_DEFAULT_SQUARE;
71
+ var SETTINGS_DEFAULT_CIRCLE = {
72
+ strokeColor: {
73
+ values: _style.STYLE_COLORS,
74
+ "default": 'black'
75
+ },
76
+ fillColor: {
77
+ values: _style.STYLE_COLORS,
78
+ "default": 'transparent'
79
+ },
80
+ opacity: {
81
+ min: 0,
82
+ max: 100,
83
+ step: 1,
84
+ "default": 100
85
+ },
86
+ lineWidth: {
87
+ min: 1,
88
+ max: 20,
89
+ step: 1,
90
+ "default": 1
91
+ },
92
+ lineDash: {
93
+ values: _style.STYLE_LINE_DASH,
94
+ "default": 0
95
+ }
96
+ };
97
+ exports.SETTINGS_DEFAULT_CIRCLE = SETTINGS_DEFAULT_CIRCLE;
98
+ var SETTINGS_DEFAULT_ELLIPSE = {
99
+ strokeColor: {
100
+ values: _style.STYLE_COLORS,
101
+ "default": 'black'
102
+ },
103
+ fillColor: {
104
+ values: _style.STYLE_COLORS,
105
+ "default": 'transparent'
106
+ },
107
+ opacity: {
108
+ min: 0,
109
+ max: 100,
110
+ step: 1,
111
+ "default": 100
112
+ },
113
+ lineWidth: {
114
+ min: 1,
115
+ max: 20,
116
+ step: 1,
117
+ "default": 1
118
+ },
119
+ lineDash: {
120
+ values: _style.STYLE_LINE_DASH,
121
+ "default": 0
122
+ }
123
+ };
124
+ exports.SETTINGS_DEFAULT_ELLIPSE = SETTINGS_DEFAULT_ELLIPSE;
125
+ var SETTINGS_DEFAULT_PICTURE = {
126
+ opacity: {
127
+ min: 0,
128
+ max: 100,
129
+ step: 1,
130
+ "default": 100
131
+ }
132
+ };
133
+ exports.SETTINGS_DEFAULT_PICTURE = SETTINGS_DEFAULT_PICTURE;
134
+ var SETTINGS_DEFAULT_TEXT = {
135
+ strokeColor: {
136
+ values: _style.STYLE_COLORS,
137
+ "default": 'black'
138
+ },
139
+ opacity: {
140
+ min: 0,
141
+ max: 100,
142
+ step: 1,
143
+ "default": 100
144
+ },
145
+ fontFamily: {
146
+ values: _style.STYLE_FONTS,
147
+ "default": _style.STYLE_FONT_DEFAULT
148
+ }
149
+ };
150
+ exports.SETTINGS_DEFAULT_TEXT = SETTINGS_DEFAULT_TEXT;
151
+ var SETTINGS_DEFAULT_BRUSH = {
152
+ strokeColor: {
153
+ values: _style.STYLE_COLORS,
154
+ "default": 'black'
155
+ },
156
+ opacity: {
157
+ min: 0,
158
+ max: 100,
159
+ step: 1,
160
+ "default": 100
161
+ },
162
+ lineWidth: {
163
+ min: 6,
164
+ max: 20,
165
+ step: 2,
166
+ "default": 10
167
+ },
168
+ lineDash: {
169
+ values: _style.STYLE_LINE_DASH,
170
+ "default": 0
171
+ }
172
+ };
173
+ exports.SETTINGS_DEFAULT_BRUSH = SETTINGS_DEFAULT_BRUSH;
174
+ var SETTINGS_DEFAULT_LINE = {
175
+ strokeColor: {
176
+ values: _style.STYLE_COLORS,
177
+ "default": 'black'
178
+ },
179
+ opacity: {
180
+ min: 0,
181
+ max: 100,
182
+ step: 1,
183
+ "default": 100
184
+ },
185
+ lineWidth: {
186
+ min: 1,
187
+ max: 20,
188
+ step: 1,
189
+ "default": 1
190
+ },
191
+ lineDash: {
192
+ values: _style.STYLE_LINE_DASH,
193
+ "default": 0
194
+ },
195
+ lineArrow: {
196
+ values: _style.STYLE_LINE_WITH_ARROW,
197
+ "default": 0
198
+ }
199
+ };
200
+ exports.SETTINGS_DEFAULT_LINE = SETTINGS_DEFAULT_LINE;
201
+ var SETTINGS_DEFAULT_POLYGON = {
202
+ strokeColor: {
203
+ values: _style.STYLE_COLORS,
204
+ "default": 'black'
205
+ },
206
+ fillColor: {
207
+ values: _style.STYLE_COLORS,
208
+ "default": 'black'
209
+ },
210
+ opacity: {
211
+ min: 0,
212
+ max: 100,
213
+ step: 1,
214
+ "default": 100
215
+ },
216
+ lineWidth: {
217
+ min: 1,
218
+ max: 20,
219
+ step: 1,
220
+ "default": 1
221
+ },
222
+ lineDash: {
223
+ values: _style.STYLE_LINE_DASH,
224
+ "default": 0
225
+ },
226
+ pointsCount: {
227
+ min: 3,
228
+ max: 10,
229
+ step: 1,
230
+ "default": 3
231
+ }
232
+ };
233
+ exports.SETTINGS_DEFAULT_POLYGON = SETTINGS_DEFAULT_POLYGON;
234
+ var SETTINGS_DEFAULT_CURVE = {
235
+ strokeColor: {
236
+ values: _style.STYLE_COLORS,
237
+ "default": 'black'
238
+ },
239
+ fillColor: {
240
+ values: _style.STYLE_COLORS,
241
+ "default": 'black'
242
+ },
243
+ opacity: {
244
+ min: 0,
245
+ max: 100,
246
+ step: 1,
247
+ "default": 100
248
+ },
249
+ lineWidth: {
250
+ min: 1,
251
+ max: 20,
252
+ step: 1,
253
+ "default": 1
254
+ },
255
+ lineDash: {
256
+ values: _style.STYLE_LINE_DASH,
257
+ "default": 0
258
+ },
259
+ pointsCount: {
260
+ min: 3,
261
+ max: 10,
262
+ step: 1,
263
+ "default": 3
264
+ }
265
+ };
266
+ exports.SETTINGS_DEFAULT_CURVE = SETTINGS_DEFAULT_CURVE;
267
+ var DEFAULT_SHAPE_PICTURE = {
268
+ type: _Shapes.ShapeEnum.picture,
269
+ id: "".concat(PREFIX_ID, "picture"),
270
+ icon: _icons.pictureIcon,
271
+ lib: 'Image',
272
+ settings: SETTINGS_DEFAULT_PICTURE
273
+ };
274
+ exports.DEFAULT_SHAPE_PICTURE = DEFAULT_SHAPE_PICTURE;
275
+ var DEFAULT_SHAPE_BRUSH = {
276
+ type: _Shapes.ShapeEnum.brush,
277
+ id: "".concat(PREFIX_ID, "brush"),
278
+ icon: _icons.brushIcon,
279
+ lib: 'Brosse',
280
+ settings: SETTINGS_DEFAULT_BRUSH
281
+ };
282
+ exports.DEFAULT_SHAPE_BRUSH = DEFAULT_SHAPE_BRUSH;
283
+ var DEFAULT_SHAPE_LINE = {
284
+ type: _Shapes.ShapeEnum.line,
285
+ id: "".concat(PREFIX_ID, "line"),
286
+ icon: _icons.arrowIcon,
287
+ lib: 'Ligne',
288
+ settings: SETTINGS_DEFAULT_LINE
289
+ };
290
+ exports.DEFAULT_SHAPE_LINE = DEFAULT_SHAPE_LINE;
291
+ var DEFAULT_SHAPE_POLYGON = {
292
+ type: _Shapes.ShapeEnum.polygon,
293
+ id: "".concat(PREFIX_ID, "polygon"),
294
+ icon: _icons.polygonIcon,
295
+ lib: 'Polygone',
296
+ settings: SETTINGS_DEFAULT_POLYGON
297
+ };
298
+ exports.DEFAULT_SHAPE_POLYGON = DEFAULT_SHAPE_POLYGON;
299
+ var DEFAULT_SHAPE_CURVE = {
300
+ type: _Shapes.ShapeEnum.curve,
301
+ id: "".concat(PREFIX_ID, "curve"),
302
+ icon: _icons.curveIcon,
303
+ lib: 'Courbe',
304
+ settings: SETTINGS_DEFAULT_CURVE
305
+ };
306
+ exports.DEFAULT_SHAPE_CURVE = DEFAULT_SHAPE_CURVE;
307
+ var DEFAULT_SHAPE_RECT = {
308
+ type: _Shapes.ShapeEnum.rect,
309
+ id: "".concat(PREFIX_ID, "rect"),
310
+ icon: _icons.squareIcon,
311
+ // temporary
312
+ lib: 'Rectangle',
313
+ settings: SETTINGS_DEFAULT_RECT
314
+ };
315
+ exports.DEFAULT_SHAPE_RECT = DEFAULT_SHAPE_RECT;
316
+ var DEFAULT_SHAPE_SQUARE = {
317
+ type: _Shapes.ShapeEnum.square,
318
+ id: "".concat(PREFIX_ID, "square"),
319
+ icon: _icons.squareIcon,
320
+ lib: 'Carré',
321
+ settings: SETTINGS_DEFAULT_SQUARE
322
+ };
323
+ exports.DEFAULT_SHAPE_SQUARE = DEFAULT_SHAPE_SQUARE;
324
+ var DEFAULT_SHAPE_CIRCLE = {
325
+ type: _Shapes.ShapeEnum.circle,
326
+ id: "".concat(PREFIX_ID, "circle"),
327
+ icon: _icons.circleIcon,
328
+ lib: 'Cercle',
329
+ settings: SETTINGS_DEFAULT_CIRCLE
330
+ };
331
+ exports.DEFAULT_SHAPE_CIRCLE = DEFAULT_SHAPE_CIRCLE;
332
+ var DEFAULT_SHAPE_ELLIPSE = {
333
+ type: _Shapes.ShapeEnum.ellipse,
334
+ id: "".concat(PREFIX_ID, "ellipse"),
335
+ icon: _icons.circleIcon,
336
+ // temporary
337
+ lib: 'Ellipse',
338
+ settings: SETTINGS_DEFAULT_ELLIPSE
339
+ };
340
+ exports.DEFAULT_SHAPE_ELLIPSE = DEFAULT_SHAPE_ELLIPSE;
341
+ var DEFAULT_SHAPE_TEXT = {
342
+ type: _Shapes.ShapeEnum.text,
343
+ id: "".concat(PREFIX_ID, "text"),
344
+ icon: _icons.textIcon,
345
+ lib: 'Texte',
346
+ settings: SETTINGS_DEFAULT_TEXT
347
+ };
348
+ exports.DEFAULT_SHAPE_TEXT = DEFAULT_SHAPE_TEXT;
349
+ var DEFAULT_SHAPE_TOOLS = [DEFAULT_SHAPE_BRUSH, DEFAULT_SHAPE_LINE, DEFAULT_SHAPE_POLYGON, DEFAULT_SHAPE_CURVE, DEFAULT_SHAPE_RECT, DEFAULT_SHAPE_SQUARE, DEFAULT_SHAPE_CIRCLE, DEFAULT_SHAPE_ELLIPSE, DEFAULT_SHAPE_PICTURE, DEFAULT_SHAPE_TEXT];
350
+ exports.DEFAULT_SHAPE_TOOLS = DEFAULT_SHAPE_TOOLS;
351
+ var SELECTION_TOOL = {
352
+ id: "".concat(PREFIX_ID, "selection"),
353
+ type: _tools.ActionsEnum.selection,
354
+ icon: _icons.selectIcon,
355
+ lib: 'Sélection'
356
+ };
357
+ exports.SELECTION_TOOL = SELECTION_TOOL;
358
+ var UNDO_TOOL = {
359
+ id: "".concat(PREFIX_ID, "undo"),
360
+ type: _tools.ActionsEnum.undo,
361
+ icon: _icons.undoIcon,
362
+ lib: 'Undo'
363
+ };
364
+ exports.UNDO_TOOL = UNDO_TOOL;
365
+ var REDO_TOOL = {
366
+ id: "".concat(PREFIX_ID, "redo"),
367
+ type: _tools.ActionsEnum.redo,
368
+ icon: _icons.redoIcon,
369
+ lib: 'Redo'
370
+ };
371
+ exports.REDO_TOOL = REDO_TOOL;
372
+ var CLEAR_TOOL = {
373
+ id: "".concat(PREFIX_ID, "clear"),
374
+ type: _tools.ActionsEnum.clear,
375
+ icon: _icons.clearIcon,
376
+ lib: 'Clear'
377
+ };
378
+ exports.CLEAR_TOOL = CLEAR_TOOL;
379
+ var EXPORT_TOOL = {
380
+ id: "".concat(PREFIX_ID, "export"),
381
+ type: _tools.ActionsEnum["export"],
382
+ icon: _icons.exportFileIcon,
383
+ lib: 'Export PNG'
384
+ };
385
+ exports.EXPORT_TOOL = EXPORT_TOOL;
386
+ var LOAD_TOOL = {
387
+ id: "".concat(PREFIX_ID, "load"),
388
+ type: _tools.ActionsEnum.loadFile,
389
+ icon: _icons.openFileIcon,
390
+ lib: 'Load project'
391
+ };
392
+ exports.LOAD_TOOL = LOAD_TOOL;
393
+ var SAVE_TOOL = {
394
+ id: "".concat(PREFIX_ID, "save"),
395
+ type: _tools.ActionsEnum.saveFile,
396
+ icon: _icons.saveIcon,
397
+ lib: 'Save project'
398
+ };
399
+ exports.SAVE_TOOL = SAVE_TOOL;
400
+ var MOVE_TOOL = {
401
+ id: "".concat(PREFIX_ID, "move"),
402
+ type: _tools.ActionsEnum.move,
403
+ icon: _icons.selectIcon,
404
+ lib: 'Move'
405
+ };
406
+ exports.MOVE_TOOL = MOVE_TOOL;
407
+ var UPLOAD_PICTURE_TOOL = {
408
+ id: "".concat(PREFIX_ID, "upload-picture"),
409
+ type: _tools.ActionsEnum.uploadPicture,
410
+ icon: _icons.pictureIcon,
411
+ lib: 'Upload picture'
412
+ };
413
+ exports.UPLOAD_PICTURE_TOOL = UPLOAD_PICTURE_TOOL;
414
+ var ADD_URL_PICTURE_TOOL = {
415
+ id: "".concat(PREFIX_ID, "upload-picture"),
416
+ type: _tools.ActionsEnum.addUrlPicture,
417
+ icon: _icons.pictureIcon,
418
+ lib: 'Add picture from URL'
419
+ };
420
+ exports.ADD_URL_PICTURE_TOOL = ADD_URL_PICTURE_TOOL;
@@ -25,8 +25,12 @@ var _transform = require("../utils/transform");
25
25
 
26
26
  var _data = require("../utils/data");
27
27
 
28
+ var _tools = require("../types/tools");
29
+
30
+ var _tools2 = require("../constants/tools");
31
+
28
32
  var handleMove = function handleMove(e, canvasRef, activeTool, canvasOffset, selectedShape, selectionMode, canvasOffsetStartPosition, width, height, scaleRatio, setHoverMode, updateSingleShape, setCanvasOffset, setSelectedShape, selectionPadding) {
29
- if (activeTool === _Shapes.ToolEnum.move && canvasOffsetStartPosition !== undefined) {
33
+ if (activeTool.type === _tools.ActionsEnum.move && canvasOffsetStartPosition !== undefined) {
30
34
  var _cursorPosition = (0, _intersect.getCursorPosition)(e, canvasRef.current, width, height, scaleRatio);
31
35
 
32
36
  setCanvasOffset([_cursorPosition[0] - canvasOffsetStartPosition[0], _cursorPosition[1] - canvasOffsetStartPosition[1]]);
@@ -62,7 +66,6 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
62
66
  drawCanvasRef = _ref.drawCanvasRef,
63
67
  setActiveTool = _ref.setActiveTool,
64
68
  shapes = _ref.shapes,
65
- defaultConf = _ref.defaultConf,
66
69
  selectionMode = _ref.selectionMode,
67
70
  activeTool = _ref.activeTool,
68
71
  isInsideComponent = _ref.isInsideComponent,
@@ -111,17 +114,17 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
111
114
  var handleMouseUp = function handleMouseUp(e) {
112
115
  if (selectionMode.mode === _Mode.SelectionModeLib.textedition) return;
113
116
 
114
- if (activeTool === _Shapes.ShapeEnum.text) {
117
+ if (activeTool.type === _Shapes.ShapeEnum.text) {
115
118
  var _drawCanvasRef$curren;
116
119
 
117
120
  var cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
118
121
  var drawCtx = (_drawCanvasRef$curren = drawCanvasRef.current) === null || _drawCanvasRef$curren === void 0 ? void 0 : _drawCanvasRef$curren.getContext('2d');
119
122
  if (!drawCtx) return;
120
123
 
121
- var _newShape2 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition, defaultConf);
124
+ var _newShape2 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
122
125
 
123
126
  addShape(_newShape2);
124
- setActiveTool(_Shapes.ToolEnum.selection);
127
+ setActiveTool(_tools2.SELECTION_TOOL);
125
128
  setSelectedShape(_newShape2);
126
129
  setSelectionMode({
127
130
  mode: _Mode.SelectionModeLib.textedition,
@@ -149,7 +152,7 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
149
152
  document.removeEventListener('touchend', handleMouseUp);
150
153
  }
151
154
  };
152
- }, [isInsideComponent, selectionCanvasRef, drawCanvasRef, selectionMode, saveShapes, activeTool, addShape, defaultConf, width, height, scaleRatio, setActiveTool, setSelectedShape, setSelectionMode]);
155
+ }, [isInsideComponent, selectionCanvasRef, drawCanvasRef, selectionMode, saveShapes, activeTool, addShape, width, height, scaleRatio, setActiveTool, setSelectedShape, setSelectionMode]);
153
156
  (0, _react.useEffect)(function () {
154
157
  var ref = selectionCanvasRef.current;
155
158
  if (!ref) return;
@@ -159,32 +162,33 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
159
162
  e.preventDefault();
160
163
  var cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
161
164
 
162
- if (activeTool === _Shapes.ToolEnum.selection) {
165
+ if (activeTool.type === _tools.ActionsEnum.selection) {
163
166
  var _selectShape = (0, _selection.selectShape)(shapes, cursorPosition, scaleRatio, canvasOffset, selectedShape, selectionPadding),
164
167
  shape = _selectShape.shape,
165
168
  mode = _selectShape.mode;
166
169
 
167
170
  setSelectedShape(shape);
168
171
  setSelectionMode(mode);
169
- } else if (activeTool === _Shapes.ToolEnum.move) {
172
+ } else if (activeTool.type === _tools.ActionsEnum.move) {
170
173
  setCanvasOffsetStartPosition(cursorPosition);
171
174
  }
172
175
 
173
- if (_fp["default"].includes(activeTool, _Shapes.ShapeEnum)) {
176
+ if (_fp["default"].includes(activeTool.type, _Shapes.ShapeEnum)) {
174
177
  var _drawCanvasRef$curren2;
175
178
 
176
179
  var drawCtx = (_drawCanvasRef$curren2 = drawCanvasRef.current) === null || _drawCanvasRef$curren2 === void 0 ? void 0 : _drawCanvasRef$curren2.getContext('2d');
177
180
  if (!drawCtx) return;
178
181
 
179
- if (activeTool === _Shapes.ShapeEnum.brush) {
182
+ if (activeTool.type === _Shapes.ShapeEnum.brush) {
180
183
  if (!!selectedShape) {
181
184
  var _newShape3 = (0, _transform.createNewPointGroupToShape)(selectedShape, cursorPosition);
182
185
 
183
186
  updateSingleShape(_newShape3);
184
187
  setSelectedShape(_newShape3);
185
188
  } else {
186
- var _newShape4 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition, defaultConf);
189
+ var _newShape4 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
187
190
 
191
+ if (!_newShape4) return;
188
192
  addShape(_newShape4);
189
193
  setSelectedShape(_newShape4);
190
194
  }
@@ -192,17 +196,18 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
192
196
  setSelectionMode({
193
197
  mode: _Mode.SelectionModeLib.brush
194
198
  });
195
- } else if (activeTool !== _Shapes.ShapeEnum.text) {
196
- var _newShape5 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition, defaultConf);
199
+ } else if (activeTool.type !== _Shapes.ShapeEnum.text) {
200
+ var _newShape5 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
197
201
 
202
+ if (!_newShape5) return;
198
203
  addShape(_newShape5);
199
- setActiveTool(_Shapes.ToolEnum.selection);
204
+ setActiveTool(_tools2.SELECTION_TOOL);
200
205
  setSelectedShape(_newShape5);
201
206
  setSelectionMode({
202
207
  mode: _Mode.SelectionModeLib.resize,
203
208
  cursorStartPosition: cursorPosition,
204
209
  originalShape: _newShape5,
205
- anchor: activeTool === _Shapes.ShapeEnum.line || activeTool === _Shapes.ShapeEnum.polygon || activeTool === _Shapes.ShapeEnum.curve ? 0 : [1, 1]
210
+ anchor: activeTool.type === _Shapes.ShapeEnum.line || activeTool.type === _Shapes.ShapeEnum.polygon || activeTool.type === _Shapes.ShapeEnum.curve ? 0 : [1, 1]
206
211
  });
207
212
  }
208
213
  }
@@ -218,13 +223,13 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
218
223
  ref.removeEventListener('mousedown', handleMouseDown);
219
224
  ref.removeEventListener('touchstart', handleMouseDown);
220
225
  };
221
- }, [disabled, selectionCanvasRef, drawCanvasRef, selectedShape, activeTool, canvasOffset, setCanvasOffsetStartPosition, shapes, defaultConf, width, height, scaleRatio, updateSingleShape, addShape, setActiveTool, setSelectedShape, setSelectionMode, selectionPadding]);
226
+ }, [disabled, selectionCanvasRef, drawCanvasRef, selectedShape, activeTool, canvasOffset, setCanvasOffsetStartPosition, shapes, width, height, scaleRatio, updateSingleShape, addShape, setActiveTool, setSelectedShape, setSelectionMode, selectionPadding]);
222
227
  (0, _react.useEffect)(function () {
223
228
  var ref = selectionCanvasRef.current;
224
229
  if (!ref) return;
225
230
 
226
231
  var handleDoubleClick = function handleDoubleClick(e) {
227
- if (activeTool === _Shapes.ToolEnum.selection) {
232
+ if (activeTool.type === _tools.ActionsEnum.selection) {
228
233
  if ((selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) === _Shapes.ShapeEnum.text) {
229
234
  var cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
230
235