oneskies-live-chat-widget 0.1.6 → 0.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAYA,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAmFF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,SAAc,EAAE,EAAE,wBAAwB,2CA4EhG;AA8ID,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAA4B,EAC5B,YAA+B,GAChC,EAAE,mBAAmB,2CAqwCrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAYA,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAgHF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,SAAc,EAAE,EAAE,wBAAwB,2CA4EhG;AAuLD,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAA4B,EAC5B,YAA+B,GAChC,EAAE,mBAAmB,2CAo3CrB"}
package/dist/index.js CHANGED
@@ -10,6 +10,12 @@ const WS_RECONNECT_BASE_DELAY_MS = 650;
10
10
  const WS_RECONNECT_MAX_DELAY_MS = 12000;
11
11
  const WS_MAX_MESSAGE_CHARS = 128 * 1024;
12
12
  const LIVE_CHAT_BLOCKED_STATUS = 423;
13
+ const VISITOR_EVENT_QUEUE_LIMIT = 40;
14
+ const FIELD_VALUE_CACHE_LIMIT = 80;
15
+ const PAGE_URL_CACHE_LIMIT = 80;
16
+ const TOUCHED_FIELD_CACHE_LIMIT = 160;
17
+ const PAGE_URL_FALLBACK_POLL_MS = 2500;
18
+ const LIVE_CHAT_FIELD_INPUT_EVENT = "oneskies-live-chat:field-input";
13
19
  function toTitleCase(name) {
14
20
  return name.replace(/\S+/g, (word) => word
15
21
  .split(/(['-])/)
@@ -156,6 +162,52 @@ function liveChatTrackedFieldKey(element) {
156
162
  const fieldKey = element.name || element.id || element.getAttribute("aria-label") || placeholder || element.type || element.tagName;
157
163
  return `${formKey}:${fieldKey}`.slice(0, 220);
158
164
  }
165
+ function liveChatFieldLabel(element) {
166
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement))
167
+ return "Field";
168
+ const escapedId = element.id && typeof CSS !== "undefined" && "escape" in CSS ? CSS.escape(element.id) : "";
169
+ const explicitLabel = escapedId ? document.querySelector(`label[for="${escapedId}"]`)?.textContent?.trim() : "";
170
+ const wrappedLabel = element.closest("label")?.textContent?.trim() ?? "";
171
+ const placeholder = element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement ? element.placeholder : "";
172
+ return (explicitLabel || wrappedLabel || element.getAttribute("aria-label") || placeholder || element.name || element.id || "Field").replace(/\s+/g, " ").slice(0, 160);
173
+ }
174
+ function liveChatFieldValuePreview(element) {
175
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement))
176
+ return "";
177
+ const key = `${element.name} ${element.id} ${element.getAttribute("aria-label") ?? ""} ${element instanceof HTMLInputElement ? element.placeholder : ""}`.toLowerCase();
178
+ if (/(password|passcode|card|cc|cvv|cvc|security|ssn|social|secret|token)/.test(key))
179
+ return "[redacted]";
180
+ if (element instanceof HTMLInputElement && ["checkbox", "radio"].includes(element.type))
181
+ return element.checked ? "selected" : "cleared";
182
+ if (element instanceof HTMLSelectElement)
183
+ return element.selectedOptions[0]?.textContent?.trim().slice(0, 160) || element.value.slice(0, 160);
184
+ return element.value.trim().replace(/\s+/g, " ").slice(0, 160);
185
+ }
186
+ function rememberLatestFieldValue(cache, key, value) {
187
+ if (cache.get(key) === value)
188
+ return false;
189
+ cache.delete(key);
190
+ cache.set(key, value);
191
+ while (cache.size > FIELD_VALUE_CACHE_LIMIT) {
192
+ const oldest = cache.keys().next().value;
193
+ if (!oldest)
194
+ break;
195
+ cache.delete(oldest);
196
+ }
197
+ return true;
198
+ }
199
+ function rememberSetValue(cache, value, limit) {
200
+ if (!value)
201
+ return;
202
+ cache.delete(value);
203
+ cache.add(value);
204
+ while (cache.size > limit) {
205
+ const oldest = cache.values().next().value;
206
+ if (!oldest)
207
+ break;
208
+ cache.delete(oldest);
209
+ }
210
+ }
159
211
  function messageTime(value) {
160
212
  const date = new Date(value);
161
213
  if (Number.isNaN(date.getTime()))
@@ -267,6 +319,8 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
267
319
  const unreadPreviewTimeoutRef = useRef(null);
268
320
  const pageUrlsRef = useRef(new Set());
269
321
  const touchedFieldsRef = useRef(new Set());
322
+ const lastSentFieldValueRef = useRef(new Map());
323
+ const pendingVisitorEventsRef = useRef([]);
270
324
  const stateBroadcastTimeoutRef = useRef(null);
271
325
  const banReloadedRef = useRef(false);
272
326
  const baseUrl = useMemo(() => normalizedBaseUrl(apiBaseUrl), [apiBaseUrl]);
@@ -283,6 +337,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
283
337
  type: "state",
284
338
  open: openRef.current,
285
339
  page_url: currentUrl,
340
+ page_title: document.title || "",
286
341
  referrer_url: document.referrer || "",
287
342
  utm_source: liveChatQueryParam("utm_source"),
288
343
  utm_medium: liveChatQueryParam("utm_medium"),
@@ -291,6 +346,38 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
291
346
  fields_touched_count: touchedFieldsRef.current.size,
292
347
  };
293
348
  }
