lisichatbot 1.8.3 → 1.8.5

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/index.js +22 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisichatbot",
3
- "version": "1.8.3",
3
+ "version": "1.8.5",
4
4
  "type": "module",
5
5
  "main": "./src/index.js",
6
6
  "exports": {
package/src/index.js CHANGED
@@ -2912,17 +2912,13 @@ async function showNextStep() {
2912
2912
  // If not found in normal location, check if it's still in chat from previous init
2913
2913
  if (!element) {
2914
2914
  element = elements.messages.querySelector(selector);
2915
- if (element) {
2916
- console.log(' ℹ️ Found element in chat messages (from previous init)');
2917
- }
2915
+ console.log(` - messages.querySelector(): ${element ? 'FOUND ✅' : 'not found'}`);
2918
2916
  }
2919
2917
 
2920
2918
  // If still not found, search entire document
2921
2919
  if (!element) {
2922
2920
  element = document.body.querySelector(selector);
2923
- if (element) {
2924
- console.log(' ℹ️ Found element in body (moved during cleanup)');
2925
- }
2921
+ console.log(` - body.querySelector(): ${element ? 'FOUND ✅' : 'not found'}`);
2926
2922
  }
2927
2923
 
2928
2924
  if (element) {
@@ -3274,6 +3270,26 @@ function init(flowName, flowConfig, options = {}) {
3274
3270
  elements.originalNextBtnText = 'Next';
3275
3271
  }
3276
3272
 
3273
+ // ✅ CRITICAL: Move back any injected elements BEFORE clearing innerHTML
3274
+ // This prevents elements from being permanently deleted on re-initialization
3275
+ const existingInjected = elements.messages.querySelectorAll('[data-chat-injected="true"]');
3276
+ if (existingInjected.length > 0) {
3277
+ console.log(` ↩️ Moving back ${existingInjected.length} injected element(s) before clearing (re-init)`);
3278
+ existingInjected.forEach(el => {
3279
+ el.style.display = 'none';
3280
+ el.removeAttribute('data-chat-injected');
3281
+
3282
+ // Move back to original parent
3283
+ if (el._originalParent && document.contains(el._originalParent)) {
3284
+ if (el._originalNextSibling && el._originalParent.contains(el._originalNextSibling)) {
3285
+ el._originalParent.insertBefore(el, el._originalNextSibling);
3286
+ } else {
3287
+ el._originalParent.appendChild(el);
3288
+ }
3289
+ }
3290
+ });
3291
+ }
3292
+
3277
3293
  elements.messages.innerHTML = '';
3278
3294
 
3279
3295
  elements.nextBtn.disabled = true;