@arbisoft/react-design-tool 1.0.25 → 1.0.27
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.
- package/README.md +35 -2
- package/dist/cjs/index.js +23 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +23 -4
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,13 +40,13 @@ yarn add @arbisoft/react-design-tool
|
|
|
40
40
|
#### ⚠️ Important: Installation Guide for React 18 and Below
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
npm install @arbisoft/react-design-tool@1.0.
|
|
43
|
+
npm install @arbisoft/react-design-tool@1.0.27
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
OR
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
yarn add @arbisoft/react-design-tool@1.0.
|
|
49
|
+
yarn add @arbisoft/react-design-tool@1.0.27
|
|
50
50
|
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -321,3 +321,36 @@ const handleSave = async () => {
|
|
|
321
321
|
// { elements: [array of elements], image: canvas image }
|
|
322
322
|
};
|
|
323
323
|
```
|
|
324
|
+
|
|
325
|
+
#### 17. `onCreateNewTemplate` (Function)
|
|
326
|
+
|
|
327
|
+
A callback function that is triggered when a user clicks the **"New Template"** button from within the editor.
|
|
328
|
+
It receives the freshly generated array of canvas elements so you can store it in your own backend (e.g., as a custom template).
|
|
329
|
+
|
|
330
|
+
**Example:**
|
|
331
|
+
|
|
332
|
+
```jsx
|
|
333
|
+
onCreateNewTemplate={(elements) => {
|
|
334
|
+
// Save new custom template to backend
|
|
335
|
+
axios.post('/api/templates', {
|
|
336
|
+
template_name: 'New Custom Template',
|
|
337
|
+
template_language_id: 2,
|
|
338
|
+
json_data: elements,
|
|
339
|
+
});
|
|
340
|
+
}}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
#### 18. `onTemplateSelect` (Function)
|
|
344
|
+
|
|
345
|
+
A callback function triggered whenever a user selects a template (default or custom) from the template sidebar.
|
|
346
|
+
It receives the backend `id` of the selected template (if available), or `null` if the canvas was reset (e.g., for a new template).
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
**Example:**
|
|
350
|
+
|
|
351
|
+
```jsx
|
|
352
|
+
onTemplateSelect={(templateId) => {
|
|
353
|
+
console.log('User selected template ID:', templateId); // null if new template
|
|
354
|
+
setSelectedTemplateId(templateId);
|
|
355
|
+
}}
|
|
356
|
+
```
|
package/dist/cjs/index.js
CHANGED
|
@@ -5107,13 +5107,17 @@ var TemplateSideBar = function TemplateSideBar(_ref) {
|
|
|
5107
5107
|
languageLocale = _ref.languageLocale,
|
|
5108
5108
|
onDeleteCustomTemplate = _ref.onDeleteCustomTemplate,
|
|
5109
5109
|
defaultTemplatesList = _ref.defaultTemplatesList,
|
|
5110
|
-
customTemplatesList = _ref.customTemplatesList
|
|
5110
|
+
customTemplatesList = _ref.customTemplatesList,
|
|
5111
|
+
onTemplateSelect = _ref.onTemplateSelect;
|
|
5111
5112
|
var renderDefaultContent = React.useMemo(function () {
|
|
5112
5113
|
return /*#__PURE__*/React.createElement(TemplatesContainer, null, defaultTemplatesList === null || defaultTemplatesList === void 0 ? void 0 : defaultTemplatesList.map(function (item, index) {
|
|
5113
5114
|
return /*#__PURE__*/React.createElement(TemplateItem, {
|
|
5114
5115
|
key: index,
|
|
5115
5116
|
onClick: function onClick() {
|
|
5116
5117
|
oncreateNewTemplate(item === null || item === void 0 ? void 0 : item.elements);
|
|
5118
|
+
if (typeof onTemplateSelect === 'function') {
|
|
5119
|
+
onTemplateSelect(item === null || item === void 0 ? void 0 : item.id);
|
|
5120
|
+
}
|
|
5117
5121
|
}
|
|
5118
5122
|
}, /*#__PURE__*/React.createElement(StyledImage, {
|
|
5119
5123
|
src: item === null || item === void 0 ? void 0 : item.image,
|
|
@@ -5553,7 +5557,8 @@ var HelperSideBar = function HelperSideBar(_ref) {
|
|
|
5553
5557
|
onDeleteCustomTemplate = _ref.onDeleteCustomTemplate,
|
|
5554
5558
|
styleProps = _ref.styleProps,
|
|
5555
5559
|
defaultText = _ref.defaultText,
|
|
5556
|
-
languageLocale = _ref.languageLocale
|
|
5560
|
+
languageLocale = _ref.languageLocale,
|
|
5561
|
+
onTemplateSelect = _ref.onTemplateSelect;
|
|
5557
5562
|
return /*#__PURE__*/React.createElement(SideBarWrapper, {
|
|
5558
5563
|
visible: selectedSideBarItem && helperSideBarVisible
|
|
5559
5564
|
}, /*#__PURE__*/React.createElement(SideBarHeader, {
|
|
@@ -5568,6 +5573,7 @@ var HelperSideBar = function HelperSideBar(_ref) {
|
|
|
5568
5573
|
onDeleteCustomTemplate: onDeleteCustomTemplate,
|
|
5569
5574
|
defaultTemplatesList: defaultTemplatesList,
|
|
5570
5575
|
customTemplatesList: customTemplatesList,
|
|
5576
|
+
onTemplateSelect: onTemplateSelect,
|
|
5571
5577
|
styleProps: styleProps
|
|
5572
5578
|
}) : selectedSideBarItem === (sideBarpillsList === null || sideBarpillsList === void 0 ? void 0 : sideBarpillsList.text) ? /*#__PURE__*/React.createElement(TextSideBar, {
|
|
5573
5579
|
onAddTextToCanvas: onAddTextToCanvas,
|
|
@@ -5704,6 +5710,8 @@ var isPropValid = /* #__PURE__ */memoize(function (prop) {
|
|
|
5704
5710
|
* @property {Function} onSave
|
|
5705
5711
|
* @property {string} [saveButtonText]
|
|
5706
5712
|
* @property {'en'|'ru'|'pl'|'de'|'es'|'fr'|'it'} [locale]
|
|
5713
|
+
* @property {Function} [onCreateNewTemplate] - called when user creates a new template, passes new canvas elements
|
|
5714
|
+
* @property {Function} [onTemplateSelect] - called when a template is selected, passes template id
|
|
5707
5715
|
*/
|
|
5708
5716
|
|
|
5709
5717
|
/**
|
|
@@ -5736,7 +5744,9 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
5736
5744
|
showSaveButton = _ref.showSaveButton,
|
|
5737
5745
|
saveButtonText = _ref.saveButtonText,
|
|
5738
5746
|
_ref$locale = _ref.locale,
|
|
5739
|
-
locale = _ref$locale === void 0 ? 'en' : _ref$locale
|
|
5747
|
+
locale = _ref$locale === void 0 ? 'en' : _ref$locale,
|
|
5748
|
+
onCreateNewTemplate = _ref.onCreateNewTemplate,
|
|
5749
|
+
onTemplateSelect = _ref.onTemplateSelect;
|
|
5740
5750
|
var stageRef = React.useRef(null);
|
|
5741
5751
|
var _useState = React.useState(null),
|
|
5742
5752
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -6322,6 +6332,14 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
6322
6332
|
setElements(_toConsumableArray(elems));
|
|
6323
6333
|
setHistory([]);
|
|
6324
6334
|
setRedoStack([]);
|
|
6335
|
+
if (typeof onCreateNewTemplate === 'function') {
|
|
6336
|
+
onCreateNewTemplate(elems);
|
|
6337
|
+
}
|
|
6338
|
+
|
|
6339
|
+
// Clear selected template ID
|
|
6340
|
+
if (typeof onTemplateSelect === 'function') {
|
|
6341
|
+
onTemplateSelect(null);
|
|
6342
|
+
}
|
|
6325
6343
|
};
|
|
6326
6344
|
var sendSelectedElementToBack = function sendSelectedElementToBack() {
|
|
6327
6345
|
var copyElements = _toConsumableArray(elements);
|
|
@@ -6634,7 +6652,8 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
6634
6652
|
onDeleteCustomTemplate: onDeleteCustomTemplate,
|
|
6635
6653
|
styleProps: styleProps,
|
|
6636
6654
|
defaultText: defaultText,
|
|
6637
|
-
languageLocale: languageLocale
|
|
6655
|
+
languageLocale: languageLocale,
|
|
6656
|
+
onTemplateSelect: onTemplateSelect
|
|
6638
6657
|
}), loadingFonts ? null : /*#__PURE__*/React.createElement(Editor
|
|
6639
6658
|
// canvasSize={canvasSize}
|
|
6640
6659
|
, {
|