labellife-design-tool 2.2.2 → 2.2.3
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/dist/cjs/canvas/workspace.js +46 -7
- package/dist/cjs/canvas/workspace.js.map +1 -1
- package/dist/cjs/index.js +46 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/canvas/workspace.js +46 -7
- package/dist/esm/canvas/workspace.js.map +1 -1
- package/dist/esm/index.js +46 -7
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -2051,7 +2051,9 @@ var InputFieldsDialog = observer(function (_ref2) {
|
|
|
2051
2051
|
var store = _ref2.store,
|
|
2052
2052
|
_onComplete = _ref2.onComplete,
|
|
2053
2053
|
_ref2$enabled = _ref2.enabled,
|
|
2054
|
-
enabled = _ref2$enabled === void 0 ? true : _ref2$enabled
|
|
2054
|
+
enabled = _ref2$enabled === void 0 ? true : _ref2$enabled,
|
|
2055
|
+
_ref2$backTrigger = _ref2.backTrigger,
|
|
2056
|
+
backTrigger = _ref2$backTrigger === void 0 ? 0 : _ref2$backTrigger;
|
|
2055
2057
|
// displayIndex counts how many fields have been answered (for step indicator only).
|
|
2056
2058
|
// Navigation always uses fields[0] — the first remaining pending field.
|
|
2057
2059
|
var _useState5 = useState(0),
|
|
@@ -2060,6 +2062,8 @@ var InputFieldsDialog = observer(function (_ref2) {
|
|
|
2060
2062
|
setDisplayIndex = _useState6[1];
|
|
2061
2063
|
var initialTotalRef = useRef(0);
|
|
2062
2064
|
var completedHistoryRef = useRef([]);
|
|
2065
|
+
var isGoingBackRef = useRef(false);
|
|
2066
|
+
var prevBackTriggerRef = useRef(backTrigger);
|
|
2063
2067
|
var config = getInputFieldsConfig();
|
|
2064
2068
|
var pendingFields = store._pendingInputFields || [];
|
|
2065
2069
|
|
|
@@ -2076,13 +2080,20 @@ var InputFieldsDialog = observer(function (_ref2) {
|
|
|
2076
2080
|
// Capture total and reset display counter when a fresh batch appears
|
|
2077
2081
|
useEffect(function () {
|
|
2078
2082
|
if (fields.length > 0 && initialTotalRef.current === 0) {
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2083
|
+
if (isGoingBackRef.current) {
|
|
2084
|
+
// Back-from-summary restored a field — recover total from history + pending
|
|
2085
|
+
isGoingBackRef.current = false;
|
|
2086
|
+
initialTotalRef.current = completedHistoryRef.current.length + fields.length;
|
|
2087
|
+
} else {
|
|
2088
|
+
// Genuine fresh batch
|
|
2089
|
+
initialTotalRef.current = fields.length;
|
|
2090
|
+
setDisplayIndex(0);
|
|
2091
|
+
completedHistoryRef.current = [];
|
|
2092
|
+
}
|
|
2082
2093
|
}
|
|
2083
2094
|
if (fields.length === 0) {
|
|
2084
2095
|
initialTotalRef.current = 0;
|
|
2085
|
-
|
|
2096
|
+
// History is intentionally kept so back-from-summary can use it
|
|
2086
2097
|
}
|
|
2087
2098
|
}, [fields.length]);
|
|
2088
2099
|
var totalCount = initialTotalRef.current || fields.length;
|
|
@@ -2161,6 +2172,31 @@ var InputFieldsDialog = observer(function (_ref2) {
|
|
|
2161
2172
|
};
|
|
2162
2173
|
var canGoBack = displayIndex > 0;
|
|
2163
2174
|
|
|
2175
|
+
// Back-from-summary: triggered by parent incrementing backTrigger prop
|
|
2176
|
+
var handleBackFromSummary = function handleBackFromSummary() {
|
|
2177
|
+
var last = completedHistoryRef.current.pop();
|
|
2178
|
+
if (!last) return;
|
|
2179
|
+
var el = last.el,
|
|
2180
|
+
previousValue = last.previousValue;
|
|
2181
|
+
if (el) {
|
|
2182
|
+
var isImage = el.custom && el.custom.inputType === 'image';
|
|
2183
|
+
el.set(isImage ? {
|
|
2184
|
+
src: previousValue || ''
|
|
2185
|
+
} : {
|
|
2186
|
+
text: previousValue || ''
|
|
2187
|
+
});
|
|
2188
|
+
isGoingBackRef.current = true;
|
|
2189
|
+
store._unresolveInputField(el);
|
|
2190
|
+
}
|
|
2191
|
+
// displayIndex stays unchanged — it already points to the last step (N-1)
|
|
2192
|
+
};
|
|
2193
|
+
useEffect(function () {
|
|
2194
|
+
if (backTrigger !== prevBackTriggerRef.current) {
|
|
2195
|
+
prevBackTriggerRef.current = backTrigger;
|
|
2196
|
+
handleBackFromSummary();
|
|
2197
|
+
}
|
|
2198
|
+
}, [backTrigger]);
|
|
2199
|
+
|
|
2164
2200
|
// ── Resolve which dialog component to use ───────────────────────────
|
|
2165
2201
|
// Priority: per-type custom dialog > global CustomDialog > built-in
|
|
2166
2202
|
var TYPE_DIALOG_MAP = {
|
|
@@ -2514,7 +2550,9 @@ var Workspace = observer(function (_ref6) {
|
|
|
2514
2550
|
components = _ref6$components === void 0 ? {} : _ref6$components,
|
|
2515
2551
|
_ref6$showInputFields = _ref6.showInputFieldsPopup,
|
|
2516
2552
|
showInputFieldsPopup = _ref6$showInputFields === void 0 ? true : _ref6$showInputFields,
|
|
2517
|
-
onInputFieldsComplete = _ref6.onInputFieldsComplete
|
|
2553
|
+
onInputFieldsComplete = _ref6.onInputFieldsComplete,
|
|
2554
|
+
_ref6$backTrigger = _ref6.backTrigger,
|
|
2555
|
+
backTrigger = _ref6$backTrigger === void 0 ? 0 : _ref6$backTrigger;
|
|
2518
2556
|
var stageRef = useRef(null);
|
|
2519
2557
|
var containerRef = useRef(null);
|
|
2520
2558
|
var _useState5 = useState({
|
|
@@ -2800,7 +2838,8 @@ var Workspace = observer(function (_ref6) {
|
|
|
2800
2838
|
}) : null, /*#__PURE__*/jsx(InputFieldsDialog, {
|
|
2801
2839
|
store: store,
|
|
2802
2840
|
enabled: showInputFieldsPopup,
|
|
2803
|
-
onComplete: onInputFieldsComplete
|
|
2841
|
+
onComplete: onInputFieldsComplete,
|
|
2842
|
+
backTrigger: backTrigger
|
|
2804
2843
|
})]
|
|
2805
2844
|
});
|
|
2806
2845
|
});
|