@solostylist/image-editor 1.0.21 → 1.0.22

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 (36) hide show
  1. package/lib/components/app/index.d.ts.map +1 -1
  2. package/lib/components/app/index.js +12 -15
  3. package/lib/components/feedback-popup/index.d.ts.map +1 -1
  4. package/lib/components/feedback-popup/index.js +1 -1
  5. package/lib/components/main-canvas/image-context-menu.d.ts +13 -0
  6. package/lib/components/main-canvas/image-context-menu.d.ts.map +1 -0
  7. package/lib/components/main-canvas/image-context-menu.js +108 -0
  8. package/lib/components/main-canvas/index.d.ts.map +1 -1
  9. package/lib/components/main-canvas/index.js +84 -3
  10. package/lib/components/tabs/index.js +1 -1
  11. package/lib/components/tools-bar/tools-bar-item-button.d.ts.map +1 -1
  12. package/lib/components/tools-bar/tools-bar-item-button.js +6 -2
  13. package/lib/context/default-translations.d.ts.map +1 -1
  14. package/lib/context/default-translations.js +61 -29
  15. package/lib/hooks/index.d.ts +1 -0
  16. package/lib/hooks/index.d.ts.map +1 -1
  17. package/lib/hooks/index.js +2 -1
  18. package/lib/hooks/use-feedback-handler.d.ts +11 -0
  19. package/lib/hooks/use-feedback-handler.d.ts.map +1 -0
  20. package/lib/hooks/use-feedback-handler.js +43 -0
  21. package/lib/hooks/use-image-editor-actions.d.ts.map +1 -1
  22. package/lib/hooks/use-image-editor-actions.js +6 -11
  23. package/lib/hooks/use-transformed-img-data.d.ts +1 -1
  24. package/lib/hooks/use-transformed-img-data.d.ts.map +1 -1
  25. package/lib/hooks/use-transformed-img-data.js +6 -3
  26. package/lib/types/actions.d.ts +1 -0
  27. package/lib/types/actions.d.ts.map +1 -1
  28. package/lib/types/state.d.ts +1 -1
  29. package/lib/types/state.d.ts.map +1 -1
  30. package/lib/utils/constants.d.ts +2 -0
  31. package/lib/utils/constants.d.ts.map +1 -1
  32. package/lib/utils/constants.js +2 -0
  33. package/lib/utils/file.d.ts +4 -0
  34. package/lib/utils/file.d.ts.map +1 -0
  35. package/lib/utils/file.js +110 -0
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/app/index.tsx"],"names":[],"mappings":";AAwbA,wBAAyB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/app/index.tsx"],"names":[],"mappings":";AA8aA,wBAAyB"}
@@ -9,14 +9,14 @@ import { SFlexBox } from '@solostylist/ui-kit/s-flex-box';
9
9
  import SFileDropzone from '@solostylist/ui-kit/s-file-dropzone';
10
10
  import { memo, useCallback, useEffect, useRef, useState } from 'react';
11
11
  import { Box, CircularProgress } from '@mui/material';
12
- import { HIDE_LOADER, RESET, SET_FEEDBACK, SET_ORIGINAL_IMAGE, SET_SHOWN_TABS_MENU, SHOW_LOADER, UPDATE_STATE } from "../../actions";
12
+ import { HIDE_LOADER, RESET, SET_ORIGINAL_IMAGE, SET_SHOWN_TABS_MENU, SHOW_LOADER, UPDATE_STATE } from "../../actions";
13
13
  import FeedbackPopup from "../feedback-popup";
14
14
  import MainCanvas from "../main-canvas";
15
15
  import Tabs from "../tabs";
16
16
  import STabsDrawer from "../tabs-drawer";
17
17
  import ToolsBar from "../tools-bar";
18
18
  import Topbar from "../topbar";
19
- import { usePhoneScreen, useResizeObserver, useStore, useTransformedImgData } from "../../hooks";
19
+ import { useFeedbackHandler, usePhoneScreen, useResizeObserver, useStore, useTransformedImgData } from "../../hooks";
20
20
  import useUpdateEffect from "../../hooks/use-update-effect";
21
21
  import { ROOT_CONTAINER_CLASS_NAME } from "../../utils/constants";
22
22
  import filterStrToClass from "../../utils/filter-str-to-class";
@@ -62,6 +62,8 @@ var App = function App() {
62
62
  rootSize = _useState2[0],
63
63
  setRootSize = _useState2[1];
64
64
  var isPhoneScreen = usePhoneScreen();
65
+ var _useFeedbackHandler = useFeedbackHandler(),
66
+ handleError = _useFeedbackHandler.handleError;
65
67
  var pluginRootRef = useRef(null);
66
68
  var uploadInputRef = useRef(null);
67
69
  var imageBeingLoadedSrc = useRef(null);
@@ -75,17 +77,6 @@ var App = function App() {
75
77
  }
76
78
  });
77
79
  }, []);
