@amplifyup/sdk 0.1.21 → 0.1.22
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/AmplifyRenderer.js +33 -3
- package/dist/AmplifyRenderer.js.map +1 -1
- package/dist/AmplifyRenderer.mjs +33 -3
- package/dist/AmplifyRenderer.mjs.map +1 -1
- package/dist/index.d.mts +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +34 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +34 -4
- package/dist/index.mjs.map +1 -1
- package/dist/react.js +33 -3
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +33 -3
- package/dist/react.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react.mjs
CHANGED
|
@@ -310,6 +310,7 @@ function isComposerPreview() {
|
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
// src/index.ts
|
|
313
|
+
var SESSION_IDLE_GAP_MS = 30 * 60 * 1e3;
|
|
313
314
|
function readPreviewQueryOverrides() {
|
|
314
315
|
if (typeof window === "undefined") return {};
|
|
315
316
|
const params = new URLSearchParams(window.location.search);
|
|
@@ -376,7 +377,9 @@ var AmplifyUpSDK = class {
|
|
|
376
377
|
reached: /* @__PURE__ */ new Set(),
|
|
377
378
|
visibleMs: 0,
|
|
378
379
|
visibleSince: null,
|
|
379
|
-
lastDwellSecondsSent: 0
|
|
380
|
+
lastDwellSecondsSent: 0,
|
|
381
|
+
/** When the tab last became hidden — used for idle-resume re-page. */
|
|
382
|
+
hiddenAt: null
|
|
380
383
|
};
|
|
381
384
|
this.adapter = adapter || new AWSAdapter();
|
|
382
385
|
if (typeof window !== "undefined") {
|
|
@@ -607,6 +610,7 @@ var AmplifyUpSDK = class {
|
|
|
607
610
|
state.visibleMs = 0;
|
|
608
611
|
state.visibleSince = document.visibilityState === "visible" ? Date.now() : null;
|
|
609
612
|
state.lastDwellSecondsSent = 0;
|
|
613
|
+
state.hiddenAt = document.visibilityState === "hidden" ? Date.now() : null;
|
|
610
614
|
let scrollRaf = null;
|
|
611
615
|
const path = () => this.currentPath();
|
|
612
616
|
const measureScrollPercent = () => {
|
|
@@ -649,12 +653,12 @@ var AmplifyUpSDK = class {
|
|
|
649
653
|
state.visibleMs += Date.now() - state.visibleSince;
|
|
650
654
|
state.visibleSince = Date.now();
|
|
651
655
|
};
|
|
652
|
-
const emitDwell = (
|
|
656
|
+
const emitDwell = (_force = false) => {
|
|
653
657
|
if (this.isPreviewMode()) return;
|
|
654
658
|
accumulateVisible();
|
|
655
659
|
const seconds = Math.floor(state.visibleMs / 1e3);
|
|
656
660
|
if (seconds <= 0) return;
|
|
657
|
-
if (
|
|
661
|
+
if (seconds <= state.lastDwellSecondsSent) return;
|
|
658
662
|
state.lastDwellSecondsSent = seconds;
|
|
659
663
|
this.track("Time on Page", {
|
|
660
664
|
seconds,
|
|
@@ -664,14 +668,34 @@ var AmplifyUpSDK = class {
|
|
|
664
668
|
this._emitPageDwell = emitDwell;
|
|
665
669
|
const onVisibility = () => {
|
|
666
670
|
if (document.visibilityState === "visible") {
|
|
671
|
+
const idleMs = state.hiddenAt != null ? Date.now() - state.hiddenAt : 0;
|
|
672
|
+
state.hiddenAt = null;
|
|
673
|
+
if (idleMs >= SESSION_IDLE_GAP_MS) {
|
|
674
|
+
this.resetEngagementQuiet();
|
|
675
|
+
const resumePath = path();
|
|
676
|
+
this.page(resumePath, { resumed: true });
|
|
677
|
+
this.lastTrackedPath = resumePath;
|
|
678
|
+
if (this.config?.debug) {
|
|
679
|
+
console.log(
|
|
680
|
+
"[AmplifyUp SDK] Idle resume page view",
|
|
681
|
+
resumePath,
|
|
682
|
+
`(hidden ${Math.round(idleMs / 6e4)}m)`
|
|
683
|
+
);
|
|
684
|
+
}
|
|
685
|
+
}
|
|
667
686
|
state.visibleSince = Date.now();
|
|
668
687
|
} else {
|
|
669
688
|
emitDwell(true);
|
|
689
|
+
state.hiddenAt = Date.now();
|
|
670
690
|
state.visibleSince = null;
|
|
671
691
|
}
|
|
672
692
|
};
|
|
673
693
|
const onPageHide = () => {
|
|
674
694
|
emitDwell(true);
|
|
695
|
+
if (state.hiddenAt == null) {
|
|
696
|
+
state.hiddenAt = Date.now();
|
|
697
|
+
}
|
|
698
|
+
state.visibleSince = null;
|
|
675
699
|
};
|
|
676
700
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
677
701
|
document.addEventListener("visibilitychange", onVisibility);
|
|
@@ -700,13 +724,19 @@ var AmplifyUpSDK = class {
|
|
|
700
724
|
console.log("[AmplifyUp SDK] Page engagement tracking enabled");
|
|
701
725
|
}
|
|
702
726
|
}
|
|
727
|
+
/** Flush dwell then reset — used on SPA route changes. */
|
|
703
728
|
resetEngagementForNewPage() {
|
|
704
729
|
const emit = this._emitPageDwell;
|
|
705
730
|
emit?.(true);
|
|
731
|
+
this.resetEngagementQuiet();
|
|
732
|
+
}
|
|
733
|
+
/** Reset dwell/scroll state without emitting (idle resume already flushed on hide). */
|
|
734
|
+
resetEngagementQuiet() {
|
|
706
735
|
const state = this.pageEngagementState;
|
|
707
736
|
state.reached = /* @__PURE__ */ new Set();
|
|
708
737
|
state.visibleMs = 0;
|
|
709
738
|
state.lastDwellSecondsSent = 0;
|
|
739
|
+
state.hiddenAt = null;
|
|
710
740
|
state.visibleSince = typeof document !== "undefined" && document.visibilityState === "visible" ? Date.now() : null;
|
|
711
741
|
this.componentViewSeen.clear();
|
|
712
742
|
}
|