@triagly/sdk 1.4.0-beta.6 → 1.4.0-beta.7

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/index.js CHANGED
@@ -2452,6 +2452,9 @@
2452
2452
  this.api = new TriaglyAPI(apiKey, this.config.environment || 'production', this.config.apiUrl, this.config.getToken, this.config.turnstileSiteKey);
2453
2453
  this.widget = new FeedbackWidget(this.config);
2454
2454
  this.rateLimiter = new RateLimiter(apiKey, 3, 5 * 60 * 1000);
2455
+ this.submitHandler = (e) => {
2456
+ this.handleSubmit(e.detail);
2457
+ };
2455
2458
  // Initialize console logger if enabled
2456
2459
  if (this.config.captureConsole !== false) {
2457
2460
  this.consoleLogger = new ConsoleLogger(this.config.consoleLogLimit, this.config.consoleLogLevels);
@@ -2473,11 +2476,11 @@
2473
2476
  // DOM is already ready
2474
2477
  this.widget.init();
2475
2478
  }
2476
- // Listen for form submissions
2477
- document.addEventListener('triagly:submit', (e) => {
2478
- const customEvent = e;
2479
- this.handleSubmit(customEvent.detail);
2480
- });
2479
+ // Remove any previously registered listener before adding a fresh one.
2480
+ // This prevents stacked listeners when the SDK is re-initialized (e.g. React
2481
+ // re-renders) which would cause duplicate submissions.
2482
+ document.removeEventListener('triagly:submit', this.submitHandler);
2483
+ document.addEventListener('triagly:submit', this.submitHandler);
2481
2484
  }
2482
2485
  /**
2483
2486
  * Handle feedback submission
@@ -2573,7 +2576,7 @@
2573
2576
  destroy() {
2574
2577
  this.widget.destroy();
2575
2578
  this.consoleLogger?.stop();
2576
- document.removeEventListener('triagly:submit', () => { });
2579
+ document.removeEventListener('triagly:submit', this.submitHandler);
2577
2580
  }
2578
2581
  }
2579
2582
  // Auto-initialize if config is in window