78
- var setError = useCallback(function (newError) {
79
- dispatch({
80
- type: SET_FEEDBACK,
81
- payload: {
82
- feedback: {
83
- message: typeof newError === 'string' ? newError : newError.message,
84
- duration: 0
85
- }
86
- }
87
- });
88
- }, []);
89
80
  var loadAndSetOriginalImage = function loadAndSetOriginalImage(imgToLoad) {
90
81
  return new Promise(function (resolve) {
91
82
  var imgSrc = imgToLoad instanceof HTMLImageElement ? imgToLoad === null || imgToLoad === void 0 ? void 0 : imgToLoad.src : imgToLoad;
@@ -106,7 +97,11 @@ var App = function App() {
106
97
  imageBeingLoadedSrc.current = imgSrc;
107
98
  setTimeout(function () {
108
99
  if (typeof imgToLoad === 'string') {
109
- loadImage(imgToLoad, defaultSavedImageName, noCrossOrigin).then(setNewOriginalImage)["catch"](setError)["finally"](triggerResolve);
100
+ loadImage(imgToLoad, defaultSavedImageName, noCrossOrigin).then(setNewOriginalImage)["catch"](function (error) {
101
+ return handleError(error, t('invalidImageError'), {
102
+ persistent: true
103
+ });
104
+ })["finally"](triggerResolve);
110
105
  } else if (imgToLoad instanceof HTMLImageElement) {
111
106
  if (!imgToLoad.title && defaultSavedImageName) {
112
107
  imgToLoad.title = defaultSavedImageName;
@@ -121,7 +116,9 @@ var App = function App() {
121
116
  setNewOriginalImage(imgToLoad);
122
117
  triggerResolve();
123
118
  } else {
124
- setError(t('invalidImageError'));
119
+ handleError(t('invalidImageError'), t('invalidImageError'), {
120
+ persistent: true
121
+ });
125
122
  triggerResolve();
126
123
  }
127
124
  }, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feedback-popup/index.tsx"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAkBlE,UAAU,kBAAkB;IAC1B,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AAED,QAAA,MAAM,aAAa,GAAI,mBAEpB,kBAAkB,mDA+BpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feedback-popup/index.tsx"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAoBlE,UAAU,kBAAkB;IAC1B,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AAED,QAAA,MAAM,aAAa,GAAI,mBAEpB,kBAAkB,mDA+BpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -9,7 +9,7 @@ var defaultAnchorOrigin = {
9
9
  horizontal: 'center',
10
10
  vertical: 'bottom'
11
11
  };
12
- var ERROR_TO_SEVERITY = _defineProperty(_defineProperty({}, FEEDBACK_STATUSES.ERROR, 'error'), FEEDBACK_STATUSES.WARNING, 'warning');
12
+ var ERROR_TO_SEVERITY = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, FEEDBACK_STATUSES.SUCCESS, 'success'), FEEDBACK_STATUSES.INFO, 'info'), FEEDBACK_STATUSES.ERROR, 'error'), FEEDBACK_STATUSES.WARNING, 'warning');
13
13
  var FeedbackPopup = function FeedbackPopup(_ref) {
14
14
  var _feedback$duration, _feedback$status;
15
15
  var _ref$anchorOrigin = _ref.anchorOrigin,
@@ -0,0 +1,13 @@
1
+ interface ImageContextMenuProps {
2
+ anchorPosition: {
3
+ top: number;
4
+ left: number;
5
+ } | null;
6
+ isActionPending?: boolean;
7
+ onClose: () => void;
8
+ onCopy: () => void;
9
+ onDownload: () => void;
10
+ }
11
+ declare const ImageContextMenu: ({ anchorPosition, isActionPending, onClose, onCopy, onDownload, }: ImageContextMenuProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default ImageContextMenu;
13
+ //# sourceMappingURL=image-context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-context-menu.d.ts","sourceRoot":"","sources":["../../../src/components/main-canvas/image-context-menu.tsx"],"names":[],"mappings":"AAMA,UAAU,qBAAqB;IAC7B,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACrD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,QAAA,MAAM,gBAAgB,GAAI,mEAMvB,qBAAqB,4CAmGvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,108 @@
1
+ import ContentCopyOutlined from '@mui/icons-material/ContentCopyOutlined';
2
+ import DownloadOutlined from '@mui/icons-material/DownloadOutlined';
3
+ import { ListItemIcon, ListItemText, Menu, MenuItem } from '@mui/material';
4
+ import { useStore } from "../../hooks";
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ var ImageContextMenu = function ImageContextMenu(_ref) {
7
+ var anchorPosition = _ref.anchorPosition,
8
+ _ref$isActionPending = _ref.isActionPending,
9
+ isActionPending = _ref$isActionPending === void 0 ? false : _ref$isActionPending,
10
+ onClose = _ref.onClose,
11
+ onCopy = _ref.onCopy,
12
+ onDownload = _ref.onDownload;
13
+ var _useStore = useStore(),
14
+ t = _useStore.t;
15
+ return _jsxs(Menu, {
16
+ open: Boolean(anchorPosition),
17
+ onClose: onClose,
18
+ onContextMenu: function onContextMenu(event) {
19
+ return event.preventDefault();
20
+ },
21
+ anchorReference: "anchorPosition",
22
+ anchorPosition: anchorPosition !== null && anchorPosition !== void 0 ? anchorPosition : undefined,
23
+ slotProps: {
24
+ paper: {
25
+ sx: {
26
+ overflow: 'hidden',
27
+ borderRadius: 'var(--s-shape-borderRadius, 8px)',
28
+ border: '1px solid',
29
+ borderColor: 'divider',
30
+ backgroundColor: 'var(--s-palette-background-paper)',
31
+ boxShadow: 'var(--s-palette-baseShadow)',
32
+ mt: 0.5,
33
+ '& .MuiList-root': {
34
+ py: 0.5
35
+ }
36
+ }
37
+ }
38
+ },
39
+ children: [_jsxs(MenuItem, {
40
+ onClick: onCopy,
41
+ disabled: isActionPending,
42
+ sx: {
43
+ minHeight: 44,
44
+ px: 1.5,
45
+ py: 1,
46
+ gap: 1,
47
+ color: 'var(--s-palette-text-primary)',
48
+ '&:hover': {
49
+ backgroundColor: 'var(--s-palette-action-hover)'
50
+ }
51
+ },
52
+ children: [_jsx(ListItemIcon, {
53
+ sx: {
54
+ minWidth: 28,
55
+ color: 'var(--s-palette-text-primary)'
56
+ },
57
+ children: _jsx(ContentCopyOutlined, {
58
+ fontSize: "small"
59
+ })
60
+ }), _jsx(ListItemText, {
61
+ primary: t('copyImage'),
62
+ slotProps: {
63
+ primary: {
64
+ sx: {
65
+ fontSize: 14,
66
+ fontWeight: 500,
67
+ color: 'var(--s-palette-text-primary)'
68
+ }
69
+ }
70
+ }
71
+ })]
72
+ }), _jsxs(MenuItem, {
73
+ onClick: onDownload,
74
+ disabled: isActionPending,
75
+ sx: {
76
+ minHeight: 44,
77
+ px: 1.5,
78
+ py: 1,
79
+ gap: 1,
80
+ color: 'var(--s-palette-text-primary)',
81
+ '&:hover': {
82
+ backgroundColor: 'var(--s-palette-action-hover)'
83
+ }
84
+ },
85
+ children: [_jsx(ListItemIcon, {
86
+ sx: {
87
+ minWidth: 28,
88
+ color: 'var(--s-palette-text-primary)'
89
+ },
90
+ children: _jsx(DownloadOutlined, {
91
+ fontSize: "small"
92
+ })
93
+ }), _jsx(ListItemText, {
94
+ primary: t('download'),
95
+ slotProps: {
96
+ primary: {
97
+ sx: {
98
+ fontSize: 14,
99
+ fontWeight: 500,
100
+ color: 'var(--s-palette-text-primary)'
101
+ }
102
+ }
103
+ }
104
+ })]
105
+ })]
106
+ });
107
+ };
108
+ export default ImageContextMenu;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/main-canvas/index.tsx"],"names":[],"mappings":"AAaA,QAAA,MAAM,UAAU,+CA+Gf,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/main-canvas/index.tsx"],"names":[],"mappings":"AAeA,QAAA,MAAM,UAAU,+CAwMf,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,16 +1,33 @@
1
- import { useCallback, useEffect, useRef } from 'react';
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
5
  import { Box } from '@mui/material';
3
6
  import { SET_CANVAS_SIZE } from "../../actions";
4
7
  import { DesignLayer, TransformersLayer } from "../layers";
5
8
  import NodeControls from "../node-controls";
6
9
  import { AppProviderOverridenValue } from "../../context";
7
- import { useStore } from "../../hooks";
10
+ import { useFeedbackHandler, useStore, useTransformedImgData } from "../../hooks";
11
+ import { copyImageDataToClipboard, downloadImageData } from "../../utils/file";
8
12
  import CanvasNode from "./canvas-node";
13
+ import ImageContextMenu from "./image-context-menu";
9
14
  import OriginalPreviewLayer from "./original-preview-layer";
10
15
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
11
16
  var MainCanvas = function MainCanvas() {
12
17
  var providedAppContext = useStore();
13
18
  var canvasContainerRef = useRef(null);
19
+ var _useState = useState(null),
20
+ _useState2 = _slicedToArray(_useState, 2),
21
+ anchorPosition = _useState2[0],
22
+ setAnchorPosition = _useState2[1];
23
+ var _useState3 = useState(false),
24
+ _useState4 = _slicedToArray(_useState3, 2),
25
+ isContextActionPending = _useState4[0],
26
+ setIsContextActionPending = _useState4[1];
27
+ var transformImgFn = useTransformedImgData();
28
+ var _useFeedbackHandler = useFeedbackHandler(),
29
+ handleError = _useFeedbackHandler.handleError,
30
+ handleSuccess = _useFeedbackHandler.handleSuccess;
14
31
  var contextRef = useRef(providedAppContext);
15
32
  useEffect(function () {
16
33
  contextRef.current = providedAppContext;
@@ -55,7 +72,10 @@ var MainCanvas = function MainCanvas() {
55
72
  cropTopOffset = _providedAppContext$c.cropTopOffset,
56
73
  defaultToolId = _providedAppContext$c.defaultToolId,
57
74
  toolId = providedAppContext.toolId,
58
- originalImage = providedAppContext.originalImage;
75
+ originalImage = providedAppContext.originalImage,
76
+ isLoadingGlobally = providedAppContext.isLoadingGlobally,
77
+ textIdOfEditableContent = providedAppContext.textIdOfEditableContent,
78
+ t = providedAppContext.t;
59
79
  var lastToolIdRef = useRef(toolId !== null && toolId !== void 0 ? toolId : null);
60
80
  useEffect(function () {
61
81
  if (toolId) {
@@ -69,6 +89,60 @@ var MainCanvas = function MainCanvas() {
69
89
  }
70
90
  }, [originalImage, defaultToolId, toolId]);
71
91
  var cropOffset = cropTopOffset !== null && cropTopOffset !== void 0 ? cropTopOffset : 56;
92
+ var handleCloseContextMenu = useCallback(function () {
93
+ setAnchorPosition(null);
94
+ }, []);
95
+ var handleCanvasContextMenu = useCallback(function (event) {
96
+ var target = event.target;
97
+ if (!originalImage || isLoadingGlobally || isContextActionPending || textIdOfEditableContent || target.tagName.toLowerCase() !== 'canvas') {
98
+ return;
99
+ }
100
+ event.preventDefault();
101
+ setAnchorPosition({
102
+ top: event.clientY + 2,
103
+ left: event.clientX + 2
104
+ });
105
+ }, [isContextActionPending, isLoadingGlobally, originalImage, textIdOfEditableContent]);
106
+ var runContextAction = useCallback(function () {
107
+ var _ref3 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee(action, successMessage, errorMessage) {
108
+ var transformedData, _t;
109
+ return _regeneratorRuntime.wrap(function (_context) {
110
+ while (1) switch (_context.prev = _context.next) {
111
+ case 0:
112
+ handleCloseContextMenu();
113
+ setIsContextActionPending(true);
114
+ _context.prev = 1;
115
+ transformedData = transformImgFn(undefined, false, false, false);
116
+ _context.next = 2;
117
+ return action(transformedData.imageData);
118
+ case 2:
119
+ handleSuccess(successMessage);
120
+ _context.next = 4;
121
+ break;
122
+ case 3:
123
+ _context.prev = 3;
124
+ _t = _context["catch"](1);
125
+ handleError(_t, errorMessage);
126
+ case 4:
127
+ _context.prev = 4;
128
+ setIsContextActionPending(false);
129
+ return _context.finish(4);
130
+ case 5:
131
+ case "end":
132
+ return _context.stop();
133
+ }
134
+ }, _callee, null, [[1, 3, 4, 5]]);
135
+ }));
136
+ return function (_x, _x2, _x3) {
137
+ return _ref3.apply(this, arguments);
138
+ };
139
+ }(), [handleCloseContextMenu, handleError, handleSuccess, transformImgFn]);
140
+ var handleCopyImage = useCallback(function () {
141
+ void runContextAction(copyImageDataToClipboard, t('copySuccess'), t('copyFailed'));
142
+ }, [runContextAction, t]);
143
+ var handleDownloadImage = useCallback(function () {
144
+ void runContextAction(downloadImageData, t('downloadSuccess'), t('downloadFailed'));
145
+ }, [runContextAction, t]);
72
146
  return _jsx(Box, {
73
147
  height: canvasAreaHeight !== null && canvasAreaHeight !== void 0 ? canvasAreaHeight : '100%',
74
148
  minHeight: 0,
@@ -84,6 +158,7 @@ var MainCanvas = function MainCanvas() {
84
158
  position: "relative",
85
159
  flexGrow: 1,
86
160
  ref: canvasContainerRef,
161
+ onContextMenu: handleCanvasContextMenu,
87
162
  width: '100%',
88
163
  children: [!providedAppContext.textIdOfEditableContent && !providedAppContext.isShowOriginalImage && _jsx(NodeControls, {}), _jsx(CanvasNode, {
89
164
  children: _jsx(AppProviderOverridenValue, {
@@ -92,6 +167,12 @@ var MainCanvas = function MainCanvas() {
92
167
  children: [_jsx(DesignLayer, {}), _jsx(TransformersLayer, {})]
93
168
  })
94
169
  })
170
+ }), _jsx(ImageContextMenu, {
171
+ anchorPosition: anchorPosition,
172
+ isActionPending: isContextActionPending,
173
+ onClose: handleCloseContextMenu,
174
+ onCopy: handleCopyImage,
175
+ onDownload: handleDownloadImage
95
176
  })]
96
177
  })
97
178
  });
@@ -107,7 +107,7 @@ var Tabs = function Tabs(_ref) {
107
107
  });
108
108
  },
109
109
  sx: {
110
- marginLeft: open ? 'auto' : '0',
110
+ marginLeft: open ? 'auto' : 0.5,
111
111
  width: 32,
112
112
  height: 32
113
113
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tools-bar-item-button.d.ts","sourceRoot":"","sources":["../../../src/components/tools-bar/tools-bar-item-button.tsx"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAK1E,UAAU,2BAA2B;IACnC,IAAI,CAAC,EAAE;QACL,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KACrB,CAAC;CACH;AAED,UAAU,uBAAuB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC/D,IAAI,EAAE,oBAAoB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG;QAC1D,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,2BAA2B,CAAC;CACzC;wIAWE,uBAAuB;AAuC1B,wBAAwC"}
1
+ {"version":3,"file":"tools-bar-item-button.d.ts","sourceRoot":"","sources":["../../../src/components/tools-bar/tools-bar-item-button.tsx"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAK1E,UAAU,2BAA2B;IACnC,IAAI,CAAC,EAAE;QACL,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KACrB,CAAC;CACH;AAED,UAAU,uBAAuB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC/D,IAAI,EAAE,oBAAoB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG;QAC1D,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,2BAA2B,CAAC;CACzC;wIAWE,uBAAuB;AA6C1B,wBAAwC"}
@@ -31,9 +31,13 @@ var ToolsBarItemButton = function ToolsBarItemButton(_ref) {
31
31
  className: className,
32
32
  onClick: handleClick,
33
33
  "aria-selected": isSelected,
34
- variant: isSelected ? 'outlined' : 'text',
34
+ variant: "outlined",
35
35
  sx: {
36
- minWidth: 120
36
+ minWidth: 120,
37
+ padding: 2,
38
+ boxSizing: 'border-box',
39
+ borderWidth: 1,
40
+ border: isSelected ? '1px solid primary.main' : '1px solid transparent !important'
37
41
  },
38
42
  children: [label && _jsx(Typography, {
39
43
  color: isSelected ? 'primary.main' : 'text.primary',
@@ -1 +1 @@
1
- {"version":3,"file":"default-translations.d.ts","sourceRoot":"","sources":["../../src/context/default-translations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwdzE,CAAC;AAEF,QAAA,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAE/C,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"default-translations.d.ts","sourceRoot":"","sources":["../../src/context/default-translations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwfzE,CAAC;AAEF,QAAA,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAE/C,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -14,6 +14,7 @@ export var translationsByLanguage = {
14
14
  discardChangesWarningHint: 'If you close modal, your last change will not be saved.',
15
15
  cancel: 'Cancel',
16
16
  apply: 'Apply',
17
+ success: 'Success',
17
18
  warning: 'Warning',
18
19
  confirm: 'Confirm',
19
20
  discardChanges: 'Discard changes',
@@ -110,7 +111,14 @@ export var translationsByLanguage = {
110
111
  addImageTitle: 'Select image to add...',
111
112
  mutualizedFailedToLoadImg: 'Failed to load image.',
112
113
  tabsMenu: 'Menu',
114
+ copy: 'Copy',
115
+ copyImage: 'Copy image',
116
+ copySuccess: 'Image copied to clipboard.',
117
+ copyFailed: 'Failed to copy image.',
113
118
  download: 'Download',
119
+ downloadSuccess: 'Image downloaded successfully.',
120
+ downloadFailed: 'Failed to download image.',
121
+ somethingWentWrong: 'Something went wrong.',
114
122
  width: 'Width',
115
123
  height: 'Height',
116
124
  plus: '+',
@@ -121,28 +129,29 @@ export var translationsByLanguage = {
121
129
  tabs: 'Công cụ',
122
130
  name: 'Tên',
123
131
  save: 'Lưu',
124
- saveAs: 'Lưu thành',
132
+ saveAs: 'Lưu dưới dạng',
125
133
  back: 'Quay lại',
126
134
  loading: 'Đang tải...',
127
- resetOperations: 'Đặt lại/xóa tất cả thao tác',
128
- changesLoseWarningHint: 'Nếu bạn nhấn "đặt lại" thì thay đổi sẽ mất. Bạn có muốn tiếp tục?',
129
- discardChangesWarningHint: 'Nếu bạn đóng cửa sổ, thay đổi gần nhất sẽ không được lưu.',
135
+ resetOperations: 'Đặt lạixóa toàn bộ thao tác',
136
+ changesLoseWarningHint: 'Nếu bạn nhấn "Đặt lại", mọi thay đổi sẽ bị mất. Bạn có muốn tiếp tục không?',
137
+ discardChangesWarningHint: 'Nếu bạn đóng cửa sổ, các thay đổi sẽ không được lưu.',
130
138
  cancel: 'Hủy',
131
139
  apply: 'Áp dụng',
140
+ success: 'Thành công',
132
141
  warning: 'Cảnh báo',
133
142
  confirm: 'Xác nhận',
134
143
  discardChanges: 'Bỏ thay đổi',
135
- undoTitle: 'Hoàn tác thao tác cuối',
136
- redoTitle: 'Làm lại thao tác cuối',
144
+ undoTitle: 'Hoàn tác thao tác vừa thực hiện',
145
+ redoTitle: 'Làm lại thao tác vừa hoàn tác',
137
146
  showImageTitle: 'Hiển thị ảnh gốc',
138
147
  zoomInTitle: 'Phóng to',
139
148
  zoomOutTitle: 'Thu nhỏ',
140
- toggleZoomMenuTitle: 'Bật/tắt menu zoom',
149
+ toggleZoomMenuTitle: 'Hiện/ẩn menu thu phóng',
141
150
  adjustTab: 'Điều chỉnh',
142
151
  finetuneTab: 'Tinh chỉnh',
143
152
  filtersTab: 'Bộ lọc',
144
- watermarkTab: 'Hình mờ',
145
- annotateTabLabel: 'Ghi chú',
153
+ watermarkTab: 'Watermark',
154
+ annotateTabLabel: 'Chú thích',
146
155
  resize: 'Đổi kích thước',
147
156
  resizeTab: 'Đổi kích thước',
148
157
  imageName: 'Tên ảnh',
@@ -152,7 +161,7 @@ export var translationsByLanguage = {
152
161
  isNotImage: 'không phải ảnh',
153
162
  toBeUploaded: 'sẽ được tải lên',
154
163
  cropTool: 'Cắt',
155
- original: 'Gốc',
164
+ original: 'Ảnh gốc',
156
165
  custom: 'Tùy chỉnh',
157
166
  square: 'Vuông',
158
167
  landscape: 'Ngang',
@@ -165,10 +174,10 @@ export var translationsByLanguage = {
165
174
  brightnessTool: 'Độ sáng',
166
175
  contrastTool: 'Tương phản',
167
176
  ellipseTool: 'Elip',
168
- unFlipX: 'Bỏ lật X',
169
- flipX: 'Lật X',
170
- unFlipY: 'Bỏ lật Y',
171
- flipY: 'Lật Y',
177
+ unFlipX: 'Bỏ lật ngang',
178
+ flipX: 'Lật ngang',
179
+ unFlipY: 'Bỏ lật dọc',
180
+ flipY: 'Lật dọc',
172
181
  hsvTool: 'HSV',
173
182
  hue: 'Sắc độ',
174
183
  brightness: 'Độ sáng',
@@ -187,24 +196,24 @@ export var translationsByLanguage = {
187
196
  cornerRadius: 'Bo góc',
188
197
  resizeWidthTitle: 'Chiều rộng (px)',
189
198
  resizeHeightTitle: 'Chiều cao (px)',
190
- toggleRatioLockTitle: 'Bật/tắt khóa tỉ lệ',
199
+ toggleRatioLockTitle: 'Bật/tắt khóa tỷ lệ',
191
200
  resetSize: 'Đặt lại về kích thước gốc',
192
201
  rotateTool: 'Xoay',
193
202
  textTool: 'Văn bản',
194
203
  textSpacings: 'Khoảng cách chữ',
195
- textAlignment: 'Căn lề chữ',
204
+ textAlignment: 'Căn chỉnh văn bản',
196
205
  fontFamily: 'Phông chữ',
197
206
  size: 'Cỡ chữ',
198
207
  letterSpacing: 'Giãn chữ',
199
208
  lineHeight: 'Chiều cao dòng',
200
209
  warmthTool: 'Nhiệt độ màu',
201
- addWatermark: 'Thêm hình mờ',
202
- addTextWatermark: 'Thêm chữ mờ',
203
- addWatermarkTitle: 'Chọn loại hình mờ',
204
- uploadWatermark: 'Tải hình mờ',
205
- addWatermarkAsText: 'Thêm dạng chữ',
206
- padding: 'Khoảng đệm',
207
- paddings: 'Khoảng đệm',
210
+ addWatermark: 'Thêm watermark',
211
+ addTextWatermark: 'Thêm watermark chữ',
212
+ addWatermarkTitle: 'Chọn loại watermark',
213
+ uploadWatermark: 'Tải watermark lên',
214
+ addWatermarkAsText: 'Thêm watermark chữ',
215
+ padding: 'Lề trong',
216
+ paddings: 'Lề trong',
208
217
  shadow: 'Bóng',
209
218
  horizontal: 'Ngang',
210
219
  vertical: 'Dọc',
@@ -213,23 +222,30 @@ export var translationsByLanguage = {
213
222
  transparency: 'Độ trong suốt',
214
223
  position: 'Vị trí',
215
224
  stroke: 'Viền',
216
- saveAsModalTitle: 'Lưu thành',
217
- extension: 'Đuôi',
225
+ saveAsModalTitle: 'Lưu dưới dạng',
226
+ extension: 'Phần mở rộng',
218
227
  format: 'Định dạng',
219
- nameIsRequired: 'Bắt buộc nhập tên.',
228
+ nameIsRequired: 'Vui lòng nhập tên.',
220
229
  quality: 'Chất lượng',
221
- imageDimensionsHoverTitle: 'Kích thước ảnh lưu (rộng x cao)',
222
- cropSizeLowerThanResizedWarning: 'Lưu ý: vùng cắt nhỏ hơn kích thước đã đổi, có thể giảm chất lượng',
230
+ imageDimensionsHoverTitle: 'Kích thước ảnh khi lưu (rộng x cao)',
231
+ cropSizeLowerThanResizedWarning: 'Lưu ý: vùng cắt nhỏ hơn kích thước đã chọn, chất lượng ảnh có thể bị giảm.',
223
232
  actualSize: 'Kích thước thật (100%)',
224
233
  fitSize: 'Vừa khung',
225
234
  addImageTitle: 'Chọn ảnh để thêm...',
226
235
  mutualizedFailedToLoadImg: 'Không thể tải ảnh.',
227
236
  tabsMenu: 'Menu',
237
+ copy: 'Sao chép',
238
+ copyImage: 'Sao chép ảnh',
239
+ copySuccess: 'Đã sao chép ảnh vào clipboard.',
240
+ copyFailed: 'Không thể sao chép ảnh.',
228
241
  download: 'Tải xuống',
242
+ downloadSuccess: 'Tải ảnh thành công.',
243
+ downloadFailed: 'Tải ảnh thất bại.',
244
+ somethingWentWrong: 'Đã xảy ra lỗi.',
229
245
  width: 'Rộng',
230
246
  height: 'Cao',
231
247
  plus: '+',
232
- cropItemNoEffect: 'Không có xem trước cho mục này',
248
+ cropItemNoEffect: 'Mục này không bản xem trước',
233
249
  colorPickerModalTitleLabel: 'Chọn màu'
234
250
  },
235
251
  zh: {
@@ -244,6 +260,7 @@ export var translationsByLanguage = {
244
260
  discardChangesWarningHint: '如果关闭弹窗,你的更改将不会保存。',
245
261
  cancel: '取消',
246
262
  apply: '应用',
263
+ success: '成功',
247
264
  warning: '警告',
248
265
  confirm: '确认',
249
266
  discardChanges: '放弃更改',
@@ -340,7 +357,14 @@ export var translationsByLanguage = {
340
357
  addImageTitle: '选择要添加的图片...',
341
358
  mutualizedFailedToLoadImg: '加载图片失败。',
342
359
  tabsMenu: '菜单',
360
+ copy: '复制',
361
+ copyImage: '复制图片',
362
+ copySuccess: '图片已复制到剪贴板。',
363
+ copyFailed: '复制图片失败。',
343
364
  download: '下载',
365
+ downloadSuccess: '图片下载成功。',
366
+ downloadFailed: '图片下载失败。',
367
+ somethingWentWrong: '发生了错误。',
344
368
  width: '宽度',
345
369
  height: '高度',
346
370
  plus: '+',
@@ -359,6 +383,7 @@ export var translationsByLanguage = {
359
383
  discardChangesWarningHint: 'Si vous fermez la fenêtre, votre dernière modification ne sera pas enregistrée.',
360
384
  cancel: 'Annuler',
361
385
  apply: 'Appliquer',
386
+ success: 'Succès',
362
387
  warning: 'Avertissement',
363
388
  confirm: 'Confirmer',
364
389
  discardChanges: 'Ignorer les modifications',
@@ -455,7 +480,14 @@ export var translationsByLanguage = {
455
480
  addImageTitle: 'Sélectionnez une image à ajouter...',
456
481
  mutualizedFailedToLoadImg: 'Échec du chargement de l’image.',
457
482
  tabsMenu: 'Menu',
483
+ copy: 'Copier',
484
+ copyImage: 'Copier l’image',
485
+ copySuccess: 'Image copiée dans le presse-papiers.',
486
+ copyFailed: 'Échec de la copie de l’image.',
458
487
  download: 'Télécharger',
488
+ downloadSuccess: 'Image téléchargée avec succès.',
489
+ downloadFailed: 'Échec du téléchargement de l’image.',
490
+ somethingWentWrong: 'Une erreur est survenue.',
459
491
  width: 'Largeur',
460
492
  height: 'Hauteur',
461
493
  plus: '+',
@@ -11,4 +11,5 @@ export { default as usePhoneScreen } from './use-phone-screen';
11
11
  export { default as useTransformedImgData } from './use-transformed-img-data';
12
12
  export { default as usePopover } from './use-popover';
13
13
  export { default as useImageEditorActions } from './use-image-editor-actions';
14
+ export { default as useFeedbackHandler } from './use-feedback-handler';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -10,4 +10,5 @@ export { default as useDrag } from "./use-drag";
10
10
  export { default as usePhoneScreen } from "./use-phone-screen";
11
11
  export { default as useTransformedImgData } from "./use-transformed-img-data";
12
12
  export { default as usePopover } from "./use-popover";
13
- export { default as useImageEditorActions } from "./use-image-editor-actions";
13
+ export { default as useImageEditorActions } from "./use-image-editor-actions";
14
+ export { default as useFeedbackHandler } from "./use-feedback-handler";
@@ -0,0 +1,11 @@
1
+ interface FeedbackOptions {
2
+ duration?: number;
3
+ persistent?: boolean;
4
+ }
5
+ declare const useFeedbackHandler: () => {
6
+ handleSuccess: (message?: string, options?: FeedbackOptions) => void;
7
+ handleShowInfo: (message: string, options?: FeedbackOptions) => void;
8
+ handleError: (error: unknown, fallbackMessage?: string, options?: FeedbackOptions) => void;
9
+ };
10
+ export default useFeedbackHandler;
11
+ //# sourceMappingURL=use-feedback-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-feedback-handler.d.ts","sourceRoot":"","sources":["../../src/hooks/use-feedback-handler.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAID,QAAA,MAAM,kBAAkB;gDA0Be,eAAe;8BAOxC,MAAM,YAAY,eAAe;yBAQlC,OAAO,sCAEJ,eAAe;CAmB9B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { useCallback } from 'react';
2
+ import { SET_FEEDBACK } from "../actions";
3
+ import useStore from "./use-store";
4
+ var DEFAULT_FEEDBACK_DURATION = 5000;
5
+ var useFeedbackHandler = function useFeedbackHandler() {
6
+ var _useStore = useStore(),
7
+ dispatch = _useStore.dispatch,
8
+ t = _useStore.t;
9
+ var showFeedback = useCallback(function (message, status) {
10
+ var _options$duration;
11
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
12
+ dispatch({
13
+ type: SET_FEEDBACK,
14
+ payload: {
15
+ feedback: {
16
+ message: message,
17
+ status: status,
18
+ duration: options.persistent ? 0 : (_options$duration = options.duration) !== null && _options$duration !== void 0 ? _options$duration : DEFAULT_FEEDBACK_DURATION
19
+ }
20
+ }
21
+ });
22
+ }, [dispatch]);
23
+ var handleSuccess = useCallback(function () {
24
+ var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : t('success');
25
+ var options = arguments.length > 1 ? arguments[1] : undefined;
26
+ showFeedback(message, 'success', options);
27
+ }, [showFeedback, t]);
28
+ var handleShowInfo = useCallback(function (message, options) {
29
+ showFeedback(message, 'info', options);
30
+ }, [showFeedback]);
31
+ var handleError = useCallback(function (error) {
32
+ var fallbackMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : t('somethingWentWrong');
33
+ var options = arguments.length > 2 ? arguments[2] : undefined;
34
+ var message = typeof error === 'string' ? error : error instanceof Error && error.message ? error.message : fallbackMessage;
35
+ showFeedback(message, 'error', options);
36
+ }, [showFeedback, t]);
37
+ return {
38
+ handleSuccess: handleSuccess,
39
+ handleShowInfo: handleShowInfo,
40
+ handleError: handleError
41
+ };
42
+ };
43
+ export default useFeedbackHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"use-image-editor-actions.d.ts","sourceRoot":"","sources":["../../src/hooks/use-image-editor-actions.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,QAAA,MAAM,qBAAqB;gCA4EA,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM;;mCAfR,aAAa;CAuF9D,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"use-image-editor-actions.d.ts","sourceRoot":"","sources":["../../src/hooks/use-image-editor-actions.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,QAAA,MAAM,qBAAqB;gCA6EA,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM;;mCAfR,aAAa;CAiF9D,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -4,8 +4,8 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
6
  import { useCallback } from 'react';
7
- import { RESET, SET_FEEDBACK, SET_SAVING } from "../actions";
8
- import { useStore, useTransformedImgData } from "./index";
7
+ import { RESET, SET_SAVING } from "../actions";
8
+ import { useFeedbackHandler, useStore, useTransformedImgData } from "./index";
9
9
  import { DEFAULT_SAVE_QUALITY, ELLIPSE_CROP, SUPPORTED_IMAGE_TYPES } from "../utils/constants";
10
10
  import getDefaultSaveQuality from "../utils/get-default-save-quality";
11
11
  import getFileFullName from "../utils/get-file-full-name";
@@ -30,6 +30,8 @@ var useImageEditorActions = function useImageEditorActions() {
30
30
  _useStore$config$defa = _useStore$config.defaultSavedImageQuality,
31
31
  defaultSavedImageQuality = _useStore$config$defa === void 0 ? DEFAULT_SAVE_QUALITY : _useStore$config$defa,
32
32
  savedImageNamePrefix = _useStore$config.savedImageNamePrefix;
33
+ var _useFeedbackHandler = useFeedbackHandler(),
34
+ handleError = _useFeedbackHandler.handleError;
33
35
  var transformImgFn = useTransformedImgData();
34
36
  var getFileNameAndExtension = useCallback(function () {
35
37
  var nameFromSource = defaultSavedImageName !== null && defaultSavedImageName !== void 0 ? defaultSavedImageName : originalImage === null || originalImage === void 0 ? void 0 : originalImage.title;
@@ -80,14 +82,7 @@ var useImageEditorActions = function useImageEditorActions() {
80
82
  _context.next = 2;
81
83
  break;
82
84
  }
83
- dispatch({
84
- type: SET_FEEDBACK,
85
- payload: {
86
- feedback: {
87
- message: t('nameIsRequired')
88
- }
89
- }
90
- });
85
+ handleError(t('nameIsRequired'));
91
86
  return _context.abrupt("return");
92
87
  case 2:
93
88
  dispatch({
@@ -127,7 +122,7 @@ var useImageEditorActions = function useImageEditorActions() {
127
122
  return function (_x) {
128
123
  return _ref.apply(this, arguments);
129
124
  };
130
- }(), [closeAfterSave, dispatch, getDefaultImageFileInfo, haveNotSavedChanges, onClose, onSave, t, transformImgFn]);
125
+ }(), [closeAfterSave, dispatch, getDefaultImageFileInfo, haveNotSavedChanges, onClose, onSave, t, transformImgFn, handleError]);
131
126
  var resetImage = useCallback(function () {
132
127
  dispatch({
133
128
  type: RESET,
@@ -14,7 +14,7 @@ interface TransformedImgResult {
14
14
  designState: ImageDesignState;
15
15
  hideLoadingSpinner?: () => void;
16
16
  }
17
- type GetTransformedDataFn = (imageFileInfo?: ImageFileInfo, pixelRatio?: boolean | number, keepLoadingSpinnerShown?: boolean) => TransformedImgResult;
17
+ type GetTransformedDataFn = (imageFileInfo?: ImageFileInfo, pixelRatio?: boolean | number, keepLoadingSpinnerShown?: boolean, markAsSaved?: boolean) => TransformedImgResult;
18
18
  declare const useTransformedImgData: () => GetTransformedDataFn;
19
19
  export default useTransformedImgData;
20
20
  //# sourceMappingURL=use-transformed-img-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-transformed-img-data.d.ts","sourceRoot":"","sources":["../../src/hooks/use-transformed-img-data.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAY/C,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,UAAU,oBAAoB;IAC5B,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,KAAK,oBAAoB,GAAG,CAC1B,aAAa,CAAC,EAAE,aAAa,EAC7B,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,EAC7B,uBAAuB,CAAC,EAAE,OAAO,KAC9B,oBAAoB,CAAC;AAE1B,QAAA,MAAM,qBAAqB,QAAO,oBAsLjC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"use-transformed-img-data.d.ts","sourceRoot":"","sources":["../../src/hooks/use-transformed-img-data.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAY/C,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,UAAU,oBAAoB;IAC5B,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,KAAK,oBAAoB,GAAG,CAC1B,aAAa,CAAC,EAAE,aAAa,EAC7B,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,EAC7B,uBAAuB,CAAC,EAAE,OAAO,EACjC,WAAW,CAAC,EAAE,OAAO,KAClB,oBAAoB,CAAC;AAE1B,QAAA,MAAM,qBAAqB,QAAO,oBAyLjC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -34,6 +34,7 @@ var useTransformedImgData = function useTransformedImgData() {
34
34
  var imageFileInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
35
35
  var pixelRatio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
36
36
  var keepLoadingSpinnerShown = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
37
+ var markAsSaved = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
37
38
  if (!originalImage) {
38
39
  throw new Error('No image loaded');
39
40
  }
@@ -135,9 +136,11 @@ var useTransformedImgData = function useTransformedImgData() {
135
136
  quality: quality
136
137
  } : {});
137
138
  designLayer.setAttr('isSaving', false);
138
- dispatch({
139
- type: SET_SAVED
140
- });
139
+ if (markAsSaved) {
140
+ dispatch({
141
+ type: SET_SAVED
142
+ });
143
+ }
141
144
  imgNode === null || imgNode === void 0 || imgNode.clearCache();
142
145
  preparedCanvas.destroy();
143
146
  Konva.pixelRatio = previewPixelRatio;
@@ -40,6 +40,7 @@ export interface SetFeedbackPayload {
40
40
  feedback: {
41
41
  message: string;
42
42
  duration?: number;
43
+ status?: 'success' | 'info' | 'warning' | 'error';
43
44
  };
44
45
  }
45
46
  export interface ChangePointerIconPayload {
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/types/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/types/actions.ts"],"names":[],"mappings":"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"}
@@ -97,7 +97,7 @@ export interface AppState {
97
97
  feedback: {
98
98
  message?: string;
99
99
  duration?: number;
100
- status?: string;
100
+ status?: 'success' | 'info' | 'warning' | 'error';
101
101
  };
102
102
  isResetted?: boolean;
103
103
  watermarkImgSrc?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,8 @@ export declare const CLOSING_REASONS: {
79
79
  readonly BACK_BUTTON: "back-button-clicked";
80
80
  };
81
81
  export declare const FEEDBACK_STATUSES: {
82
+ readonly SUCCESS: "success";
83
+ readonly INFO: "info";
82
84
  readonly WARNING: "warning";
83
85
  readonly ERROR: "error";
84
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,EAAE,MAAmB,CAAC;AAC5D,eAAO,MAAM,eAAe,EAAE,MAA2B,CAAC;AAC1D,eAAO,MAAM,qBAAqB,EAAE,MAAiC,CAAC;AACtE,eAAO,MAAM,aAAa,EAAE,MAA6B,CAAC;AAC1D,eAAO,MAAM,oBAAoB,EAAE,MAAgC,CAAC;AAEpE,eAAO,MAAM,uBAAuB,EAAE,MAAoB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,EAAE,MAAa,CAAC;AAEjD,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC;AAEX,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;CAyBZ,CAAC;AAEX,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,eAAO,MAAM,mBAAmB,EAAE,MAAU,CAAC;AAE7C,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAKzC,CAAC;AACX,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAMxC,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,MAAiC,CAAC;AAEnE,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAEX,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAS3C,CAAC;AAEX,eAAO,MAAM,aAAa,EAAE,MAAe,CAAC;AAC5C,eAAO,MAAM,WAAW,EAAE,MAAiB,CAAC;AAC5C,eAAO,MAAM,YAAY,EAAE,MAAkB,CAAC;AAE9C,eAAO,MAAM,SAAS;;;;;;;;;;CAUZ,CAAC;AAEX,eAAO,MAAM,QAAQ;;;CAGX,CAAC;AAEX,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,EAAE,MAAmB,CAAC;AAC5D,eAAO,MAAM,eAAe,EAAE,MAA2B,CAAC;AAC1D,eAAO,MAAM,qBAAqB,EAAE,MAAiC,CAAC;AACtE,eAAO,MAAM,aAAa,EAAE,MAA6B,CAAC;AAC1D,eAAO,MAAM,oBAAoB,EAAE,MAAgC,CAAC;AAEpE,eAAO,MAAM,uBAAuB,EAAE,MAAoB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,EAAE,MAAa,CAAC;AAEjD,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC;AAEX,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;CAyBZ,CAAC;AAEX,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,eAAO,MAAM,mBAAmB,EAAE,MAAU,CAAC;AAE7C,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAKzC,CAAC;AACX,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAMxC,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,MAAiC,CAAC;AAEnE,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAEX,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAS3C,CAAC;AAEX,eAAO,MAAM,aAAa,EAAE,MAAe,CAAC;AAC5C,eAAO,MAAM,WAAW,EAAE,MAAiB,CAAC;AAC5C,eAAO,MAAM,YAAY,EAAE,MAAkB,CAAC;AAE9C,eAAO,MAAM,SAAS;;;;;;;;;;CAUZ,CAAC;AAEX,eAAO,MAAM,QAAQ;;;CAGX,CAAC;AAEX,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;CAKpB,CAAC"}
@@ -79,6 +79,8 @@ export var CLOSING_REASONS = {
79
79
  BACK_BUTTON: 'back-button-clicked'
80
80
  };
81
81
  export var FEEDBACK_STATUSES = {
82
+ SUCCESS: 'success',
83
+ INFO: 'info',
82
84
  WARNING: 'warning',
83
85
  ERROR: 'error'
84
86
  };
@@ -0,0 +1,4 @@
1
+ import { SavedImageData } from 'types/common';
2
+ export declare const downloadImageData: (imageData: SavedImageData) => Promise<void>;
3
+ export declare const copyImageDataToClipboard: (imageData: SavedImageData) => Promise<void>;
4
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAsD9C,eAAO,MAAM,iBAAiB,GAAU,WAAW,cAAc,kBAMhE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,WAAW,cAAc,kBAavE,CAAC"}
@@ -0,0 +1,110 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ var createDownloadLink = function createDownloadLink(blob, fileName) {
5
+ var objectUrl = URL.createObjectURL(blob);
6
+ var link = document.createElement('a');
7
+ link.href = objectUrl;
8
+ link.download = fileName;
9
+ link.style.display = 'none';
10
+ document.body.appendChild(link);
11
+ link.click();
12
+ document.body.removeChild(link);
13
+ URL.revokeObjectURL(objectUrl);
14
+ };
15
+ var canvasToBlob = function canvasToBlob(canvas, mimeType, quality) {
16
+ return new Promise(function (resolve, reject) {
17
+ canvas.toBlob(function (blob) {
18
+ if (blob) {
19
+ resolve(blob);
20
+ return;
21
+ }
22
+ reject(new Error('Failed to process image.'));
23
+ }, mimeType, quality);
24
+ });
25
+ };
26
+ var getImageBlob = function () {
27
+ var _ref = _asyncToGenerator(_regeneratorRuntime.mark(function _callee(imageData) {
28
+ var response;
29
+ return _regeneratorRuntime.wrap(function (_context) {
30
+ while (1) switch (_context.prev = _context.next) {
31
+ case 0:
32
+ if (!imageData.imageCanvas) {
33
+ _context.next = 1;
34
+ break;
35
+ }
36
+ return _context.abrupt("return", canvasToBlob(imageData.imageCanvas, imageData.mimeType, imageData.quality));
37
+ case 1:
38
+ if (!imageData.imageBase64) {
39
+ _context.next = 3;
40
+ break;
41
+ }
42
+ _context.next = 2;
43
+ return fetch(imageData.imageBase64);
44
+ case 2:
45
+ response = _context.sent;
46
+ return _context.abrupt("return", response.blob());
47
+ case 3:
48
+ throw new Error('No image data available.');
49
+ case 4:
50
+ case "end":
51
+ return _context.stop();
52
+ }
53
+ }, _callee);
54
+ }));
55
+ return function getImageBlob(_x) {
56
+ return _ref.apply(this, arguments);
57
+ };
58
+ }();
59
+ export var downloadImageData = function () {
60
+ var _ref2 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee2(imageData) {
61
+ var _imageData$fullName;
62
+ var blob;
63
+ return _regeneratorRuntime.wrap(function (_context2) {
64
+ while (1) switch (_context2.prev = _context2.next) {
65
+ case 0:
66
+ _context2.next = 1;
67
+ return getImageBlob(imageData);
68
+ case 1:
69
+ blob = _context2.sent;
70
+ createDownloadLink(blob, (_imageData$fullName = imageData.fullName) !== null && _imageData$fullName !== void 0 ? _imageData$fullName : "".concat(imageData.name, ".").concat(imageData.extension));
71
+ case 2:
72
+ case "end":
73
+ return _context2.stop();
74
+ }
75
+ }, _callee2);
76
+ }));
77
+ return function downloadImageData(_x2) {
78
+ return _ref2.apply(this, arguments);
79
+ };
80
+ }();
81
+ export var copyImageDataToClipboard = function () {
82
+ var _ref3 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee3(imageData) {
83
+ var _navigator$clipboard;
84
+ var blob, mimeType;
85
+ return _regeneratorRuntime.wrap(function (_context3) {
86
+ while (1) switch (_context3.prev = _context3.next) {
87
+ case 0:
88
+ if (!(!((_navigator$clipboard = navigator.clipboard) !== null && _navigator$clipboard !== void 0 && _navigator$clipboard.write) || typeof ClipboardItem === 'undefined')) {
89
+ _context3.next = 1;
90
+ break;
91
+ }
92
+ throw new Error('Clipboard image write is not supported in this browser.');
93
+ case 1:
94
+ _context3.next = 2;
95
+ return getImageBlob(imageData);
96
+ case 2:
97
+ blob = _context3.sent;
98
+ mimeType = blob.type || imageData.mimeType || 'image/png';
99
+ _context3.next = 3;
100
+ return navigator.clipboard.write([new ClipboardItem(_defineProperty({}, mimeType, blob))]);
101
+ case 3:
102
+ case "end":
103
+ return _context3.stop();
104
+ }
105
+ }, _callee3);
106
+ }));
107
+ return function copyImageDataToClipboard(_x3) {
108
+ return _ref3.apply(this, arguments);
109
+ };
110
+ }();
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.0.21",
6
+ "version": "1.0.22",
7
7
  "license": "MIT",
8
8
  "author": "Lê Đặng Trường Đạt",
9
9
  "main": "./lib/index.js",