349
+ function buildVisitorEventPayload(payload) {
350
+ return {
351
+ type: "event",
352
+ page_url: payload.page_url ?? liveChatCurrentUrl(),
353
+ page_title: payload.page_title ?? document.title ?? "",
354
+ referrer_url: payload.referrer_url ?? document.referrer ?? "",
355
+ utm_source: liveChatQueryParam("utm_source"),
356
+ utm_medium: liveChatQueryParam("utm_medium"),
357
+ utm_campaign: liveChatQueryParam("utm_campaign"),
358
+ fields_touched_count: touchedFieldsRef.current.size,
359
+ page_view_count: Math.max(1, pageUrlsRef.current.size),
360
+ ...payload,
361
+ };
362
+ }
363
+ function flushVisitorEvents() {
364
+ const socket = wsRef.current;
365
+ if (socket?.readyState !== WebSocket.OPEN)
366
+ return;
367
+ const pending = pendingVisitorEventsRef.current.splice(0, 80);
368
+ for (const event of pending) {
369
+ socket.send(JSON.stringify(event));
370
+ }
371
+ }
372
+ function sendVisitorEvent(payload) {
373
+ const event = buildVisitorEventPayload(payload);
374
+ const socket = wsRef.current;
375
+ if (socket?.readyState !== WebSocket.OPEN) {
376
+ pendingVisitorEventsRef.current = [...pendingVisitorEventsRef.current.slice(-(VISITOR_EVENT_QUEUE_LIMIT - 1)), event];
377
+ return;
378
+ }
379
+ socket.send(JSON.stringify(event));
380
+ }
294
381
  function sendStateNow() {
295
382
  const socket = wsRef.current;
296
383
  if (socket?.readyState !== WebSocket.OPEN)
@@ -419,26 +506,80 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
419
506
  useEffect(() => {
420
507
  if (!session)
421
508
  return;
422
- pageUrlsRef.current.add(liveChatCurrentUrl());
509
+ pendingVisitorEventsRef.current = [];
510
+ lastSentFieldValueRef.current.clear();
511
+ rememberSetValue(pageUrlsRef.current, liveChatCurrentUrl(), PAGE_URL_CACHE_LIMIT);
423
512
  let lastUrl = liveChatCurrentUrl();
424
513
  function recordPageView() {
425
514
  const currentUrl = liveChatCurrentUrl();
426
515
  if (!currentUrl || currentUrl === lastUrl)
427
516
  return;
428
517
  lastUrl = currentUrl;
429
- pageUrlsRef.current.add(currentUrl);
518
+ rememberSetValue(pageUrlsRef.current, currentUrl, PAGE_URL_CACHE_LIMIT);
519
+ sendVisitorEvent({ event_type: "page_view", page_url: currentUrl });
430
520
  scheduleStateBroadcast(120);
431
521
  }
432
- function recordFieldTouch(event) {
522
+ function recordFieldTouched(event) {
433
523
  const target = event.target;
434
524
  if (!(target instanceof Element))
435
525
  return;
436
526
  const key = liveChatTrackedFieldKey(target);
437
- if (!key || touchedFieldsRef.current.has(key))
527
+ if (!key)
528
+ return;
529
+ const firstTouch = !touchedFieldsRef.current.has(key);
530
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
531
+ if (firstTouch)
532
+ scheduleStateBroadcast(220);
533
+ }
534
+ function recordFieldValue(target) {
535
+ if (!(target instanceof Element))
536
+ return;
537
+ const key = liveChatTrackedFieldKey(target);
538
+ if (!key)
539
+ return;
540
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
541
+ const valuePreview = liveChatFieldValuePreview(target);
542
+ const dedupeValue = `${liveChatCurrentUrl()}|${valuePreview}`;
543
+ if (!rememberLatestFieldValue(lastSentFieldValueRef.current, key, dedupeValue)) {
544
+ scheduleStateBroadcast(220);
545
+ return;
546
+ }
547
+ sendVisitorEvent({
548
+ event_type: "field_input",
549
+ field_key: key,
550
+ field_label: liveChatFieldLabel(target),
551
+ value_preview: valuePreview,
552
+ });
553
+ scheduleStateBroadcast(220);
554
+ }
555
+ function recordFieldValueEvent(event) {
556
+ recordFieldValue(event.target);
557
+ }
558
+ function recordCustomFieldValue(event) {
559
+ if (!(event instanceof CustomEvent))
560
+ return;
561
+ const detail = event.detail;
562
+ const key = String(detail?.key ?? "").trim();
563
+ if (!key)
438
564
  return;
439
- touchedFieldsRef.current.add(key);
565
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
566
+ const valuePreview = String(detail?.value ?? "").trim().replace(/\s+/g, " ").slice(0, 160);
567
+ const dedupeValue = `${liveChatCurrentUrl()}|${valuePreview}`;
568
+ if (!rememberLatestFieldValue(lastSentFieldValueRef.current, key, dedupeValue)) {
569
+ scheduleStateBroadcast(220);
570
+ return;
571
+ }
572
+ sendVisitorEvent({
573
+ event_type: "field_input",
574
+ field_key: key,
575
+ field_label: String(detail?.label ?? "").trim() || "Field",
576
+ value_preview: valuePreview,
577
+ });
440
578
  scheduleStateBroadcast(220);
441
579
  }
580
+ function flushFocusedField() {
581
+ recordFieldValue(document.activeElement);
582
+ }
442
583
  const originalPushState = window.history.pushState;
443
584
  const originalReplaceState = window.history.replaceState;
444
585
  window.history.pushState = function patchedPushState(...args) {
@@ -451,12 +592,16 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
451
592
  window.setTimeout(recordPageView, 0);
452
593
  return result;
453
594
  };
454
- const interval = window.setInterval(recordPageView, 1000);
595
+ const interval = window.setInterval(recordPageView, PAGE_URL_FALLBACK_POLL_MS);
455
596
  window.addEventListener("popstate", recordPageView);
456
597
  window.addEventListener("hashchange", recordPageView);
457
- document.addEventListener("focusin", recordFieldTouch, true);
458
- document.addEventListener("input", recordFieldTouch, true);
459
- document.addEventListener("change", recordFieldTouch, true);
598
+ window.addEventListener("pagehide", flushFocusedField);
599
+ window.addEventListener(LIVE_CHAT_FIELD_INPUT_EVENT, recordCustomFieldValue);
600
+ document.addEventListener("focusin", recordFieldTouched, true);
601
+ document.addEventListener("input", recordFieldTouched, true);
602
+ document.addEventListener("change", recordFieldValueEvent, true);
603
+ document.addEventListener("focusout", recordFieldValueEvent, true);
604
+ sendVisitorEvent({ event_type: "page_view", page_url: liveChatCurrentUrl() });
460
605
  scheduleStateBroadcast(350);
461
606
  return () => {
462
607
  window.history.pushState = originalPushState;
@@ -464,15 +609,26 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
464
609
  window.clearInterval(interval);
465
610
  window.removeEventListener("popstate", recordPageView);
466
611
  window.removeEventListener("hashchange", recordPageView);
467
- document.removeEventListener("focusin", recordFieldTouch, true);
468
- document.removeEventListener("input", recordFieldTouch, true);
469
- document.removeEventListener("change", recordFieldTouch, true);
612
+ window.removeEventListener("pagehide", flushFocusedField);
613
+ window.removeEventListener(LIVE_CHAT_FIELD_INPUT_EVENT, recordCustomFieldValue);
614
+ document.removeEventListener("focusin", recordFieldTouched, true);
615
+ document.removeEventListener("input", recordFieldTouched, true);
616
+ document.removeEventListener("change", recordFieldValueEvent, true);
617
+ document.removeEventListener("focusout", recordFieldValueEvent, true);
470
618
  if (stateBroadcastTimeoutRef.current) {
471
619
  window.clearTimeout(stateBroadcastTimeoutRef.current);
472
620
  stateBroadcastTimeoutRef.current = null;
473
621
  }
474
622
  };
475
623
  }, [session]);
624
+ useEffect(() => {
625
+ if (session)
626
+ return;
627
+ pendingVisitorEventsRef.current = [];
628
+ lastSentFieldValueRef.current.clear();
629
+ touchedFieldsRef.current.clear();
630
+ pageUrlsRef.current.clear();
631
+ }, [session]);
476
632
  useEffect(() => {
477
633
  if (!profileReady || session || !profile)
478
634
  return;
@@ -586,6 +742,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
586
742
  return;
587
743
  reconnectAttempts = 0;
588
744
  sendStateNow();
745
+ flushVisitorEvents();
589
746
  };
590
747
  socket.onmessage = (event) => {
591
748
  if (cancelled || activeSocket !== socket)
@@ -666,7 +823,12 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
666
823
  api_key: apiKey,
667
824
  client_id: clientId,
668
825
  }).toString()}`;
669
- const body = JSON.stringify({ client_id: clientId });
826
+ const body = JSON.stringify({
827
+ client_id: clientId,
828
+ page_url: liveChatCurrentUrl(),
829
+ page_title: document.title || "",
830
+ referrer_url: document.referrer || "",
831
+ });
670
832
  if (typeof navigator !== "undefined" && "sendBeacon" in navigator) {
671
833
  const blob = new Blob([body], { type: "application/json" });
672
834
  navigator.sendBeacon(url, blob);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oneskies-live-chat-widget",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/src/index.tsx CHANGED
@@ -61,6 +61,7 @@ type LiveChatStatePayload = {
61
61
  type: "state";
62
62
  open: boolean;
63
63
  page_url: string;
64
+ page_title: string;
64
65
  referrer_url: string;
65
66
  utm_source: string;
66
67
  utm_medium: string;
@@ -69,6 +70,28 @@ type LiveChatStatePayload = {
69
70
  fields_touched_count: number;
70
71
  };
71
72
 
73
+ type LiveChatVisitorEventPayload = {
74
+ type: "event";
75
+ event_type: "page_view" | "field_input" | "session_end";
76
+ page_url: string;
77
+ page_title: string;
78
+ referrer_url: string;
79
+ utm_source: string;
80
+ utm_medium: string;
81
+ utm_campaign: string;
82
+ field_key?: string;
83
+ field_label?: string;
84
+ value_preview?: string;
85
+ fields_touched_count: number;
86
+ page_view_count: number;
87
+ };
88
+
89
+ type LiveChatTrackedFieldInput = {
90
+ key: string;
91
+ label: string;
92
+ value: string;
93
+ };
94
+
72
95
  type StoredProfile = {
73
96
  name: string;
74
97
  visitorId: string;
@@ -82,6 +105,12 @@ const WS_RECONNECT_BASE_DELAY_MS = 650;
82
105
  const WS_RECONNECT_MAX_DELAY_MS = 12_000;
83
106
  const WS_MAX_MESSAGE_CHARS = 128 * 1024;
84
107
  const LIVE_CHAT_BLOCKED_STATUS = 423;
108
+ const VISITOR_EVENT_QUEUE_LIMIT = 40;
109
+ const FIELD_VALUE_CACHE_LIMIT = 80;
110
+ const PAGE_URL_CACHE_LIMIT = 80;
111
+ const TOUCHED_FIELD_CACHE_LIMIT = 160;
112
+ const PAGE_URL_FALLBACK_POLL_MS = 2500;
113
+ const LIVE_CHAT_FIELD_INPUT_EVENT = "oneskies-live-chat:field-input";
85
114
 
86
115
  function toTitleCase(name: string): string {
87
116
  return name.replace(/\S+/g, (word) =>
@@ -250,6 +279,47 @@ function liveChatTrackedFieldKey(element: Element): string {
250
279
  return `${formKey}:${fieldKey}`.slice(0, 220);
251
280
  }
252
281
 
282
+ function liveChatFieldLabel(element: Element): string {
283
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement)) return "Field";
284
+ const escapedId = element.id && typeof CSS !== "undefined" && "escape" in CSS ? CSS.escape(element.id) : "";
285
+ const explicitLabel = escapedId ? document.querySelector(`label[for="${escapedId}"]`)?.textContent?.trim() : "";
286
+ const wrappedLabel = element.closest("label")?.textContent?.trim() ?? "";
287
+ const placeholder = element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement ? element.placeholder : "";
288
+ return (explicitLabel || wrappedLabel || element.getAttribute("aria-label") || placeholder || element.name || element.id || "Field").replace(/\s+/g, " ").slice(0, 160);
289
+ }
290
+
291
+ function liveChatFieldValuePreview(element: Element): string {
292
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement)) return "";
293
+ const key = `${element.name} ${element.id} ${element.getAttribute("aria-label") ?? ""} ${element instanceof HTMLInputElement ? element.placeholder : ""}`.toLowerCase();
294
+ if (/(password|passcode|card|cc|cvv|cvc|security|ssn|social|secret|token)/.test(key)) return "[redacted]";
295
+ if (element instanceof HTMLInputElement && ["checkbox", "radio"].includes(element.type)) return element.checked ? "selected" : "cleared";
296
+ if (element instanceof HTMLSelectElement) return element.selectedOptions[0]?.textContent?.trim().slice(0, 160) || element.value.slice(0, 160);
297
+ return element.value.trim().replace(/\s+/g, " ").slice(0, 160);
298
+ }
299
+
300
+ function rememberLatestFieldValue(cache: Map<string, string>, key: string, value: string): boolean {
301
+ if (cache.get(key) === value) return false;
302
+ cache.delete(key);
303
+ cache.set(key, value);
304
+ while (cache.size > FIELD_VALUE_CACHE_LIMIT) {
305
+ const oldest = cache.keys().next().value;
306
+ if (!oldest) break;
307
+ cache.delete(oldest);
308
+ }
309
+ return true;
310
+ }
311
+
312
+ function rememberSetValue(cache: Set<string>, value: string, limit: number) {
313
+ if (!value) return;
314
+ cache.delete(value);
315
+ cache.add(value);
316
+ while (cache.size > limit) {
317
+ const oldest = cache.values().next().value;
318
+ if (!oldest) break;
319
+ cache.delete(oldest);
320
+ }
321
+ }
322
+
253
323
  function messageTime(value: string): string {
254
324
  const date = new Date(value);
255
325
  if (Number.isNaN(date.getTime())) return "";
@@ -369,6 +439,8 @@ export function LiveChatWidget({
369
439
  const unreadPreviewTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
370
440
  const pageUrlsRef = useRef<Set<string>>(new Set());
371
441
  const touchedFieldsRef = useRef<Set<string>>(new Set());
442
+ const lastSentFieldValueRef = useRef<Map<string, string>>(new Map());
443
+ const pendingVisitorEventsRef = useRef<LiveChatVisitorEventPayload[]>([]);
372
444
  const stateBroadcastTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
373
445
  const banReloadedRef = useRef(false);
374
446
 
@@ -386,6 +458,7 @@ export function LiveChatWidget({
386
458
  type: "state",
387
459
  open: openRef.current,
388
460
  page_url: currentUrl,
461
+ page_title: document.title || "",
389
462
  referrer_url: document.referrer || "",
390
463
  utm_source: liveChatQueryParam("utm_source"),
391
464
  utm_medium: liveChatQueryParam("utm_medium"),
@@ -395,6 +468,40 @@ export function LiveChatWidget({
395
468
  };
396
469
  }
397
470
 
471
+ function buildVisitorEventPayload(payload: Omit<LiveChatVisitorEventPayload, "type" | "page_url" | "page_title" | "referrer_url" | "utm_source" | "utm_medium" | "utm_campaign" | "fields_touched_count" | "page_view_count"> & Partial<Pick<LiveChatVisitorEventPayload, "page_url" | "page_title" | "referrer_url">>): LiveChatVisitorEventPayload {
472
+ return {
473
+ type: "event",
474
+ page_url: payload.page_url ?? liveChatCurrentUrl(),
475
+ page_title: payload.page_title ?? document.title ?? "",
476
+ referrer_url: payload.referrer_url ?? document.referrer ?? "",
477
+ utm_source: liveChatQueryParam("utm_source"),
478
+ utm_medium: liveChatQueryParam("utm_medium"),
479
+ utm_campaign: liveChatQueryParam("utm_campaign"),
480
+ fields_touched_count: touchedFieldsRef.current.size,
481
+ page_view_count: Math.max(1, pageUrlsRef.current.size),
482
+ ...payload,
483
+ };
484
+ }
485
+
486
+ function flushVisitorEvents() {
487
+ const socket = wsRef.current;
488
+ if (socket?.readyState !== WebSocket.OPEN) return;
489
+ const pending = pendingVisitorEventsRef.current.splice(0, 80);
490
+ for (const event of pending) {
491
+ socket.send(JSON.stringify(event));
492
+ }
493
+ }
494
+
495
+ function sendVisitorEvent(payload: Parameters<typeof buildVisitorEventPayload>[0]) {
496
+ const event = buildVisitorEventPayload(payload);
497
+ const socket = wsRef.current;
498
+ if (socket?.readyState !== WebSocket.OPEN) {
499
+ pendingVisitorEventsRef.current = [...pendingVisitorEventsRef.current.slice(-(VISITOR_EVENT_QUEUE_LIMIT - 1)), event];
500
+ return;
501
+ }
502
+ socket.send(JSON.stringify(event));
503
+ }
504
+
398
505
  function sendStateNow() {
399
506
  const socket = wsRef.current;
400
507
  if (socket?.readyState !== WebSocket.OPEN) return;
@@ -518,26 +625,79 @@ export function LiveChatWidget({
518
625
 
519
626
  useEffect(() => {
520
627
  if (!session) return;
521
- pageUrlsRef.current.add(liveChatCurrentUrl());
628
+ pendingVisitorEventsRef.current = [];
629
+ lastSentFieldValueRef.current.clear();
630
+ rememberSetValue(pageUrlsRef.current, liveChatCurrentUrl(), PAGE_URL_CACHE_LIMIT);
522
631
  let lastUrl = liveChatCurrentUrl();
523
632
 
524
633
  function recordPageView() {
525
634
  const currentUrl = liveChatCurrentUrl();
526
635
  if (!currentUrl || currentUrl === lastUrl) return;
527
636
  lastUrl = currentUrl;
528
- pageUrlsRef.current.add(currentUrl);
637
+ rememberSetValue(pageUrlsRef.current, currentUrl, PAGE_URL_CACHE_LIMIT);
638
+ sendVisitorEvent({ event_type: "page_view", page_url: currentUrl });
529
639
  scheduleStateBroadcast(120);
530
640
  }
531
641
 
532
- function recordFieldTouch(event: Event) {
642
+ function recordFieldTouched(event: Event) {
533
643
  const target = event.target;
534
644
  if (!(target instanceof Element)) return;
535
645
  const key = liveChatTrackedFieldKey(target);
536
- if (!key || touchedFieldsRef.current.has(key)) return;
537
- touchedFieldsRef.current.add(key);
646
+ if (!key) return;
647
+ const firstTouch = !touchedFieldsRef.current.has(key);
648
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
649
+ if (firstTouch) scheduleStateBroadcast(220);
650
+ }
651
+
652
+ function recordFieldValue(target: EventTarget | null) {
653
+ if (!(target instanceof Element)) return;
654
+ const key = liveChatTrackedFieldKey(target);
655
+ if (!key) return;
656
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
657
+ const valuePreview = liveChatFieldValuePreview(target);
658
+ const dedupeValue = `${liveChatCurrentUrl()}|${valuePreview}`;
659
+ if (!rememberLatestFieldValue(lastSentFieldValueRef.current, key, dedupeValue)) {
660
+ scheduleStateBroadcast(220);
661
+ return;
662
+ }
663
+ sendVisitorEvent({
664
+ event_type: "field_input",
665
+ field_key: key,
666
+ field_label: liveChatFieldLabel(target),
667
+ value_preview: valuePreview,
668
+ });
538
669
  scheduleStateBroadcast(220);
539
670
  }
540
671
 
672
+ function recordFieldValueEvent(event: Event) {
673
+ recordFieldValue(event.target);
674
+ }
675
+
676
+ function recordCustomFieldValue(event: Event) {
677
+ if (!(event instanceof CustomEvent)) return;
678
+ const detail = event.detail as Partial<LiveChatTrackedFieldInput> | undefined;
679
+ const key = String(detail?.key ?? "").trim();
680
+ if (!key) return;
681
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
682
+ const valuePreview = String(detail?.value ?? "").trim().replace(/\s+/g, " ").slice(0, 160);
683
+ const dedupeValue = `${liveChatCurrentUrl()}|${valuePreview}`;
684
+ if (!rememberLatestFieldValue(lastSentFieldValueRef.current, key, dedupeValue)) {
685
+ scheduleStateBroadcast(220);
686
+ return;
687
+ }
688
+ sendVisitorEvent({
689
+ event_type: "field_input",
690
+ field_key: key,
691
+ field_label: String(detail?.label ?? "").trim() || "Field",
692
+ value_preview: valuePreview,
693
+ });
694
+ scheduleStateBroadcast(220);
695
+ }
696
+
697
+ function flushFocusedField() {
698
+ recordFieldValue(document.activeElement);
699
+ }
700
+
541
701
  const originalPushState = window.history.pushState;
542
702
  const originalReplaceState = window.history.replaceState;
543
703
  window.history.pushState = function patchedPushState(...args) {
@@ -550,12 +710,16 @@ export function LiveChatWidget({
550
710
  window.setTimeout(recordPageView, 0);
551
711
  return result;
552
712
  };
553
- const interval = window.setInterval(recordPageView, 1000);
713
+ const interval = window.setInterval(recordPageView, PAGE_URL_FALLBACK_POLL_MS);
554
714
  window.addEventListener("popstate", recordPageView);
555
715
  window.addEventListener("hashchange", recordPageView);
556
- document.addEventListener("focusin", recordFieldTouch, true);
557
- document.addEventListener("input", recordFieldTouch, true);
558
- document.addEventListener("change", recordFieldTouch, true);
716
+ window.addEventListener("pagehide", flushFocusedField);
717
+ window.addEventListener(LIVE_CHAT_FIELD_INPUT_EVENT, recordCustomFieldValue);
718
+ document.addEventListener("focusin", recordFieldTouched, true);
719
+ document.addEventListener("input", recordFieldTouched, true);
720
+ document.addEventListener("change", recordFieldValueEvent, true);
721
+ document.addEventListener("focusout", recordFieldValueEvent, true);
722
+ sendVisitorEvent({ event_type: "page_view", page_url: liveChatCurrentUrl() });
559
723
  scheduleStateBroadcast(350);
560
724
  return () => {
561
725
  window.history.pushState = originalPushState;
@@ -563,9 +727,12 @@ export function LiveChatWidget({
563
727
  window.clearInterval(interval);
564
728
  window.removeEventListener("popstate", recordPageView);
565
729
  window.removeEventListener("hashchange", recordPageView);
566
- document.removeEventListener("focusin", recordFieldTouch, true);
567
- document.removeEventListener("input", recordFieldTouch, true);
568
- document.removeEventListener("change", recordFieldTouch, true);
730
+ window.removeEventListener("pagehide", flushFocusedField);
731
+ window.removeEventListener(LIVE_CHAT_FIELD_INPUT_EVENT, recordCustomFieldValue);
732
+ document.removeEventListener("focusin", recordFieldTouched, true);
733
+ document.removeEventListener("input", recordFieldTouched, true);
734
+ document.removeEventListener("change", recordFieldValueEvent, true);
735
+ document.removeEventListener("focusout", recordFieldValueEvent, true);
569
736
  if (stateBroadcastTimeoutRef.current) {
570
737
  window.clearTimeout(stateBroadcastTimeoutRef.current);
571
738
  stateBroadcastTimeoutRef.current = null;
@@ -573,6 +740,14 @@ export function LiveChatWidget({
573
740
  };
574
741
  }, [session]);
575
742
 
743
+ useEffect(() => {
744
+ if (session) return;
745
+ pendingVisitorEventsRef.current = [];
746
+ lastSentFieldValueRef.current.clear();
747
+ touchedFieldsRef.current.clear();
748
+ pageUrlsRef.current.clear();
749
+ }, [session]);
750
+
576
751
  useEffect(() => {
577
752
  if (!profileReady || session || !profile) return;
578
753
  if (startSessionRef.current) return;
@@ -673,6 +848,7 @@ export function LiveChatWidget({
673
848
  if (cancelled || activeSocket !== socket) return;
674
849
  reconnectAttempts = 0;
675
850
  sendStateNow();
851
+ flushVisitorEvents();
676
852
  };
677
853
  socket.onmessage = (event) => {
678
854
  if (cancelled || activeSocket !== socket) return;
@@ -745,7 +921,12 @@ export function LiveChatWidget({
745
921
  api_key: apiKey,
746
922
  client_id: clientId,
747
923
  }).toString()}`;
748
- const body = JSON.stringify({ client_id: clientId });
924
+ const body = JSON.stringify({
925
+ client_id: clientId,
926
+ page_url: liveChatCurrentUrl(),
927
+ page_title: document.title || "",
928
+ referrer_url: document.referrer || "",
929
+ });
749
930
  if (typeof navigator !== "undefined" && "sendBeacon" in navigator) {
750
931
  const blob = new Blob([body], { type: "application/json" });
751
932
  navigator.sendBeacon(url, blob);