@parafin/core 3.2.0 → 3.2.1
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/index.ts +13 -2
- package/out/index.js +12 -2
- package/package.json +1 -1
package/index.ts
CHANGED
|
@@ -208,6 +208,7 @@ export const initializeParafinWidget = (
|
|
|
208
208
|
) => {
|
|
209
209
|
let initStartTime = Date.now()
|
|
210
210
|
let hasLoadedOnce = false
|
|
211
|
+
let wasEverHidden = document.hidden
|
|
211
212
|
|
|
212
213
|
// @ts-ignore
|
|
213
214
|
const url = new URL(props.widgetUrlOverride ?? 'https://widget.parafin.com')
|
|
@@ -287,7 +288,7 @@ export const initializeParafinWidget = (
|
|
|
287
288
|
}
|
|
288
289
|
break
|
|
289
290
|
case 'widget-load-complete':
|
|
290
|
-
if (props.onEvent && !hasLoadedOnce) {
|
|
291
|
+
if (props.onEvent && !hasLoadedOnce && !wasEverHidden) {
|
|
291
292
|
const timeToLoadInMs = Date.now() - initStartTime
|
|
292
293
|
props.onEvent('widget_loaded', { timeToLoadInMs })
|
|
293
294
|
}
|
|
@@ -297,7 +298,17 @@ export const initializeParafinWidget = (
|
|
|
297
298
|
}
|
|
298
299
|
}
|
|
299
300
|
|
|
301
|
+
const visibilityHandler = () => {
|
|
302
|
+
if (document.hidden) {
|
|
303
|
+
wasEverHidden = true
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
300
307
|
window.addEventListener('message', messageListener)
|
|
308
|
+
document.addEventListener('visibilitychange', visibilityHandler)
|
|
301
309
|
|
|
302
|
-
return () =>
|
|
310
|
+
return () => {
|
|
311
|
+
window.removeEventListener('message', messageListener)
|
|
312
|
+
document.removeEventListener('visibilitychange', visibilityHandler)
|
|
313
|
+
}
|
|
303
314
|
}
|
package/out/index.js
CHANGED
|
@@ -136,6 +136,7 @@ const emptyMetadata = {
|
|
|
136
136
|
export const initializeParafinWidget = (iframe, props) => {
|
|
137
137
|
let initStartTime = Date.now();
|
|
138
138
|
let hasLoadedOnce = false;
|
|
139
|
+
let wasEverHidden = document.hidden;
|
|
139
140
|
// @ts-ignore
|
|
140
141
|
const url = new URL(props.widgetUrlOverride ?? 'https://widget.parafin.com');
|
|
141
142
|
const query = {
|
|
@@ -215,7 +216,7 @@ export const initializeParafinWidget = (iframe, props) => {
|
|
|
215
216
|
}
|
|
216
217
|
break;
|
|
217
218
|
case 'widget-load-complete':
|
|
218
|
-
if (props.onEvent && !hasLoadedOnce) {
|
|
219
|
+
if (props.onEvent && !hasLoadedOnce && !wasEverHidden) {
|
|
219
220
|
const timeToLoadInMs = Date.now() - initStartTime;
|
|
220
221
|
props.onEvent('widget_loaded', { timeToLoadInMs });
|
|
221
222
|
}
|
|
@@ -224,6 +225,15 @@ export const initializeParafinWidget = (iframe, props) => {
|
|
|
224
225
|
}
|
|
225
226
|
}
|
|
226
227
|
};
|
|
228
|
+
const visibilityHandler = () => {
|
|
229
|
+
if (document.hidden) {
|
|
230
|
+
wasEverHidden = true;
|
|
231
|
+
}
|
|
232
|
+
};
|
|
227
233
|
window.addEventListener('message', messageListener);
|
|
228
|
-
|
|
234
|
+
document.addEventListener('visibilitychange', visibilityHandler);
|
|
235
|
+
return () => {
|
|
236
|
+
window.removeEventListener('message', messageListener);
|
|
237
|
+
document.removeEventListener('visibilitychange', visibilityHandler);
|
|
238
|
+
};
|
|
229
239
|
};
|