@nommos/core 0.0.44 → 0.0.45
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/README.md +83 -0
- package/package.json +1 -1
- package/src/lib/constants.d.ts +8 -7
- package/src/lib/constants.js +6 -5
- package/src/lib/constants.js.map +1 -1
- package/src/lib/popup-inbox.d.ts +35 -1
- package/src/lib/popup-inbox.js +94 -26
- package/src/lib/popup-inbox.js.map +1 -1
- package/src/lib/popup-viewer.d.ts +107 -54
- package/src/lib/popup-viewer.js +479 -287
- package/src/lib/popup-viewer.js.map +1 -1
- package/src/lib/relative-time.d.ts +40 -0
- package/src/lib/relative-time.js +59 -0
- package/src/lib/relative-time.js.map +1 -0
- package/src/lib/types.d.ts +11 -0
package/README.md
CHANGED
|
@@ -291,6 +291,89 @@ userAgentInfo("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHT
|
|
|
291
291
|
userAgentInfo("Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36");
|
|
292
292
|
// Returns: {browser: "Chrome 114", os: "Android 10", channel: 3 }
|
|
293
293
|
```
|
|
294
|
+
## Web Popups
|
|
295
|
+
|
|
296
|
+
CRM web popups are delivered to a visitor's inbox and surfaced by the SDK itself. Nothing here runs
|
|
297
|
+
before **marketing consent** is granted.
|
|
298
|
+
|
|
299
|
+
### The notification tray
|
|
300
|
+
|
|
301
|
+
Clicking the bell opens a **tray** listing what is waiting — title, preview, relative time, and an
|
|
302
|
+
unread dot — and the visitor picks which one to open. From the tray they can also mark everything as
|
|
303
|
+
seen, dismiss a single message, or mute the arrival chime.
|
|
304
|
+
|
|
305
|
+
Two things are deliberately *not* true of the tray:
|
|
306
|
+
|
|
307
|
+
- **Opening it does not mark anything as read.** Seeing a title in a list is not reading the message,
|
|
308
|
+
so the tray issues no `view` call and reports no engagement against any popup. Only opening a
|
|
309
|
+
popup does that.
|
|
310
|
+
- **There is no "clear all".** Dismissing is terminal — it means *never show me this again* — so it
|
|
311
|
+
is offered per message rather than as one sweeping click.
|
|
312
|
+
|
|
313
|
+
A popup sent at `HIGH` or `CRITICAL` priority still opens by itself, bypassing the tray. That is what
|
|
314
|
+
those priorities are for.
|
|
315
|
+
|
|
316
|
+
### Placement: the anchor is required
|
|
317
|
+
|
|
318
|
+
**The bell renders only where you put it.** Mark a slot on your own page:
|
|
319
|
+
|
|
320
|
+
```html
|
|
321
|
+
<header>
|
|
322
|
+
<span data-nommos-notification-anchor></span>
|
|
323
|
+
</header>
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
The launcher mounts inside that element, carries no surface of its own, and inherits your text
|
|
327
|
+
colour so it sits among your existing header icons rather than on top of them. The anchor is
|
|
328
|
+
followed for the life of the page, so an SPA that renders its header after the SDK boots still
|
|
329
|
+
works, and removing the anchor takes the bell down with it.
|
|
330
|
+
|
|
331
|
+
> **With no anchor there is no bell and no tray.** There is deliberately no floating-corner
|
|
332
|
+
> fallback: putting a permanent button on your page is your decision, not ours.
|
|
333
|
+
>
|
|
334
|
+
> Popups still arrive and still auto-open as modals — only the persistent entry point is withheld.
|
|
335
|
+
> The cost is that a popup the visitor *closes* (rather than dismisses) has no way back until the
|
|
336
|
+
> next page load, unless you call `openViewer()` yourself. If you want visitors to be able to
|
|
337
|
+
> revisit messages, add an anchor.
|
|
338
|
+
|
|
339
|
+
Once anchored, the bell is permanent — it stays put even when everything has been read. Vacating a
|
|
340
|
+
slot you reserved would collapse your layout around the gap, and chrome that vanishes reads as
|
|
341
|
+
broken rather than as tidy.
|
|
342
|
+
|
|
343
|
+
The tray opens downward from the bell, flipping upward when there is not enough room below (a footer
|
|
344
|
+
or bottom bar).
|
|
345
|
+
|
|
346
|
+
> **Requirement:** the anchor element must not sit inside an ancestor carrying `transform`, `filter`
|
|
347
|
+
> or `contain`. The tray and the modal are both `position: fixed`, which escapes `overflow: hidden`
|
|
348
|
+
> — a sticky header clipping its overflow is fine — but not a new containing block. A `transform`ed
|
|
349
|
+
> ancestor will clip them.
|
|
350
|
+
|
|
351
|
+
### Styling hooks
|
|
352
|
+
|
|
353
|
+
The launcher and tray expose CSS `part`s, so you can restyle them from your own page without
|
|
354
|
+
reaching into the shadow root:
|
|
355
|
+
|
|
356
|
+
| Part | What it is |
|
|
357
|
+
|------|-----------|
|
|
358
|
+
| `launcher-wrap` | Positioning wrapper around the bell |
|
|
359
|
+
| `launcher` | The bell button itself |
|
|
360
|
+
| `tray` | The notification panel |
|
|
361
|
+
|
|
362
|
+
### API
|
|
363
|
+
|
|
364
|
+
| Method | Description |
|
|
365
|
+
|--------|-------------|
|
|
366
|
+
| `openViewer(popupId?)` | Opens a popup directly, bypassing the tray. Defaults to the highest-ranked one. |
|
|
367
|
+
| `getInbox()` | Returns `WebPopupInboxState` — the current items and their unread count. |
|
|
368
|
+
| `setPopupSoundEnabled(enabled)` | Mutes or unmutes the arrival chime. Visitor-level, persisted in `localStorage`. |
|
|
369
|
+
|
|
370
|
+
```ts
|
|
371
|
+
const { items, unreadCount } = tracker.getInbox();
|
|
372
|
+
if (unreadCount > 0) {
|
|
373
|
+
await tracker.openViewer(items[0].id);
|
|
374
|
+
}
|
|
375
|
+
```
|
|
376
|
+
|
|
294
377
|
## Classes
|
|
295
378
|
|
|
296
379
|
### `Class: DataAttribution`
|
package/package.json
CHANGED
package/src/lib/constants.d.ts
CHANGED
|
@@ -39,12 +39,10 @@ export declare const POPUP_TOPIC_PREFIX = "/topic/tracking.popups";
|
|
|
39
39
|
* Bumped whenever the cached inbox shape changes, so an SDK upgrade discards stale entries
|
|
40
40
|
* rather than misreading them.
|
|
41
41
|
*/
|
|
42
|
-
export declare const POPUP_CACHE_VERSION = "
|
|
43
|
-
export declare const POPUP_INBOX_CACHE_KEY = "nommos:popup:inbox:
|
|
42
|
+
export declare const POPUP_CACHE_VERSION = "v2";
|
|
43
|
+
export declare const POPUP_INBOX_CACHE_KEY = "nommos:popup:inbox:v2";
|
|
44
44
|
/** Guards the one auto-open per page visit. */
|
|
45
|
-
export declare const POPUP_AUTO_OPEN_KEY = "nommos:popup:autoOpened:
|
|
46
|
-
/** Set when the visitor hides the launcher; cleared when a genuinely new popup arrives. */
|
|
47
|
-
export declare const POPUP_LAUNCHER_HIDDEN_KEY = "nommos:popup:launcherHidden:v1";
|
|
45
|
+
export declare const POPUP_AUTO_OPEN_KEY = "nommos:popup:autoOpened:v2";
|
|
48
46
|
/** Visitor-level mute for the arrival chime. `localStorage`, so it outlives the tab. */
|
|
49
47
|
export declare const POPUP_SOUND_KEY = "nommos:popup:sound";
|
|
50
48
|
/**
|
|
@@ -64,8 +62,11 @@ export declare const POPUP_MAX_ITEMS = 3;
|
|
|
64
62
|
/** Below this width the mobile variant is used. */
|
|
65
63
|
export declare const POPUP_MOBILE_BREAKPOINT_PX = 768;
|
|
66
64
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
65
|
+
* Marker an integrator places on their own page to say where the notification bell should live.
|
|
66
|
+
*
|
|
67
|
+
* <p>Required, not optional: with no match the SDK renders no launcher and no tray at all. There is
|
|
68
|
+
* deliberately no corner fallback — parking a bell on someone else's page is their decision to make,
|
|
69
|
+
* not ours. Popups still arrive and still auto-open; only the persistent entry point is withheld.
|
|
69
70
|
*/
|
|
70
71
|
export declare const POPUP_ANCHOR_SELECTOR = "[data-nommos-notification-anchor]";
|
|
71
72
|
export declare const ACTIVE_AD_ID_KEY = "nommos:ad:id";
|
package/src/lib/constants.js
CHANGED
|
@@ -53,12 +53,10 @@ export const POPUP_TOPIC_PREFIX = '/topic/tracking.popups';
|
|
|
53
53
|
* Bumped whenever the cached inbox shape changes, so an SDK upgrade discards stale entries
|
|
54
54
|
* rather than misreading them.
|
|
55
55
|
*/
|
|
56
|
-
export const POPUP_CACHE_VERSION = '
|
|
56
|
+
export const POPUP_CACHE_VERSION = 'v2';
|
|
57
57
|
export const POPUP_INBOX_CACHE_KEY = `nommos:popup:inbox:${POPUP_CACHE_VERSION}`;
|
|
58
58
|
/** Guards the one auto-open per page visit. */
|
|
59
59
|
export const POPUP_AUTO_OPEN_KEY = `nommos:popup:autoOpened:${POPUP_CACHE_VERSION}`;
|
|
60
|
-
/** Set when the visitor hides the launcher; cleared when a genuinely new popup arrives. */
|
|
61
|
-
export const POPUP_LAUNCHER_HIDDEN_KEY = `nommos:popup:launcherHidden:${POPUP_CACHE_VERSION}`;
|
|
62
60
|
/** Visitor-level mute for the arrival chime. `localStorage`, so it outlives the tab. */
|
|
63
61
|
export const POPUP_SOUND_KEY = 'nommos:popup:sound';
|
|
64
62
|
/**
|
|
@@ -78,8 +76,11 @@ export const POPUP_MAX_ITEMS = 3;
|
|
|
78
76
|
/** Below this width the mobile variant is used. */
|
|
79
77
|
export const POPUP_MOBILE_BREAKPOINT_PX = 768;
|
|
80
78
|
/**
|
|
81
|
-
*
|
|
82
|
-
*
|
|
79
|
+
* Marker an integrator places on their own page to say where the notification bell should live.
|
|
80
|
+
*
|
|
81
|
+
* <p>Required, not optional: with no match the SDK renders no launcher and no tray at all. There is
|
|
82
|
+
* deliberately no corner fallback — parking a bell on someone else's page is their decision to make,
|
|
83
|
+
* not ours. Popups still arrive and still auto-open; only the persistent entry point is withheld.
|
|
83
84
|
*/
|
|
84
85
|
export const POPUP_ANCHOR_SELECTOR = '[data-nommos-notification-anchor]';
|
|
85
86
|
// Ad Tracking Constants
|
package/src/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/constants.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,SAAS,GAA2B;IACxC,GAAG,EAAE,wDAAwD;IAC7D,IAAI,EAAE,uBAAuB;CAC9B,CAAC;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC;AAU5B;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa,EAAE,OAAgB;IAC9D,MAAM,IAAI,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;IACnF,OAAO;QACL,MAAM,EAAE,GAAG,IAAI,6BAA6B;QAC5C,YAAY,EAAE,GAAG,IAAI,qCAAqC;QAC1D,SAAS,EAAE,GAAG,IAAI,iCAAiC;QACnD,KAAK,EAAE,GAAG,IAAI,6BAA6B;QAC3C,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,CAAC,6BAA6B;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AAC1D,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AACvE,MAAM,CAAC,MAAM,6BAA6B,GAAG,wBAAwB,CAAC;AACtE,MAAM,CAAC,MAAM,4BAA4B,GAAG,uBAAuB,CAAC;AACpE;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D,aAAa;AACb;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,mBAAmB,EAAE,CAAC;AACjF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,mBAAmB,EAAE,CAAC;AACpF,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/constants.ts"],"names":[],"mappings":"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"}
|
package/src/lib/popup-inbox.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { ConsentAwareModule, FullConfig, WebPopupInboxState } from './types';
|
|
|
7
7
|
* popup event carries `notification_type: "WEB_POPUP"` and a `popup_event` discriminator. That
|
|
8
8
|
* keeps popup reporting separable without standing up a second pipeline.
|
|
9
9
|
*/
|
|
10
|
-
export type PopupEvent = 'auto_open' | 'manual_open' | 'viewed' | 'closed' | 'dismissed' | 'cta_click' | 'link_click' | '
|
|
10
|
+
export type PopupEvent = 'auto_open' | 'manual_open' | 'viewed' | 'closed' | 'dismissed' | 'cta_click' | 'link_click' | 'tray_open' | 'mark_all_seen' | 'arrival_nudge' | 'abandoned' | 'render_failed';
|
|
11
11
|
/**
|
|
12
12
|
* The `state` each event rides on.
|
|
13
13
|
*
|
|
@@ -108,7 +108,41 @@ export declare class PopupInbox implements ConsentAwareModule {
|
|
|
108
108
|
/** Exactly one popup opens by itself per page visit; the rest wait behind the launcher. */
|
|
109
109
|
private autoOpen;
|
|
110
110
|
private handleOpened;
|
|
111
|
+
/**
|
|
112
|
+
* Flips one popup to VIEWED locally, tells the server, and puts it back if the server disagrees.
|
|
113
|
+
*
|
|
114
|
+
* <p>Shared by {@link handleOpened} and {@link markAllSeen} so the failure handling exists once.
|
|
115
|
+
* The two ways it can fail need opposite answers: a 404 means the popup is gone for this visitor,
|
|
116
|
+
* so restoring "unread" would strand a phantom nothing can ever clear; anything else is transient,
|
|
117
|
+
* so the status goes back and the next open retries it.
|
|
118
|
+
*
|
|
119
|
+
* <p>Emits nothing. Each caller owns its own events — {@link markAllSeen} in particular must not
|
|
120
|
+
* emit a `viewed` per item, which would open a SELECT span per popup that nothing ever closes.
|
|
121
|
+
*
|
|
122
|
+
* <p>The status flips <em>before</em> the first await, so a caller that repaints synchronously
|
|
123
|
+
* after calling this already sees the new state.
|
|
124
|
+
*/
|
|
125
|
+
private markViewedOptimistic;
|
|
126
|
+
/**
|
|
127
|
+
* The tray was opened. Reported, but deliberately inert.
|
|
128
|
+
*
|
|
129
|
+
* <p>No `/view` call and no `viewed` event: seeing a title in a list is not reading the message.
|
|
130
|
+
* If this marked items viewed, every campaign would report a 100% open rate the moment its
|
|
131
|
+
* popup was delivered, and the metric would be worthless.
|
|
132
|
+
*/
|
|
133
|
+
private handleTrayOpened;
|
|
134
|
+
/**
|
|
135
|
+
* Marks every unread popup seen, in response to an explicit click.
|
|
136
|
+
*
|
|
137
|
+
* <p>Fanned out over the existing per-item endpoint rather than a bulk one: `POPUP_MAX_ITEMS`
|
|
138
|
+
* caps the inbox at three, so this is at most three requests.
|
|
139
|
+
*/
|
|
140
|
+
markAllSeen(): Promise<void>;
|
|
111
141
|
private handleCtaClick;
|
|
142
|
+
/**
|
|
143
|
+
* @param source which surface it was dismissed from. One act, one event — the surface is a data
|
|
144
|
+
* field, so tray and modal dismissals stay in the same bucket and can still be told apart.
|
|
145
|
+
*/
|
|
112
146
|
private dismiss;
|
|
113
147
|
/**
|
|
114
148
|
* @returns whether the server accepted the transition.
|
package/src/lib/popup-inbox.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
import { POPUP_AUTO_OPEN_KEY, POPUP_INTERRUPTIVE_PRIORITIES, POPUP_PUSH_OPEN_COOLDOWN_MS, resolveEndpoints, POPUP_INBOX_CACHE_KEY,
|
|
1
|
+
import { POPUP_AUTO_OPEN_KEY, POPUP_INTERRUPTIVE_PRIORITIES, POPUP_PUSH_OPEN_COOLDOWN_MS, resolveEndpoints, POPUP_INBOX_CACHE_KEY, POPUP_MAX_ITEMS, POPUP_TOPIC_PREFIX, } from './constants';
|
|
2
2
|
import { ANALYTICS_ACTION_STATE } from './enums';
|
|
3
3
|
import { PopupViewer } from './popup-viewer';
|
|
4
4
|
const EVENT_STATE = {
|
|
5
5
|
// Not engagement at all — a push landed while the viewer was closed.
|
|
6
6
|
arrival_nudge: ANALYTICS_ACTION_STATE.INIT,
|
|
7
|
+
// Nor is this. The tray lists popups; it does not open one, and it has no per-popup span to
|
|
8
|
+
// close. Marking it SELECT would open three spans at once that nothing could ever end.
|
|
9
|
+
tray_open: ANALYTICS_ACTION_STATE.INIT,
|
|
7
10
|
// Span opens, and everything that happens while it is open.
|
|
8
11
|
auto_open: ANALYTICS_ACTION_STATE.SELECT,
|
|
9
12
|
manual_open: ANALYTICS_ACTION_STATE.SELECT,
|
|
10
13
|
viewed: ANALYTICS_ACTION_STATE.SELECT,
|
|
11
|
-
carousel_next: ANALYTICS_ACTION_STATE.SELECT,
|
|
12
|
-
carousel_prev: ANALYTICS_ACTION_STATE.SELECT,
|
|
13
14
|
link_click: ANALYTICS_ACTION_STATE.SELECT,
|
|
14
15
|
// The conversion. SUBMIT leaves the span open, which is correct — a CTA opens in a new tab.
|
|
15
16
|
cta_click: ANALYTICS_ACTION_STATE.SUBMIT,
|
|
17
|
+
// Deliberate, and shaped like a conversion rather than a span: it neither opens nor closes one.
|
|
18
|
+
mark_all_seen: ANALYTICS_ACTION_STATE.SUBMIT,
|
|
16
19
|
// Span closes. `dismissed` is terminal, `abandoned` means they left with it still open.
|
|
17
20
|
closed: ANALYTICS_ACTION_STATE.UNSELECT,
|
|
18
21
|
dismissed: ANALYTICS_ACTION_STATE.UNSELECT,
|
|
@@ -50,10 +53,11 @@ export class PopupInbox {
|
|
|
50
53
|
onOpened: (item, trigger) => this.handleOpened(item, trigger),
|
|
51
54
|
onClosed: (item) => this.emit('closed', this.meta(item)),
|
|
52
55
|
onAbandoned: (item) => this.emit('abandoned', this.meta(item)),
|
|
53
|
-
onDismissed: (item) => void this.dismiss(item),
|
|
56
|
+
onDismissed: (item, source) => void this.dismiss(item, source),
|
|
54
57
|
onCtaClick: (item, buttonIndex, url) => this.handleCtaClick(item, buttonIndex, url),
|
|
55
58
|
onLinkClick: (item, url) => this.emit('link_click', { ...this.meta(item), url }),
|
|
56
|
-
|
|
59
|
+
onTrayOpened: (items, unreadCount) => this.handleTrayOpened(items, unreadCount),
|
|
60
|
+
onMarkAllSeen: () => void this.markAllSeen(),
|
|
57
61
|
onRenderFailed: (item, reason) => this.emit('render_failed', { ...this.meta(item), reason }),
|
|
58
62
|
});
|
|
59
63
|
}
|
|
@@ -91,7 +95,6 @@ export class PopupInbox {
|
|
|
91
95
|
try {
|
|
92
96
|
sessionStorage.removeItem(POPUP_INBOX_CACHE_KEY);
|
|
93
97
|
sessionStorage.removeItem(POPUP_AUTO_OPEN_KEY);
|
|
94
|
-
sessionStorage.removeItem(POPUP_LAUNCHER_HIDDEN_KEY);
|
|
95
98
|
}
|
|
96
99
|
catch {
|
|
97
100
|
/* storage unavailable — nothing cached to clear */
|
|
@@ -222,41 +225,106 @@ export class PopupInbox {
|
|
|
222
225
|
return;
|
|
223
226
|
this.emit('viewed', this.meta(item));
|
|
224
227
|
// Optimistic: the badge should drop the moment it is opened, not a round trip later.
|
|
225
|
-
const previous = item.status;
|
|
226
|
-
item.status = 'VIEWED';
|
|
227
228
|
this.persistCache();
|
|
228
229
|
this.viewer.setItems(this.items);
|
|
229
|
-
|
|
230
|
-
// A 404 means the popup is gone for this visitor, so restoring "unread" would strand a phantom
|
|
231
|
-
// nothing can ever clear. Anything else is transient, so put the status back and let the next
|
|
232
|
-
// open retry it.
|
|
233
|
-
void this.post(`${item.id}/view`).then((status) => {
|
|
234
|
-
if (status === 404) {
|
|
235
|
-
this.dropItem(item.id);
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
if (status >= 200 && status < 300)
|
|
239
|
-
return;
|
|
240
|
-
if (item.status !== 'VIEWED')
|
|
241
|
-
return;
|
|
242
|
-
item.status = previous;
|
|
230
|
+
void this.markViewedOptimistic(item).then(() => {
|
|
243
231
|
this.persistCache();
|
|
244
232
|
this.viewer.setItems(this.items);
|
|
245
233
|
});
|
|
246
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Flips one popup to VIEWED locally, tells the server, and puts it back if the server disagrees.
|
|
237
|
+
*
|
|
238
|
+
* <p>Shared by {@link handleOpened} and {@link markAllSeen} so the failure handling exists once.
|
|
239
|
+
* The two ways it can fail need opposite answers: a 404 means the popup is gone for this visitor,
|
|
240
|
+
* so restoring "unread" would strand a phantom nothing can ever clear; anything else is transient,
|
|
241
|
+
* so the status goes back and the next open retries it.
|
|
242
|
+
*
|
|
243
|
+
* <p>Emits nothing. Each caller owns its own events — {@link markAllSeen} in particular must not
|
|
244
|
+
* emit a `viewed` per item, which would open a SELECT span per popup that nothing ever closes.
|
|
245
|
+
*
|
|
246
|
+
* <p>The status flips <em>before</em> the first await, so a caller that repaints synchronously
|
|
247
|
+
* after calling this already sees the new state.
|
|
248
|
+
*/
|
|
249
|
+
async markViewedOptimistic(item) {
|
|
250
|
+
if (item.status === 'VIEWED')
|
|
251
|
+
return;
|
|
252
|
+
const previous = item.status;
|
|
253
|
+
item.status = 'VIEWED';
|
|
254
|
+
const status = await this.post(`${item.id}/view`);
|
|
255
|
+
if (status === 404) {
|
|
256
|
+
this.dropItem(item.id);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (status >= 200 && status < 300)
|
|
260
|
+
return;
|
|
261
|
+
// Revert against the live item: the list may have been replaced by a refresh while in flight.
|
|
262
|
+
const live = this.items.find((candidate) => candidate.id === item.id);
|
|
263
|
+
if (!live || live.status !== 'VIEWED')
|
|
264
|
+
return;
|
|
265
|
+
live.status = previous;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* The tray was opened. Reported, but deliberately inert.
|
|
269
|
+
*
|
|
270
|
+
* <p>No `/view` call and no `viewed` event: seeing a title in a list is not reading the message.
|
|
271
|
+
* If this marked items viewed, every campaign would report a 100% open rate the moment its
|
|
272
|
+
* popup was delivered, and the metric would be worthless.
|
|
273
|
+
*/
|
|
274
|
+
handleTrayOpened(items, unreadCount) {
|
|
275
|
+
this.emit('tray_open', {
|
|
276
|
+
notification_type: 'WEB_POPUP',
|
|
277
|
+
item_count: items.length,
|
|
278
|
+
unread_count: unreadCount,
|
|
279
|
+
impressed_ids: items.map((item) => item.id),
|
|
280
|
+
trigger: 'launcher',
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Marks every unread popup seen, in response to an explicit click.
|
|
285
|
+
*
|
|
286
|
+
* <p>Fanned out over the existing per-item endpoint rather than a bulk one: `POPUP_MAX_ITEMS`
|
|
287
|
+
* caps the inbox at three, so this is at most three requests.
|
|
288
|
+
*/
|
|
289
|
+
async markAllSeen() {
|
|
290
|
+
const unread = this.items.filter((item) => item.status !== 'VIEWED');
|
|
291
|
+
if (unread.length === 0)
|
|
292
|
+
return;
|
|
293
|
+
this.emit('mark_all_seen', {
|
|
294
|
+
notification_type: 'WEB_POPUP',
|
|
295
|
+
marked_count: unread.length,
|
|
296
|
+
popup_ids: unread.map((item) => item.id),
|
|
297
|
+
});
|
|
298
|
+
const settled = Promise.all(unread.map((item) => this.markViewedOptimistic(item)));
|
|
299
|
+
// Painted before the POSTs settle — dropping the badge instantly is the whole point of the
|
|
300
|
+
// action. `markViewedOptimistic` flips each status before its first await, so this sees them.
|
|
301
|
+
this.persistCache();
|
|
302
|
+
this.viewer.setItems(this.items);
|
|
303
|
+
await settled;
|
|
304
|
+
// Again afterwards, so a server refusal that reverted a status is reflected rather than lost.
|
|
305
|
+
this.persistCache();
|
|
306
|
+
this.viewer.setItems(this.items);
|
|
307
|
+
}
|
|
247
308
|
handleCtaClick(item, buttonIndex, url) {
|
|
248
309
|
this.emit('cta_click', { ...this.meta(item), button_index: buttonIndex, url });
|
|
249
310
|
void this.post(`${item.id}/cta-click`, { buttonIndex });
|
|
250
311
|
}
|
|
251
|
-
|
|
252
|
-
|
|
312
|
+
/**
|
|
313
|
+
* @param source which surface it was dismissed from. One act, one event — the surface is a data
|
|
314
|
+
* field, so tray and modal dismissals stay in the same bucket and can still be told apart.
|
|
315
|
+
*/
|
|
316
|
+
async dismiss(item, source) {
|
|
317
|
+
this.emit('dismissed', { ...this.meta(item), dismiss_source: source });
|
|
253
318
|
await this.post(`${item.id}/dismiss`);
|
|
254
319
|
this.items = this.items.filter((candidate) => candidate.id !== item.id);
|
|
255
320
|
this.contentCache.delete(item.id);
|
|
256
321
|
this.persistCache();
|
|
322
|
+
// Deliberately no teardown here, even when this empties the inbox. `setItems` already owns that
|
|
323
|
+
// decision and makes a better one — it tears down only when there is no anchor, and keeps an
|
|
324
|
+
// anchored launcher mounted, because vacating a slot the tenant reserved in their own header
|
|
325
|
+
// collapses their layout around the gap. Tearing down here overrode that, and with a tray open
|
|
326
|
+
// it would also destroy the panel the visitor is standing in mid-click.
|
|
257
327
|
this.viewer.setItems(this.items);
|
|
258
|
-
if (this.items.length === 0)
|
|
259
|
-
this.viewer.teardown();
|
|
260
328
|
}
|
|
261
329
|
/**
|
|
262
330
|
* @returns whether the server accepted the transition.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popup-inbox.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/popup-inbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"popup-inbox.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/popup-inbox.ts"],"names":[],"mappings":"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"}
|