@tiledev/sdk-apptile-live-selling 0.12.0 β 0.13.0
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 +24 -8
- package/dist/heldComments.d.ts +13 -2
- package/dist/heldComments.d.ts.map +1 -1
- package/dist/heldComments.js +16 -2
- package/dist/heldComments.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/react/showPages.d.ts +5 -1
- package/dist/react/showPages.d.ts.map +1 -1
- package/dist/react/showPages.js +14 -5
- package/dist/react/showPages.js.map +1 -1
- package/dist/react/useLiveSession.d.ts +8 -0
- package/dist/react/useLiveSession.d.ts.map +1 -1
- package/dist/react/useLiveSession.js +43 -27
- package/dist/react/useLiveSession.js.map +1 -1
- package/dist/react/useMySilentAuctionBids.d.ts.map +1 -1
- package/dist/react/useMySilentAuctionBids.js +5 -2
- package/dist/react/useMySilentAuctionBids.js.map +1 -1
- package/dist/react/useSilentAuctionLot.d.ts.map +1 -1
- package/dist/react/useSilentAuctionLot.js +9 -4
- package/dist/react/useSilentAuctionLot.js.map +1 -1
- package/dist/react/useSilentAuctionLots.d.ts.map +1 -1
- package/dist/react/useSilentAuctionLots.js +6 -2
- package/dist/react/useSilentAuctionLots.js.map +1 -1
- package/dist/react/useSilentAuctionRounds.d.ts.map +1 -1
- package/dist/react/useSilentAuctionRounds.js +6 -2
- package/dist/react/useSilentAuctionRounds.js.map +1 -1
- package/dist/sessionTypes.d.ts +17 -9
- package/dist/sessionTypes.d.ts.map +1 -1
- package/dist/sessionTypes.js.map +1 -1
- package/dist/shopifyIdentity.d.ts +7 -4
- package/dist/shopifyIdentity.d.ts.map +1 -1
- package/dist/shopifyIdentity.js +11 -5
- package/dist/shopifyIdentity.js.map +1 -1
- package/dist/showNames.d.ts +24 -3
- package/dist/showNames.d.ts.map +1 -1
- package/dist/showNames.js +57 -10
- package/dist/showNames.js.map +1 -1
- package/dist/showPages.d.ts +12 -0
- package/dist/showPages.d.ts.map +1 -1
- package/dist/showPages.js +10 -0
- package/dist/showPages.js.map +1 -1
- package/dist/silentAuctionRules.d.ts +3 -2
- package/dist/silentAuctionRules.d.ts.map +1 -1
- package/dist/silentAuctionRules.js +4 -3
- package/dist/silentAuctionRules.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -321,9 +321,20 @@ the auction's leader and winner, the giveaway's winner and entrants, a replay's
|
|
|
321
321
|
themselves. An email keeps its part before the @, an "@handle" stays whole, a real name is unchanged.
|
|
322
322
|
So does the name it publishes for this viewer.
|
|
323
323
|
|
|
324
|
-
- `viewerNameFor(customer)` is the name to pass as `viewerName`: first and last name, else
|
|
325
|
-
|
|
326
|
-
uses it.
|
|
324
|
+
- `viewerNameFor(customer)` is the name to pass as `viewerName`: first and last name, else whichever
|
|
325
|
+
of the two the customer gave; null when their account has no name, and when signed out.
|
|
326
|
+
`createShopifyLiveIdentity`'s `customerName` uses it. **Never the email nor its part before the @**
|
|
327
|
+
(0.13.0; from 0.9.0 it fell back to the part before the @, which a room showed for every shopper
|
|
328
|
+
signed in by emailed code, as that sign-in leaves the name blank). With no name, `session.viewerName`
|
|
329
|
+
is the one typed on this phone, or null: ask the shopper for one before their first comment, and
|
|
330
|
+
save the answer to their account so they are asked once.
|
|
331
|
+
- **The show's team's names are blocked (0.13.0).** `LiveSessionProvider`'s `blockedNames` (default
|
|
332
|
+
`DEFAULT_BLOCKED_VIEWER_NAMES`: Host, Moderator) are names this viewer is never shown under: the
|
|
333
|
+
account's, the identity's or one typed on this phone that matches counts as no name
|
|
334
|
+
(`session.viewerName` null, so the app asks), and `chooseViewerName` refuses one (null). Compared
|
|
335
|
+
whole, with capitals, accents, spaces, punctuation and symbols left out (`isBlockedViewerName`:
|
|
336
|
+
"H.o.s.t" and "HΓ΄st π€" are Host; "The Host", "Hostess" and "M0derator" aren't). Check a typed name
|
|
337
|
+
with `isBlockedViewerName(name, sameList)` before saving it, to tell the shopper why.
|
|
327
338
|
- `firstNameOf(name)` is the first word, for a card with no room for more.
|
|
328
339
|
- **The name the room is entered under (0.9.2).** The host's screen shows each viewer join under the
|
|
329
340
|
name their phone entered the room with. While `identity.customerLoading()` is true (a sign-in still
|
|
@@ -343,8 +354,10 @@ session's job now; delete the app-side copies when you upgrade.
|
|
|
343
354
|
marked `isOwn` by the name it comments under. Muted lines are left out.
|
|
344
355
|
- **The first comment carries the right name (L6).** `chooseViewerName` gives the name to the engine
|
|
345
356
|
at once, so the comment that prompted for it goes out under it, not as "Anonymous". A comment a
|
|
346
|
-
signed-in shopper sends
|
|
347
|
-
`sendComment` resolves then β or after 10 s at the
|
|
357
|
+
signed-in shopper sends while their account is still loading (`identity.customerLoading()`) is
|
|
358
|
+
**held** and sent the moment it has loaded β `sendComment` resolves then β or after 10 s at the
|
|
359
|
+
latest. Don't hold it yourself. An account that has loaded with no name on it isn't waited for
|
|
360
|
+
(0.13.0: until then a held comment waited the full 10 s and went out as "Anonymous").
|
|
348
361
|
- **Pinned comment.** `session.pinnedComment` joins the record's `pinned_comment` (arrival), every
|
|
349
362
|
`PINNED_COMMENT_CHANGED` broadcast (now the typed `pinnedCommentChanged` event, not `unknown`), and
|
|
350
363
|
a fresh record read on every reconnect. Hidden once the show has ended.
|
|
@@ -592,8 +605,10 @@ It returns:
|
|
|
592
605
|
|
|
593
606
|
- `identity`: `bidderId`, the customer's bare numeric id, and `customerRef`, their GID, both only for a
|
|
594
607
|
Shopify sign-in (the winner's record is on the Customer Account API, so an email-and-password
|
|
595
|
-
session can't bid); `customerName`, first and last name
|
|
596
|
-
while sdk-shopify is still reading the stored sign-in on
|
|
608
|
+
session can't bid); `customerName`, first and last name, null with none (`viewerNameFor`);
|
|
609
|
+
`customerEmail`; `customerLoading`, true while sdk-shopify is still reading the stored sign-in on
|
|
610
|
+
app open (`restoring`, 0.9.2) and, since 0.13.0, while a shopper who has just signed in has no
|
|
611
|
+
profile yet (`loggedIn` without a `customer`).
|
|
597
612
|
- `customerAccountRequest`: the customer's own `request`.
|
|
598
613
|
- `buyer`: their access token and email, for `createShopifyLiveCommerce`; null when signed out.
|
|
599
614
|
|
|
@@ -745,7 +760,8 @@ const { product, variant, readError } = useGiveawayPrize<Product>(entry.open);
|
|
|
745
760
|
|
|
746
761
|
Timed lots on Apptile's auction service, bid on from the product page rather than in a show. Configure
|
|
747
762
|
`silentAuctions: { appId }` (the store's Apptile app id) and `customerAccountRequest`. Four page models,
|
|
748
|
-
no words, formatting or routes
|
|
763
|
+
no words, formatting or routes. Each reads once `LiveSellingProvider` is ready (since 0.12.1), so it
|
|
764
|
+
must sit under the provider:
|
|
749
765
|
|
|
750
766
|
```tsx
|
|
751
767
|
// The lots page: newest, endingSoon, wishlisted or upcoming (grouped by round in `upcoming`).
|
package/dist/heldComments.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Comments held back until the shopper's name is known (L6).
|
|
3
3
|
*
|
|
4
|
-
* A signed-in shopper is
|
|
5
|
-
* customer record loads after the screen does. A comment sent in that gap went out under the engine's
|
|
4
|
+
* A signed-in shopper's name is their account's, but the account loads after the screen does. A comment sent in that gap went out under the engine's
|
|
6
5
|
* fallback, "Anonymous", into the room and into the stored history, where it cannot be taken back.
|
|
7
6
|
* The session now holds such a comment here and sends it the moment the name lands.
|
|
8
7
|
*
|
|
@@ -11,6 +10,18 @@
|
|
|
11
10
|
* comment has been sent (or dropped with the show).
|
|
12
11
|
*/
|
|
13
12
|
export declare const HELD_COMMENT_MAX_WAIT_MS = 10000;
|
|
13
|
+
/**
|
|
14
|
+
* Whether a comment sent now waits for the shopper's name: their account is still being read
|
|
15
|
+
* (`identity.customerLoading`) and nothing from it has named them yet (`nameFromAccount`: the
|
|
16
|
+
* provider's `viewerName`, else the identity's `customerName`).
|
|
17
|
+
*
|
|
18
|
+
* Only while it loads (0.13.0). An account that has been read with no name on it isn't waited for, as
|
|
19
|
+
* no name is coming: the session's name is then the one typed on this phone, or null, and the app asks
|
|
20
|
+
* for one before the comment goes. Until 0.13.0 the rule was "a bidder with no name", which, with no
|
|
21
|
+
* email to fall back on, held such a shopper's every comment for 10 s and then sent it as "Anonymous";
|
|
22
|
+
* and it never held a comment while the account loaded, as there is no bidder until it has.
|
|
23
|
+
*/
|
|
24
|
+
export declare function waitsForAccountName(accountLoading: boolean, nameFromAccount: string | null): boolean;
|
|
14
25
|
export declare class HeldComments<T> {
|
|
15
26
|
private readonly send;
|
|
16
27
|
private readonly maxWaitMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heldComments.d.ts","sourceRoot":"","sources":["../src/heldComments.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"heldComments.d.ts","sourceRoot":"","sources":["../src/heldComments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAEpG;AAED,qBAAa,YAAY,CAAC,CAAC;IAKvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,IAAI,CAA8C;IAC1D,OAAO,CAAC,KAAK,CAA8C;gBAGxC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAChC,SAAS,GAAE,MAAiC;IAG/D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,mFAAmF;IACnF,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5B,uGAAuG;IACjG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,gFAAgF;IAChF,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,UAAU;CAInB"}
|
package/dist/heldComments.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HeldComments = exports.HELD_COMMENT_MAX_WAIT_MS = void 0;
|
|
4
|
+
exports.waitsForAccountName = waitsForAccountName;
|
|
4
5
|
/**
|
|
5
6
|
* Comments held back until the shopper's name is known (L6).
|
|
6
7
|
*
|
|
7
|
-
* A signed-in shopper is
|
|
8
|
-
* customer record loads after the screen does. A comment sent in that gap went out under the engine's
|
|
8
|
+
* A signed-in shopper's name is their account's, but the account loads after the screen does. A comment sent in that gap went out under the engine's
|
|
9
9
|
* fallback, "Anonymous", into the room and into the stored history, where it cannot be taken back.
|
|
10
10
|
* The session now holds such a comment here and sends it the moment the name lands.
|
|
11
11
|
*
|
|
@@ -14,6 +14,20 @@ exports.HeldComments = exports.HELD_COMMENT_MAX_WAIT_MS = void 0;
|
|
|
14
14
|
* comment has been sent (or dropped with the show).
|
|
15
15
|
*/
|
|
16
16
|
exports.HELD_COMMENT_MAX_WAIT_MS = 10000;
|
|
17
|
+
/**
|
|
18
|
+
* Whether a comment sent now waits for the shopper's name: their account is still being read
|
|
19
|
+
* (`identity.customerLoading`) and nothing from it has named them yet (`nameFromAccount`: the
|
|
20
|
+
* provider's `viewerName`, else the identity's `customerName`).
|
|
21
|
+
*
|
|
22
|
+
* Only while it loads (0.13.0). An account that has been read with no name on it isn't waited for, as
|
|
23
|
+
* no name is coming: the session's name is then the one typed on this phone, or null, and the app asks
|
|
24
|
+
* for one before the comment goes. Until 0.13.0 the rule was "a bidder with no name", which, with no
|
|
25
|
+
* email to fall back on, held such a shopper's every comment for 10 s and then sent it as "Anonymous";
|
|
26
|
+
* and it never held a comment while the account loaded, as there is no bidder until it has.
|
|
27
|
+
*/
|
|
28
|
+
function waitsForAccountName(accountLoading, nameFromAccount) {
|
|
29
|
+
return accountLoading && !nameFromAccount;
|
|
30
|
+
}
|
|
17
31
|
class HeldComments {
|
|
18
32
|
constructor(send, maxWaitMs = exports.HELD_COMMENT_MAX_WAIT_MS) {
|
|
19
33
|
this.send = send;
|
package/dist/heldComments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heldComments.js","sourceRoot":"","sources":["../src/heldComments.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"heldComments.js","sourceRoot":"","sources":["../src/heldComments.ts"],"names":[],"mappings":";;;AAwBA,kDAEC;AA1BD;;;;;;;;;;GAUG;AACU,QAAA,wBAAwB,GAAG,KAAM,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CAAC,cAAuB,EAAE,eAA8B;IACzF,OAAO,cAAc,IAAI,CAAC,eAAe,CAAC;AAC5C,CAAC;AAED,MAAa,YAAY;IAIvB,YACmB,IAAgC,EAChC,YAAoB,gCAAwB;QAD5C,SAAI,GAAJ,IAAI,CAA4B;QAChC,cAAS,GAAT,SAAS,CAAmC;QALvD,SAAI,GAA2C,EAAE,CAAC;QAClD,UAAK,GAAyC,IAAI,CAAC;IAKxD,CAAC;IAEJ,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,mFAAmF;IACnF,IAAI,CAAC,IAAO;QACV,OAAO,IAAI,OAAO,CAAO,CAAC,MAAM,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uGAAuG;IACvG,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,IAAI;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF;AA5CD,oCA4CC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export { createShopifyLiveIdentity, type ShopifyCustomerSession, type ShopifyLiv
|
|
|
40
40
|
export { GIVEAWAY_CODE_PREFIX, GIVEAWAY_PRIZE_KEYS, isGiveawayCode, isGiveawayPrizeLine, prizeLinePrice, prizesCoveredByGiveawayCodes, type CartLineForGiveawayCodes, type GiveawayPrizeLineOptions, type PrizeLinePrice, } from './giveawayPrizeLines';
|
|
41
41
|
export { giveawayPrizeExtension, type GiveawayPrizeExtension, type GiveawayPrizeExtensionOptions, type CartLineForPrizes, } from './cartExtension';
|
|
42
42
|
export { isHiddenFrom, isHiddenShow, seesHiddenShows, withoutHiddenShows } from './hiddenShows';
|
|
43
|
-
export { publicName, firstNameOf, viewerNameFor, sameRoomName, type NamedCustomer } from './showNames';
|
|
43
|
+
export { publicName, firstNameOf, viewerNameFor, sameRoomName, isBlockedViewerName, DEFAULT_BLOCKED_VIEWER_NAMES, type NamedCustomer, } from './showNames';
|
|
44
44
|
export { liveShowFor, canPlayInCard, type LiveShow, type LiveShowStatus, type SessionForCard, type SessionForShow, } from './liveShow';
|
|
45
45
|
export { featuredFirst, withLotFieldsFromRecord } from './showLots';
|
|
46
46
|
export { showLinkDestination } from './showLinks';
|
|
@@ -75,5 +75,5 @@ export type * from './sessionTypes';
|
|
|
75
75
|
*/
|
|
76
76
|
export { createOngoingLiveStore, ONGOING_LIVE_POLL_IDLE_MS, ONGOING_LIVE_POLL_LIVE_MS, type OngoingLivePolling, type OngoingLiveSnapshot, type OngoingLiveStore, } from './ongoingLive';
|
|
77
77
|
export * from './react/index';
|
|
78
|
-
export { readsOnPastHidden, showListStatus, winsTotal, type ShowListStatus, type ShowListInput } from './showPages';
|
|
78
|
+
export { readsOnPastHidden, readsRecordingsAgainOnView, showListStatus, winsTotal, type ShowListStatus, type ShowListInput } from './showPages';
|
|
79
79
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAIpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG5F,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGjF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAI1G,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIlD,OAAO,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAGvF,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,mBAAmB,SAAS,CAAC;AAC7B,mBAAmB,gBAAgB,CAAC;AAEpC;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -32,7 +32,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
32
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
33
|
exports.resolveCommentLinkCard = exports.displayHost = exports.toUrlPreview = exports.classifyCommentLink = exports.hasCommentLink = exports.toCommentSegments = exports.replayAttributionSourceFor = exports.liveAttributionSourceFor = exports.addLiveLine = exports.replayCartAttributesFor = exports.liveCartAttributesFor = exports.REPLAY_ID_ATTRIBUTE = exports.LIVE_STREAM_ID_ATTRIBUTE = exports.MAX_VIEWER_NAME = exports.resetCompanyFlagsCache = exports.toMixerLayout = exports.isYourGiveawayWin = exports.winnerIdFromRecord = exports.rosterFromRecord = exports.giveawayForLot = exports.GIVEAWAY_ROSTER_WAIT_MS = exports.GIVEAWAY_ROSTER_RETRY_MS = exports.HOST_SELF_NAME = exports.COMMENT_HISTORY_WINDOW = exports.mergeCommentHistory = exports.toCommentHistory = exports.toPinnedComment = exports.imageUrl = exports.toEmbeddedResults = exports.toLivePollResults = exports.toLivePoll = exports.toGiveawayEntries = exports.toLiveGiveaway = exports.toLiveStreamProduct = exports.toLiveStreams = exports.toLiveStream = exports.JOIN_RETRY_BASE_MS = exports.JOIN_ATTEMPTS = exports.ZegoLoginError = exports.toProductGid = exports.DEFAULT_OFF_AIR_GRACE_MS = exports.DEFAULT_REQUEST_TIMEOUT_MS = exports.LiveSellingTimeoutError = exports.LiveSellingError = exports.liveEngine = exports.LIVE_HAPTICS_TICK_GAP_MS = exports.createLiveHaptics = exports.liveHaptics = exports.default = exports.liveSelling = void 0;
|
|
34
34
|
exports.sameRoomName = exports.viewerNameFor = exports.firstNameOf = exports.publicName = exports.withoutHiddenShows = exports.seesHiddenShows = exports.isHiddenShow = exports.isHiddenFrom = exports.giveawayPrizeExtension = exports.prizesCoveredByGiveawayCodes = exports.prizeLinePrice = exports.isGiveawayPrizeLine = exports.isGiveawayCode = exports.GIVEAWAY_PRIZE_KEYS = exports.GIVEAWAY_CODE_PREFIX = exports.createShopifyLiveIdentity = exports.WIN_INDEX_KEY = exports.WINNING_BID_KEY = exports.AUCTION_CART_SOURCE_TYPE = exports.chargedVariantId = exports.liveProductFromShopify = exports.createShopifyLiveCommerce = exports.createSilentAuctionFeed = exports.BID_RECORD_KEY = exports.BID_RECORD_NAMESPACE = exports.toSilentAuctionRound = exports.queryableBidEntries = exports.bidRecordEntry = exports.bidRecordEntries = exports.productPageBuyBar = exports.myBidsTabs = exports.upcomingGroups = exports.orderLots = exports.lotStatus = exports.isLeading = exports.bidCapState = exports.nextBid = exports.wasExtended = exports.inExtensionWindow = exports.timeLeftMs = exports.lotPhase = exports.lotKey = exports.lotProductGid = exports.lotsFromResponse = exports.toSilentAuctionLot = exports.BID_RECORD_BATCH_SIZE = exports.SILENT_AUCTION_API_URL = exports.silentAuctions = exports.clearCommentLinkCards = exports.cachedCommentLinkCard = void 0;
|
|
35
|
-
exports.winsTotal = exports.showListStatus = exports.readsOnPastHidden = exports.ONGOING_LIVE_POLL_LIVE_MS = exports.ONGOING_LIVE_POLL_IDLE_MS = exports.createOngoingLiveStore = exports.COMMENT_SOURCES = exports.isLivePipSupported = exports.livePip = exports.IDLE_GIVEAWAY = exports.IDLE_AUCTION = exports.REPLAY_CAPABILITIES = exports.AUCTION_CAPABILITIES = exports.LIVE_CAPABILITIES = exports.capabilitiesFor = exports.CART_CARD_MS = exports.REACTION_MS = exports.SOLD_CARD_MS = exports.isTheEndedGiveaway = exports.withOffAirSettled = exports.isNothingOnAir = exports.nextExpiryAt = exports.roundClosesAt = exports.deriveStatus = exports.initialSessionState = exports.sessionReducer = exports.givenAwayVariant = exports.isTheVariant = exports.classifyComment = exports.openingBidFor = exports.GOOD_CHANCE_OVER = exports.VERY_HIGH_CHANCE_OVER = exports.QUICK_BID_STEPS = exports.BID_ON_ITS_WAY_MS = exports.isYourWin = exports.lotStateFor = exports.winChance = exports.quickBids = exports.bidRefusal = exports.showLinkDestination = exports.withLotFieldsFromRecord = exports.featuredFirst = exports.canPlayInCard = exports.liveShowFor = void 0;
|
|
35
|
+
exports.winsTotal = exports.showListStatus = exports.readsRecordingsAgainOnView = exports.readsOnPastHidden = exports.ONGOING_LIVE_POLL_LIVE_MS = exports.ONGOING_LIVE_POLL_IDLE_MS = exports.createOngoingLiveStore = exports.COMMENT_SOURCES = exports.isLivePipSupported = exports.livePip = exports.IDLE_GIVEAWAY = exports.IDLE_AUCTION = exports.REPLAY_CAPABILITIES = exports.AUCTION_CAPABILITIES = exports.LIVE_CAPABILITIES = exports.capabilitiesFor = exports.CART_CARD_MS = exports.REACTION_MS = exports.SOLD_CARD_MS = exports.isTheEndedGiveaway = exports.withOffAirSettled = exports.isNothingOnAir = exports.nextExpiryAt = exports.roundClosesAt = exports.deriveStatus = exports.initialSessionState = exports.sessionReducer = exports.givenAwayVariant = exports.isTheVariant = exports.classifyComment = exports.openingBidFor = exports.GOOD_CHANCE_OVER = exports.VERY_HIGH_CHANCE_OVER = exports.QUICK_BID_STEPS = exports.BID_ON_ITS_WAY_MS = exports.isYourWin = exports.lotStateFor = exports.winChance = exports.quickBids = exports.bidRefusal = exports.showLinkDestination = exports.withLotFieldsFromRecord = exports.featuredFirst = exports.canPlayInCard = exports.liveShowFor = exports.DEFAULT_BLOCKED_VIEWER_NAMES = exports.isBlockedViewerName = void 0;
|
|
36
36
|
// The imperative client (default + named).
|
|
37
37
|
var liveSelling_1 = require("./liveSelling");
|
|
38
38
|
Object.defineProperty(exports, "liveSelling", { enumerable: true, get: function () { return liveSelling_1.liveSelling; } });
|
|
@@ -176,6 +176,8 @@ Object.defineProperty(exports, "publicName", { enumerable: true, get: function (
|
|
|
176
176
|
Object.defineProperty(exports, "firstNameOf", { enumerable: true, get: function () { return showNames_1.firstNameOf; } });
|
|
177
177
|
Object.defineProperty(exports, "viewerNameFor", { enumerable: true, get: function () { return showNames_1.viewerNameFor; } });
|
|
178
178
|
Object.defineProperty(exports, "sameRoomName", { enumerable: true, get: function () { return showNames_1.sameRoomName; } });
|
|
179
|
+
Object.defineProperty(exports, "isBlockedViewerName", { enumerable: true, get: function () { return showNames_1.isBlockedViewerName; } });
|
|
180
|
+
Object.defineProperty(exports, "DEFAULT_BLOCKED_VIEWER_NAMES", { enumerable: true, get: function () { return showNames_1.DEFAULT_BLOCKED_VIEWER_NAMES; } });
|
|
179
181
|
var liveShow_1 = require("./liveShow");
|
|
180
182
|
Object.defineProperty(exports, "liveShowFor", { enumerable: true, get: function () { return liveShow_1.liveShowFor; } });
|
|
181
183
|
Object.defineProperty(exports, "canPlayInCard", { enumerable: true, get: function () { return liveShow_1.canPlayInCard; } });
|
|
@@ -256,6 +258,7 @@ Object.defineProperty(exports, "ONGOING_LIVE_POLL_LIVE_MS", { enumerable: true,
|
|
|
256
258
|
__exportStar(require("./react/index"), exports);
|
|
257
259
|
var showPages_1 = require("./showPages");
|
|
258
260
|
Object.defineProperty(exports, "readsOnPastHidden", { enumerable: true, get: function () { return showPages_1.readsOnPastHidden; } });
|
|
261
|
+
Object.defineProperty(exports, "readsRecordingsAgainOnView", { enumerable: true, get: function () { return showPages_1.readsRecordingsAgainOnView; } });
|
|
259
262
|
Object.defineProperty(exports, "showListStatus", { enumerable: true, get: function () { return showPages_1.showListStatus; } });
|
|
260
263
|
Object.defineProperty(exports, "winsTotal", { enumerable: true, get: function () { return showPages_1.winsTotal; } });
|
|
261
264
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -94,7 +94,11 @@ export interface LiveRail {
|
|
|
94
94
|
replays: Replay[];
|
|
95
95
|
/** Reads the show on air and the first page of recordings again (with the screen's own pull). */
|
|
96
96
|
refresh: () => Promise<void>;
|
|
97
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* Call each time the screen comes into view: reads the show on air again and, on a return visit, the
|
|
99
|
+
* recordings (`readsRecordingsAgainOnView`), so a show that ended meanwhile reaches the rail (before
|
|
100
|
+
* ENG-928 only the show on air was read again, and the rail waited for a pull or a relaunch).
|
|
101
|
+
*/
|
|
98
102
|
viewed: () => void;
|
|
99
103
|
}
|
|
100
104
|
/** A home screen's live rail over a session. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showPages.d.ts","sourceRoot":"","sources":["../../src/react/showPages.ts"],"names":[],"mappings":"AASA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"showPages.d.ts","sourceRoot":"","sources":["../../src/react/showPages.ts"],"names":[],"mappings":"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"}
|
package/dist/react/showPages.js
CHANGED
|
@@ -118,9 +118,9 @@ function useLiveHubPageFor(session, { screenOnShow }) {
|
|
|
118
118
|
if (!now.ready)
|
|
119
119
|
return; // The reads start by themselves once the SDK is ready.
|
|
120
120
|
void now.refreshOnAir();
|
|
121
|
-
|
|
122
|
-
if (!firstVisit && !now.loading && now.shownCount <= exports.SHOWS_PAGE_SIZE)
|
|
121
|
+
if ((0, showPages_1.readsRecordingsAgainOnView)({ firstVisit, loading: now.loading, shownCount: now.shownCount, pageSize: exports.SHOWS_PAGE_SIZE })) {
|
|
123
122
|
void now.refreshRecordings();
|
|
123
|
+
}
|
|
124
124
|
}, []);
|
|
125
125
|
return {
|
|
126
126
|
onAir,
|
|
@@ -139,11 +139,20 @@ function useLiveHubPageFor(session, { screenOnShow }) {
|
|
|
139
139
|
/** A home screen's live rail over a session. */
|
|
140
140
|
function useLiveRailFor(session, { screenOnShow }) {
|
|
141
141
|
const { liveNow, refresh: refreshOnAir } = (0, useOngoingLive_1.useOngoingLive)();
|
|
142
|
-
const { replays, refresh: refreshRecordings } = (0, useReplays_1.useReplays)({ pageSize: exports.SHOWS_PAGE_SIZE, playableOnly: true });
|
|
142
|
+
const { replays, loading, refresh: refreshRecordings } = (0, useReplays_1.useReplays)({ pageSize: exports.SHOWS_PAGE_SIZE, playableOnly: true });
|
|
143
143
|
const refresh = (0, react_1.useCallback)(() => Promise.all([refreshOnAir(), refreshRecordings()]).then(() => undefined), [refreshOnAir, refreshRecordings]);
|
|
144
|
+
const latest = (0, react_1.useRef)({ loading, shownCount: replays.length, refreshOnAir, refreshRecordings });
|
|
145
|
+
latest.current = { loading, shownCount: replays.length, refreshOnAir, refreshRecordings };
|
|
146
|
+
const visitedBefore = (0, react_1.useRef)(false);
|
|
144
147
|
const viewed = (0, react_1.useCallback)(() => {
|
|
145
|
-
|
|
146
|
-
|
|
148
|
+
const firstVisit = !visitedBefore.current;
|
|
149
|
+
visitedBefore.current = true;
|
|
150
|
+
const now = latest.current;
|
|
151
|
+
void now.refreshOnAir();
|
|
152
|
+
if ((0, showPages_1.readsRecordingsAgainOnView)({ firstVisit, loading: now.loading, shownCount: now.shownCount, pageSize: exports.SHOWS_PAGE_SIZE })) {
|
|
153
|
+
void now.refreshRecordings();
|
|
154
|
+
}
|
|
155
|
+
}, []);
|
|
147
156
|
return {
|
|
148
157
|
onAir: liveNow,
|
|
149
158
|
videoActive: (0, liveShow_1.canPlayInCard)({ session, show: liveNow, screenOnShow }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showPages.js","sourceRoot":"","sources":["../../src/react/showPages.ts"],"names":[],"mappings":";;;AA0DA,sDA+CC;AA0CD,
|
|
1
|
+
{"version":3,"file":"showPages.js","sourceRoot":"","sources":["../../src/react/showPages.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,14 @@ export interface LiveSessionProviderProps {
|
|
|
16
16
|
streamingId?: string;
|
|
17
17
|
/** Shown next to this viewer's own comments and sent with them. Overrides the identity adapter. */
|
|
18
18
|
viewerName?: string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Names this viewer may never be shown under, as the show's team uses them (0.13.0): compared whole,
|
|
21
|
+
* with capitals, accents, spaces and punctuation left out (`isBlockedViewerName`). A blocked name,
|
|
22
|
+
* whether the account's, the identity's or one typed on this phone, counts as no name
|
|
23
|
+
* (`viewerName` null, so the app asks), and `chooseViewerName` refuses one. Defaults to
|
|
24
|
+
* `DEFAULT_BLOCKED_VIEWER_NAMES` (Host, Moderator); an empty list blocks none.
|
|
25
|
+
*/
|
|
26
|
+
blockedNames?: readonly string[];
|
|
19
27
|
/**
|
|
20
28
|
* Called when the system PIP window gives the picture back to a full-screen player: the user expanded
|
|
21
29
|
* a window that the player opened (or, on iOS, came back to the app with it still up). Navigate to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLiveSession.d.ts","sourceRoot":"","sources":["../../src/react/useLiveSession.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA6CvC,OAAO,KAAK,EASV,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AAwCzB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAG,OAAO,KAAK,WAAW,CAAC,IAAI,CAAC,CAIlE;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mGAAmG;IACnG,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,SAAS,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"useLiveSession.d.ts","sourceRoot":"","sources":["../../src/react/useLiveSession.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA6CvC,OAAO,KAAK,EASV,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AAwCzB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAG,OAAO,KAAK,WAAW,CAAC,IAAI,CAAC,CAIlE;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mGAAmG;IACnG,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,SAAS,CAAC;CACrB;AAshDD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,+FA0CnF"}
|
|
@@ -89,8 +89,16 @@ function useLiveSession() {
|
|
|
89
89
|
/* Everything but the stream hold, which belongs to the provider component: it owns which stream this
|
|
90
90
|
hook is watching, so it is the only thing that can pin it. */
|
|
91
91
|
function useSessionValue(props) {
|
|
92
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
92
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
93
93
|
const { streamingId, viewerName: viewerNameInput, onPipRestore } = props;
|
|
94
|
+
const blockedNames = (_a = props.blockedNames) !== null && _a !== void 0 ? _a : showNames_1.DEFAULT_BLOCKED_VIEWER_NAMES;
|
|
95
|
+
const blockedNamesRef = (0, react_1.useRef)(blockedNames);
|
|
96
|
+
blockedNamesRef.current = blockedNames;
|
|
97
|
+
/** A name the room may show for this viewer: made safe (`publicName`) and not one of the team's. */
|
|
98
|
+
const allowedName = (name) => {
|
|
99
|
+
const shown = (0, showNames_1.publicName)(name);
|
|
100
|
+
return shown && !(0, showNames_1.isBlockedViewerName)(shown, blockedNames) ? shown : null;
|
|
101
|
+
};
|
|
94
102
|
const [state, dispatch] = (0, react_1.useReducer)(session_1.sessionReducer, session_1.initialSessionState);
|
|
95
103
|
const [joining, setJoining] = (0, react_1.useState)(false);
|
|
96
104
|
const [error, setError] = (0, react_1.useState)(null);
|
|
@@ -138,8 +146,9 @@ function useSessionValue(props) {
|
|
|
138
146
|
* name is consulted at all so a signed-in bidder is never asked to invent one.
|
|
139
147
|
*/
|
|
140
148
|
const [chosenName, setChosenName] = (0, react_1.useState)(() => liveSelling_1.liveSelling.viewer.cachedName());
|
|
141
|
-
// Every name here is published to the whole room, so none may be an email (`publicName`, 0.9.0)
|
|
142
|
-
|
|
149
|
+
// Every name here is published to the whole room, so none may be an email (`publicName`, 0.9.0), nor
|
|
150
|
+
// a name the show's team goes by (`blockedNames`, 0.13.0).
|
|
151
|
+
const accountName = allowedName(viewerNameInput);
|
|
143
152
|
(0, react_1.useEffect)(() => {
|
|
144
153
|
if (accountName || chosenName)
|
|
145
154
|
return;
|
|
@@ -152,22 +161,22 @@ function useSessionValue(props) {
|
|
|
152
161
|
alive = false;
|
|
153
162
|
};
|
|
154
163
|
}, [accountName, chosenName]);
|
|
155
|
-
const customerName = (
|
|
156
|
-
const namedBy = (
|
|
164
|
+
const customerName = allowedName((_b = identity === null || identity === void 0 ? void 0 : identity.customerName) === null || _b === void 0 ? void 0 : _b.call(identity));
|
|
165
|
+
const namedBy = (_c = accountName !== null && accountName !== void 0 ? accountName : allowedName(chosenName)) !== null && _c !== void 0 ? _c : customerName;
|
|
157
166
|
const viewerName = namedBy !== null && namedBy !== void 0 ? namedBy : 'Anonymous';
|
|
158
|
-
const bidderId = (
|
|
167
|
+
const bidderId = (_e = (_d = identity === null || identity === void 0 ? void 0 : identity.bidderId) === null || _d === void 0 ? void 0 : _d.call(identity)) !== null && _e !== void 0 ? _e : null;
|
|
159
168
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
169
|
+
* The signed-in customer is still loading (app open, or just signed in), so their name isn't known
|
|
170
|
+
* yet. The room waits for it, up to `NAME_WAIT_MS`: it is entered once, and the name it is entered
|
|
171
|
+
* under is the one the host sees join. Before 0.9.2 an app opened during a show joined at once,
|
|
172
|
+
* before the sign-in was read, and every shopper joined as "Anonymous" (2026-10-08).
|
|
162
173
|
*/
|
|
163
|
-
const
|
|
174
|
+
const customerLoading = (_g = (_f = identity === null || identity === void 0 ? void 0 : identity.customerLoading) === null || _f === void 0 ? void 0 : _f.call(identity)) !== null && _g !== void 0 ? _g : false;
|
|
164
175
|
/**
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
* one the host sees join. Before 0.9.2 an app opened during a show joined at once, before the
|
|
168
|
-
* sign-in was read, and every shopper joined as "Anonymous" (2026-10-08).
|
|
176
|
+
* A comment sent now is held until the account has named the shopper (L6), and only while it loads:
|
|
177
|
+
* an account read with no name on it isn't waited for (`waitsForAccountName`, 0.13.0).
|
|
169
178
|
*/
|
|
170
|
-
const
|
|
179
|
+
const nameResolving = (0, heldComments_1.waitsForAccountName)(customerLoading, accountName !== null && accountName !== void 0 ? accountName : customerName);
|
|
171
180
|
const [nameWaitOver, setNameWaitOver] = (0, react_1.useState)(false);
|
|
172
181
|
(0, react_1.useEffect)(() => {
|
|
173
182
|
if (!customerLoading)
|
|
@@ -223,14 +232,18 @@ function useSessionValue(props) {
|
|
|
223
232
|
// A comment held for the last show's room must not be said in this one.
|
|
224
233
|
(_a = heldCommentsRef.current) === null || _a === void 0 ? void 0 : _a.drop();
|
|
225
234
|
}, [watching]);
|
|
226
|
-
/**
|
|
235
|
+
/**
|
|
236
|
+
* The account has loaded: say the name to the engine first, then send what was waiting for it, in
|
|
237
|
+
* order. Loaded with no name, they go under the session's name (one typed on this phone, or
|
|
238
|
+
* "Anonymous"), as they would after the longest wait: an app asks for a name before sending.
|
|
239
|
+
*/
|
|
227
240
|
(0, react_1.useEffect)(() => {
|
|
228
241
|
var _a;
|
|
229
|
-
if (
|
|
242
|
+
if (nameResolving || !((_a = heldCommentsRef.current) === null || _a === void 0 ? void 0 : _a.size))
|
|
230
243
|
return;
|
|
231
244
|
liveSelling_1.liveSelling.engine.setViewerName(namedBy);
|
|
232
245
|
void heldCommentsRef.current.release();
|
|
233
|
-
}, [namedBy]);
|
|
246
|
+
}, [namedBy, nameResolving]);
|
|
234
247
|
(0, react_1.useEffect)(() => liveSelling_1.liveSelling.engine.subscribe((event) => {
|
|
235
248
|
dispatch({ kind: 'event', event, at: Date.now() });
|
|
236
249
|
}), []);
|
|
@@ -305,7 +318,7 @@ function useSessionValue(props) {
|
|
|
305
318
|
* importantly an *unmute*, which is otherwise invisible until the app restarts. Keyed on the joined
|
|
306
319
|
* ids because the array is a fresh object on every poll.
|
|
307
320
|
*/
|
|
308
|
-
const mutedKey = ((
|
|
321
|
+
const mutedKey = ((_h = stream === null || stream === void 0 ? void 0 : stream.mutedDeviceIds) !== null && _h !== void 0 ? _h : []).join(',');
|
|
309
322
|
(0, react_1.useEffect)(() => {
|
|
310
323
|
if (!stream)
|
|
311
324
|
return;
|
|
@@ -328,7 +341,7 @@ function useSessionValue(props) {
|
|
|
328
341
|
*/
|
|
329
342
|
const nothingOnAir = (0, session_1.isNothingOnAir)({
|
|
330
343
|
hasRead,
|
|
331
|
-
streamStatus: (
|
|
344
|
+
streamStatus: (_j = stream === null || stream === void 0 ? void 0 : stream.status) !== null && _j !== void 0 ? _j : null,
|
|
332
345
|
status: derivedStatus,
|
|
333
346
|
});
|
|
334
347
|
const graceMs = (0, client_1.offAirGraceMs)();
|
|
@@ -602,7 +615,7 @@ function useSessionValue(props) {
|
|
|
602
615
|
* enter a giveaway they are already in.
|
|
603
616
|
*/
|
|
604
617
|
const activeGiveaway = (0, react_1.useMemo)(() => { var _a; return (_a = stream === null || stream === void 0 ? void 0 : stream.giveaways.find((giveaway) => giveaway.status === 'active')) !== null && _a !== void 0 ? _a : null; }, [stream]);
|
|
605
|
-
const customerRef = (
|
|
618
|
+
const customerRef = (_l = (_k = identity === null || identity === void 0 ? void 0 : identity.customerRef) === null || _k === void 0 ? void 0 : _k.call(identity)) !== null && _l !== void 0 ? _l : null;
|
|
606
619
|
/**
|
|
607
620
|
* Closes the gap between the realtime giveaway start and the polled record it depends on.
|
|
608
621
|
*
|
|
@@ -782,8 +795,8 @@ function useSessionValue(props) {
|
|
|
782
795
|
* the first record after it is taken whatever it says. Joining counts as a reconnect, so arriving
|
|
783
796
|
* costs one extra read.
|
|
784
797
|
*/
|
|
785
|
-
const recordPin = (
|
|
786
|
-
const recordPinKey = `${watching !== null && watching !== void 0 ? watching : ''}\u0000${(
|
|
798
|
+
const recordPin = (_m = stream === null || stream === void 0 ? void 0 : stream.pinnedComment) !== null && _m !== void 0 ? _m : null;
|
|
799
|
+
const recordPinKey = `${watching !== null && watching !== void 0 ? watching : ''}\u0000${(_o = recordPin === null || recordPin === void 0 ? void 0 : recordPin.id) !== null && _o !== void 0 ? _o : ''}\u0000${(_p = recordPin === null || recordPin === void 0 ? void 0 : recordPin.text) !== null && _p !== void 0 ? _p : ''}`;
|
|
787
800
|
const lastRecordPinKey = (0, react_1.useRef)(null);
|
|
788
801
|
const takeNextRecordPin = (0, react_1.useRef)(false);
|
|
789
802
|
(0, react_1.useEffect)(() => {
|
|
@@ -845,7 +858,7 @@ function useSessionValue(props) {
|
|
|
845
858
|
if (!activeRetryRef.current) {
|
|
846
859
|
activeRetryRef.current = new activeProductRetry_1.ActiveProductRetry(() => setCatalogueRetry((n) => n + 1));
|
|
847
860
|
}
|
|
848
|
-
const featuredId = (
|
|
861
|
+
const featuredId = (_s = (_q = state.activeStoreProductId) !== null && _q !== void 0 ? _q : (_r = stream === null || stream === void 0 ? void 0 : stream.products.find((product) => product.isCurrent)) === null || _r === void 0 ? void 0 : _r.storeProductId) !== null && _s !== void 0 ? _s : null;
|
|
849
862
|
const featuredCatalogueId = featuredId && productKey.split(',').includes(featuredId) ? featuredId : null;
|
|
850
863
|
const answerSeq = (catalogueAnswer === null || catalogueAnswer === void 0 ? void 0 : catalogueAnswer.key) === productKey ? catalogueAnswer.seq : null;
|
|
851
864
|
const hasFeatured = !!featuredCatalogueId &&
|
|
@@ -918,10 +931,10 @@ function useSessionValue(props) {
|
|
|
918
931
|
return null;
|
|
919
932
|
return (_f = products[0]) !== null && _f !== void 0 ? _f : null;
|
|
920
933
|
}, [products, state.activeStoreProductId, stream]);
|
|
921
|
-
const multiplier = (
|
|
934
|
+
const multiplier = (_u = (_t = state.multiplierOverride) !== null && _t !== void 0 ? _t : stream === null || stream === void 0 ? void 0 : stream.viewerMultiplier) !== null && _u !== void 0 ? _u : 1;
|
|
922
935
|
/* Same precedence as the multiplier: the host's live word wins, the record stands until they
|
|
923
936
|
give one. Both fall back rather than throw, so a stream row missing `meta` still renders. */
|
|
924
|
-
const reactionStyle = (
|
|
937
|
+
const reactionStyle = (_w = (_v = state.reactionModeOverride) !== null && _v !== void 0 ? _v : stream === null || stream === void 0 ? void 0 : stream.reactionStyle) !== null && _w !== void 0 ? _w : 'single';
|
|
925
938
|
/**
|
|
926
939
|
* Percentages come off the raw counts, so the multiplier cannot skew them β it inflates only the
|
|
927
940
|
* total on display, exactly as the host's own dashboard does.
|
|
@@ -999,7 +1012,7 @@ function useSessionValue(props) {
|
|
|
999
1012
|
alive = false;
|
|
1000
1013
|
};
|
|
1001
1014
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1002
|
-
}, [(
|
|
1015
|
+
}, [(_x = state.poll) === null || _x === void 0 ? void 0 : _x.pollUuid]);
|
|
1003
1016
|
const bindVideoView = (0, react_1.useCallback)((reactTag, force = false) => {
|
|
1004
1017
|
// Stopped because the app is away: a claim now would start it behind the app, with sound. The
|
|
1005
1018
|
// surface claims again once the app is back (`LiveVideoTarget`'s foreground re-claim).
|
|
@@ -1142,6 +1155,9 @@ function useSessionValue(props) {
|
|
|
1142
1155
|
*/
|
|
1143
1156
|
const chooseViewerName = (0, react_1.useCallback)(async (raw) => {
|
|
1144
1157
|
var _a;
|
|
1158
|
+
// A name the show's team goes by isn't saved (0.13.0): the app says why (`isBlockedViewerName`).
|
|
1159
|
+
if ((0, showNames_1.isBlockedViewerName)(raw, blockedNamesRef.current))
|
|
1160
|
+
return null;
|
|
1145
1161
|
const saved = await liveSelling_1.liveSelling.viewer.saveName(raw);
|
|
1146
1162
|
if (saved) {
|
|
1147
1163
|
liveSelling_1.liveSelling.engine.setViewerName((_a = accountNameRef.current) !== null && _a !== void 0 ? _a : saved);
|
|
@@ -1245,7 +1261,7 @@ function useSessionValue(props) {
|
|
|
1245
1261
|
* into a cart. It is also what comes back on the host's broadcast, so `isLeading` compares like
|
|
1246
1262
|
* with like. Null when signed out, which is exactly when bidding is not offered.
|
|
1247
1263
|
*/
|
|
1248
|
-
const bidderEmail = (
|
|
1264
|
+
const bidderEmail = (_z = (_y = identity === null || identity === void 0 ? void 0 : identity.customerEmail) === null || _y === void 0 ? void 0 : _y.call(identity)) !== null && _z !== void 0 ? _z : null;
|
|
1249
1265
|
const bidder = (0, react_1.useMemo)(() => (bidderId ? { userId: bidderId, userName: viewerName, email: bidderEmail } : null), [bidderId, viewerName, bidderEmail]);
|
|
1250
1266
|
/**
|
|
1251
1267
|
* The hammer, with whether it is this shopper's (0.9.0): they led the round as it closed and the
|