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