@tiledev/sdk-apptile-live-selling 0.8.1 → 0.9.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/README.md +452 -34
- package/dist/auctionComments.d.ts +25 -0
- package/dist/auctionComments.d.ts.map +1 -0
- package/dist/auctionComments.js +28 -0
- package/dist/auctionComments.js.map +1 -0
- package/dist/auctionRules.d.ts +76 -0
- package/dist/auctionRules.d.ts.map +1 -0
- package/dist/auctionRules.js +106 -0
- package/dist/auctionRules.js.map +1 -0
- package/dist/auctions.d.ts.map +1 -1
- package/dist/auctions.js +19 -10
- package/dist/auctions.js.map +1 -1
- package/dist/client.d.ts +51 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +123 -23
- package/dist/client.js.map +1 -1
- package/dist/commentHistory.d.ts +66 -0
- package/dist/commentHistory.d.ts.map +1 -0
- package/dist/commentHistory.js +125 -0
- package/dist/commentHistory.js.map +1 -0
- package/dist/engine.native.d.ts.map +1 -1
- package/dist/engine.native.js +17 -845
- package/dist/engine.native.js.map +1 -1
- package/dist/giveawayPrize.d.ts +13 -0
- package/dist/giveawayPrize.d.ts.map +1 -0
- package/dist/giveawayPrize.js +18 -0
- package/dist/giveawayPrize.js.map +1 -0
- package/dist/giveawayPrizeLines.d.ts +67 -0
- package/dist/giveawayPrizeLines.d.ts.map +1 -0
- package/dist/giveawayPrizeLines.js +48 -0
- package/dist/giveawayPrizeLines.js.map +1 -0
- package/dist/giveawayRoster.d.ts +53 -0
- package/dist/giveawayRoster.d.ts.map +1 -0
- package/dist/giveawayRoster.js +93 -0
- package/dist/giveawayRoster.js.map +1 -0
- package/dist/heldComments.d.ts +29 -0
- package/dist/heldComments.d.ts.map +1 -0
- package/dist/heldComments.js +61 -0
- package/dist/heldComments.js.map +1 -0
- package/dist/hiddenShows.d.ts +34 -0
- package/dist/hiddenShows.d.ts.map +1 -0
- package/dist/hiddenShows.js +42 -0
- package/dist/hiddenShows.js.map +1 -0
- package/dist/index.d.ts +19 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +93 -3
- package/dist/index.js.map +1 -1
- package/dist/liveHaptics.d.ts +7 -0
- package/dist/liveHaptics.d.ts.map +1 -0
- package/dist/liveHaptics.js +11 -0
- package/dist/liveHaptics.js.map +1 -0
- package/dist/liveHaptics.native.d.ts +7 -0
- package/dist/liveHaptics.native.d.ts.map +1 -0
- package/dist/liveHaptics.native.js +12 -0
- package/dist/liveHaptics.native.js.map +1 -0
- package/dist/liveShow.d.ts +58 -0
- package/dist/liveShow.d.ts.map +1 -0
- package/dist/liveShow.js +55 -0
- package/dist/liveShow.js.map +1 -0
- package/dist/phoneTaps.d.ts +25 -0
- package/dist/phoneTaps.d.ts.map +1 -0
- package/dist/phoneTaps.js +47 -0
- package/dist/phoneTaps.js.map +1 -0
- package/dist/pipWindow.d.ts +85 -0
- package/dist/pipWindow.d.ts.map +1 -0
- package/dist/pipWindow.js +88 -0
- package/dist/pipWindow.js.map +1 -0
- package/dist/polls.d.ts.map +1 -1
- package/dist/polls.js +3 -0
- package/dist/polls.js.map +1 -1
- package/dist/react/LiveSellingProvider.d.ts +10 -1
- package/dist/react/LiveSellingProvider.d.ts.map +1 -1
- package/dist/react/LiveSellingProvider.js +6 -2
- package/dist/react/LiveSellingProvider.js.map +1 -1
- package/dist/react/LiveVideoTarget.d.ts.map +1 -1
- package/dist/react/LiveVideoTarget.js +41 -3
- package/dist/react/LiveVideoTarget.js.map +1 -1
- package/dist/react/clocks.d.ts +29 -0
- package/dist/react/clocks.d.ts.map +1 -0
- package/dist/react/clocks.js +124 -0
- package/dist/react/clocks.js.map +1 -0
- package/dist/react/index.d.ts +7 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +15 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.web.d.ts +9 -2
- package/dist/react/index.web.d.ts.map +1 -1
- package/dist/react/index.web.js +27 -4
- package/dist/react/index.web.js.map +1 -1
- package/dist/react/startSignIn.d.ts +3 -0
- package/dist/react/startSignIn.d.ts.map +1 -0
- package/dist/react/startSignIn.js +19 -0
- package/dist/react/startSignIn.js.map +1 -0
- package/dist/react/useAuctionBidGate.d.ts +54 -4
- package/dist/react/useAuctionBidGate.d.ts.map +1 -1
- package/dist/react/useAuctionBidGate.js +169 -25
- package/dist/react/useAuctionBidGate.js.map +1 -1
- package/dist/react/useAuctionWins.d.ts +9 -1
- package/dist/react/useAuctionWins.d.ts.map +1 -1
- package/dist/react/useAuctionWins.js +9 -3
- package/dist/react/useAuctionWins.js.map +1 -1
- package/dist/react/useGiveawayEntry.d.ts +59 -0
- package/dist/react/useGiveawayEntry.d.ts.map +1 -0
- package/dist/react/useGiveawayEntry.js +170 -0
- package/dist/react/useGiveawayEntry.js.map +1 -0
- package/dist/react/useGiveawayPrize.d.ts +12 -0
- package/dist/react/useGiveawayPrize.d.ts.map +1 -0
- package/dist/react/useGiveawayPrize.js +53 -0
- package/dist/react/useGiveawayPrize.js.map +1 -0
- package/dist/react/useHiddenShows.d.ts +10 -0
- package/dist/react/useHiddenShows.d.ts.map +1 -0
- package/dist/react/useHiddenShows.js +30 -0
- package/dist/react/useHiddenShows.js.map +1 -0
- package/dist/react/useLiveSession.d.ts +7 -3
- package/dist/react/useLiveSession.d.ts.map +1 -1
- package/dist/react/useLiveSession.js +522 -157
- package/dist/react/useLiveSession.js.map +1 -1
- package/dist/react/useLiveShow.d.ts +3 -0
- package/dist/react/useLiveShow.d.ts.map +1 -0
- package/dist/react/useLiveShow.js +21 -0
- package/dist/react/useLiveShow.js.map +1 -0
- package/dist/react/useLiveStreams.d.ts.map +1 -1
- package/dist/react/useLiveStreams.js +6 -2
- package/dist/react/useLiveStreams.js.map +1 -1
- package/dist/react/useOngoingLive.d.ts +1 -0
- package/dist/react/useOngoingLive.d.ts.map +1 -1
- package/dist/react/useOngoingLive.js +7 -1
- package/dist/react/useOngoingLive.js.map +1 -1
- package/dist/react/useReplays.d.ts +12 -0
- package/dist/react/useReplays.d.ts.map +1 -1
- package/dist/react/useReplays.js +56 -24
- package/dist/react/useReplays.js.map +1 -1
- package/dist/react/useStreamInfo.d.ts +13 -2
- package/dist/react/useStreamInfo.d.ts.map +1 -1
- package/dist/react/useStreamInfo.js +31 -5
- package/dist/react/useStreamInfo.js.map +1 -1
- package/dist/replayPages.d.ts +31 -0
- package/dist/replayPages.d.ts.map +1 -0
- package/dist/replayPages.js +34 -0
- package/dist/replayPages.js.map +1 -0
- package/dist/replays.d.ts +7 -0
- package/dist/replays.d.ts.map +1 -1
- package/dist/replays.js +52 -22
- package/dist/replays.js.map +1 -1
- package/dist/session.d.ts +39 -6
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +209 -22
- package/dist/session.js.map +1 -1
- package/dist/sessionTypes.d.ts +190 -14
- package/dist/sessionTypes.d.ts.map +1 -1
- package/dist/sessionTypes.js +2 -1
- package/dist/sessionTypes.js.map +1 -1
- package/dist/shopifyCommerce.d.ts +149 -0
- package/dist/shopifyCommerce.d.ts.map +1 -0
- package/dist/shopifyCommerce.js +123 -0
- package/dist/shopifyCommerce.js.map +1 -0
- package/dist/shopifyIdentity.d.ts +51 -0
- package/dist/shopifyIdentity.d.ts.map +1 -0
- package/dist/shopifyIdentity.js +52 -0
- package/dist/shopifyIdentity.js.map +1 -0
- package/dist/shopifyIds.d.ts +9 -0
- package/dist/shopifyIds.d.ts.map +1 -0
- package/dist/shopifyIds.js +18 -0
- package/dist/shopifyIds.js.map +1 -0
- package/dist/showLinks.d.ts +24 -0
- package/dist/showLinks.d.ts.map +1 -0
- package/dist/showLinks.js +23 -0
- package/dist/showLinks.js.map +1 -0
- package/dist/showLots.d.ts +28 -0
- package/dist/showLots.d.ts.map +1 -0
- package/dist/showLots.js +51 -0
- package/dist/showLots.js.map +1 -0
- package/dist/showNames.d.ts +45 -0
- package/dist/showNames.d.ts.map +1 -0
- package/dist/showNames.js +74 -0
- package/dist/showNames.js.map +1 -0
- package/dist/streams.d.ts +27 -1
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +84 -21
- package/dist/streams.js.map +1 -1
- package/dist/types.d.ts +214 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/dist/wire.d.ts +31 -0
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +25 -0
- package/dist/wire.js.map +1 -1
- package/dist/zego.d.ts +3 -1
- package/dist/zego.d.ts.map +1 -1
- package/dist/zego.js +1 -1
- package/dist/zegoEngine.d.ts +168 -0
- package/dist/zegoEngine.d.ts.map +1 -0
- package/dist/zegoEngine.js +1052 -0
- package/dist/zegoEngine.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PIP_DISARM_GRACE_MS = void 0;
|
|
4
|
+
exports.ownsSystemPipWindow = ownsSystemPipWindow;
|
|
5
|
+
exports.whereTheWindowCameFrom = whereTheWindowCameFrom;
|
|
6
|
+
exports.shouldArmSystemWindow = shouldArmSystemWindow;
|
|
7
|
+
exports.isWindowStillUpOnReturn = isWindowStillUpOnReturn;
|
|
8
|
+
exports.isPipUnavailableMessage = isPipUnavailableMessage;
|
|
9
|
+
/**
|
|
10
|
+
* How long after the session disarms that a window opening is still counted as the one it armed.
|
|
11
|
+
* The same beat the session gives the OS to grant a window (`PIP_GRANT_MS`).
|
|
12
|
+
*/
|
|
13
|
+
exports.PIP_DISARM_GRACE_MS = 1200;
|
|
14
|
+
/**
|
|
15
|
+
* Whether a system window that just opened (`onPipStart`) is this live session's.
|
|
16
|
+
*
|
|
17
|
+
* On iOS the window is fed by the session's own frame pipeline, so it is ours exactly when a surface
|
|
18
|
+
* is up for it — the in-app bubble, or a player holding the handover.
|
|
19
|
+
*
|
|
20
|
+
* On **Android** the window IS the activity, and the OS opens it by itself off the arm the session
|
|
21
|
+
* set. By the time `onPipStart` reaches JavaScript the player has often already let go of the
|
|
22
|
+
* handover (navigation or focus moved in the same instant), so the old test — bubble or handover —
|
|
23
|
+
* said "not ours", `pipMode` never became `system`, and then the window's close button did not stop
|
|
24
|
+
* playback and its expand button did not open the player (Freckled Poppy, Android 16). The arm state
|
|
25
|
+
* decides instead: armed now, or disarmed within `PIP_DISARM_GRACE_MS`. Anything else minimising into
|
|
26
|
+
* a window — a replay's own player — was never armed by this session and stays not ours.
|
|
27
|
+
*/
|
|
28
|
+
function ownsSystemPipWindow(context) {
|
|
29
|
+
if (context.pipMode === 'inapp' || context.handoverWanted)
|
|
30
|
+
return true;
|
|
31
|
+
if (context.platform !== 'android')
|
|
32
|
+
return false;
|
|
33
|
+
if (context.armed)
|
|
34
|
+
return true;
|
|
35
|
+
return context.disarmedAt > 0 && context.now - context.disarmedAt <= exports.PIP_DISARM_GRACE_MS;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Where the system window that just opened took the picture from, so coming back puts it there again:
|
|
39
|
+
* the in-app bubble (`'inapp'`) if it was up, otherwise a full-screen player (`'none'`).
|
|
40
|
+
*
|
|
41
|
+
* `rememberedBefore` is kept when the session already counts the window as up (`'system'`): a second
|
|
42
|
+
* start for one window must not forget where the first one came from.
|
|
43
|
+
*/
|
|
44
|
+
function whereTheWindowCameFrom(pipModeAsItOpened, rememberedBefore) {
|
|
45
|
+
if (pipModeAsItOpened === 'system')
|
|
46
|
+
return rememberedBefore;
|
|
47
|
+
return pipModeAsItOpened;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Whether the OS may open its window when the app is put away.
|
|
51
|
+
*
|
|
52
|
+
* Only while there is a picture to hand over: the in-app bubble or a full-screen player holding the
|
|
53
|
+
* show, and the show `playing`. Joining, waiting for the host (camera off) and ended have no picture,
|
|
54
|
+
* and a window of them is an empty black box; the app is simply put away, and the session stops
|
|
55
|
+
* playback after `PIP_GRANT_MS` as it does whenever no window comes. Once the window is up it stays
|
|
56
|
+
* armed whatever the status does: disarming tears the window down on iOS, and a host stepping off
|
|
57
|
+
* camera for a moment is no reason to close it (the session leaves `system` itself when the show ends).
|
|
58
|
+
*/
|
|
59
|
+
function shouldArmSystemWindow(context) {
|
|
60
|
+
if (context.pipMode === 'system')
|
|
61
|
+
return true;
|
|
62
|
+
const surfaceWantsIt = context.pipMode === 'inapp' || context.handoverWanted;
|
|
63
|
+
return surfaceWantsIt && context.status === 'playing';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Whether the app came back to the foreground with this session's window still up.
|
|
67
|
+
*
|
|
68
|
+
* iOS only. Expanding the window raises `onPipRestore`; whether coming back by the app's own icon (or a
|
|
69
|
+
* notification) does the same is iOS's choice, not ours. When it does not, the window would float over
|
|
70
|
+
* the app with the show in it while the app's own surface stood aside, so the session takes the window
|
|
71
|
+
* down itself and gives the picture back. If the restore and the return both arrive, whichever comes
|
|
72
|
+
* second finds the window already handed back and does nothing. Never on Android: there the window IS the app, and
|
|
73
|
+
* `AppState` reads `active` for as long as the window is up (`LivePipModule.keepRenderingWhileInPip`).
|
|
74
|
+
*/
|
|
75
|
+
function isWindowStillUpOnReturn(platform, pipMode) {
|
|
76
|
+
return platform === 'ios' && pipMode === 'system';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Whether an `onPipError` says the device has no picture-in-picture at all (L21).
|
|
80
|
+
*
|
|
81
|
+
* The native module answers every arming on such an Android device with this error, so a session that
|
|
82
|
+
* reported it at `error` level filed a crash report each time the bubble opened. It is a fact about
|
|
83
|
+
* the device, said once, and the session stops arming after it.
|
|
84
|
+
*/
|
|
85
|
+
function isPipUnavailableMessage(message) {
|
|
86
|
+
return typeof message === 'string' && /not available on this device/i.test(message);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=pipWindow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipWindow.js","sourceRoot":"","sources":["../src/pipWindow.ts"],"names":[],"mappings":";;;AAuCA,kDAKC;AAYD,wDAMC;AAoBD,sDAIC;AAYD,0DAEC;AASD,0DAEC;AAzGD;;;GAGG;AACU,QAAA,mBAAmB,GAAG,IAAK,CAAC;AAezC;;;;;;;;;;;;;GAaG;AACH,SAAgB,mBAAmB,CAAC,OAAyB;IAC3D,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,2BAAmB,CAAC;AAC3F,CAAC;AAKD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,iBAA8B,EAC9B,gBAAsC;IAEtC,IAAI,iBAAiB,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC;IAC5D,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAUD;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CAAC,OAAmB;IACvD,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAC7E,OAAO,cAAc,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;AACxD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,uBAAuB,CAAC,QAAgB,EAAE,OAAoB;IAC5E,OAAO,QAAQ,KAAK,KAAK,IAAI,OAAO,KAAK,QAAQ,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtF,CAAC"}
|
package/dist/polls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polls.d.ts","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAkB,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnF,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"polls.d.ts","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAkB,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnF,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CA+BxD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAoBtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAGtE;AAqBD,eAAO,MAAM,KAAK,EAAE,QA6BnB,CAAC"}
|
package/dist/polls.js
CHANGED
|
@@ -55,6 +55,9 @@ function toLivePoll(raw) {
|
|
|
55
55
|
question: (_c = (0, wire_1.str)((0, wire_1.get)(wire, 'question'))) !== null && _c !== void 0 ? _c : '',
|
|
56
56
|
options,
|
|
57
57
|
wireOptionIds,
|
|
58
|
+
// The record keeps its last poll after it closes; the session raises one off the record only while
|
|
59
|
+
// this says "active" (or says nothing).
|
|
60
|
+
status: (0, wire_1.str)((0, wire_1.get)(wire, 'status')),
|
|
58
61
|
};
|
|
59
62
|
}
|
|
60
63
|
function toLivePollResults(raw) {
|
package/dist/polls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polls.js","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":";;;AA+BA,
|
|
1
|
+
{"version":3,"file":"polls.js","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,22 @@ export interface LiveSellingContextType {
|
|
|
4
4
|
ready: boolean;
|
|
5
5
|
error: string | null;
|
|
6
6
|
client: LiveSellingClient;
|
|
7
|
+
/** The signed-in viewer's email (`LiveSellingProvider`'s `viewerEmail`), or null. Since 0.9.0. */
|
|
8
|
+
viewerEmail: string | null;
|
|
7
9
|
}
|
|
8
10
|
export interface LiveSellingProviderProps {
|
|
9
11
|
children: ReactNode;
|
|
10
12
|
config: LiveSellingConfig;
|
|
11
13
|
/** Every live-engine event, for a host that wants to react without subscribing to the engine. */
|
|
12
14
|
onEvent?: (event: LiveEvent) => void;
|
|
15
|
+
/**
|
|
16
|
+
* The signed-in shopper's email, or null when signed out (0.9.0). Decides which hidden shows they
|
|
17
|
+
* see (`config.hiddenShows`): every hook that hands out shows reads it from here, so a show can't be
|
|
18
|
+
* hidden on one screen and shown on another. A prop, so a sign-in or sign-out reaches every hook at
|
|
19
|
+
* once. Only matters with `hiddenShows` set.
|
|
20
|
+
*/
|
|
21
|
+
viewerEmail?: string | null;
|
|
13
22
|
}
|
|
14
|
-
export declare function LiveSellingProvider({ children, config, onEvent }: LiveSellingProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<LiveSellingContextType | undefined>>;
|
|
23
|
+
export declare function LiveSellingProvider({ children, config, onEvent, viewerEmail }: LiveSellingProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<LiveSellingContextType | undefined>>;
|
|
15
24
|
export declare function useLiveSelling(): LiveSellingContextType;
|
|
16
25
|
//# sourceMappingURL=LiveSellingProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveSellingProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiveSellingProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,kGAAkG;IAClG,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,iGAAiG;IACjG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAID,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,wBAAwB,+GA8BvG;AAED,wBAAgB,cAAc,IAAI,sBAAsB,CAIvD"}
|
|
@@ -11,11 +11,14 @@ exports.useLiveSelling = useLiveSelling;
|
|
|
11
11
|
*
|
|
12
12
|
* `onEvent` is a passthrough of the live engine's `LiveEvent` union, so a host can react to comments,
|
|
13
13
|
* bids, sold announcements and co-host signals without subscribing to the engine directly.
|
|
14
|
+
*
|
|
15
|
+
* `viewerEmail` is who is watching, for the hidden shows (`config.hiddenShows`); `useHiddenShows`
|
|
16
|
+
* (its own file) reads it with the rule for the hooks that hand out shows.
|
|
14
17
|
*/
|
|
15
18
|
const react_1 = require("react");
|
|
16
19
|
const liveSelling_1 = require("../liveSelling");
|
|
17
20
|
const LiveSellingContext = (0, react_1.createContext)(undefined);
|
|
18
|
-
function LiveSellingProvider({ children, config, onEvent }) {
|
|
21
|
+
function LiveSellingProvider({ children, config, onEvent, viewerEmail }) {
|
|
19
22
|
const [ready, setReady] = (0, react_1.useState)(false);
|
|
20
23
|
const [error, setError] = (0, react_1.useState)(null);
|
|
21
24
|
(0, react_1.useEffect)(() => {
|
|
@@ -37,7 +40,8 @@ function LiveSellingProvider({ children, config, onEvent }) {
|
|
|
37
40
|
return;
|
|
38
41
|
return liveSelling_1.liveSelling.engine.subscribe(onEvent);
|
|
39
42
|
}, [onEvent]);
|
|
40
|
-
const
|
|
43
|
+
const email = (viewerEmail === null || viewerEmail === void 0 ? void 0 : viewerEmail.trim()) || null;
|
|
44
|
+
const value = (0, react_1.useMemo)(() => ({ ready, error, client: liveSelling_1.liveSelling, viewerEmail: email }), [ready, error, email]);
|
|
41
45
|
return (0, react_1.createElement)(LiveSellingContext.Provider, { value }, children);
|
|
42
46
|
}
|
|
43
47
|
function useLiveSelling() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveSellingProvider.js","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"LiveSellingProvider.js","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":";;AA2CA,kDA8BC;AAED,wCAIC;AA/ED;;;;;;;;;;;;GAYG;AACH,iCAA+F;AAG/F,gDAA6C;AAyB7C,MAAM,kBAAkB,GAAG,IAAA,qBAAa,EAAqC,SAAS,CAAC,CAAC;AAExF,SAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAA4B;IACtG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAExD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC;YACH,yBAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,mFAAmF;YACnF,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,yDAAyD;QACzD,uDAAuD;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEhE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,yBAAW,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,KAAK,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,EAAE,KAAI,IAAI,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAA,eAAO,EACnB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAW,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EACjE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CACtB,CAAC;IAEF,OAAO,IAAA,qBAAa,EAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IACtF,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveVideoTarget.d.ts","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAiB,SAAS,EAAO,MAAM,OAAO,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"LiveVideoTarget.d.ts","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAiB,SAAS,EAAO,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAsB,IAAI,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwBzD,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,SAA4B,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,eAAe,+FAG1B,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,OAAe,EACf,KAAK,EACL,QAAQ,GACT,EAAE,oBAAoB,6CAuGtB"}
|
|
@@ -51,7 +51,9 @@ exports.NativeVideoView = (0, react_1.forwardRef)(function NativeVideoView(props
|
|
|
51
51
|
function LiveVideoTarget({ active, muted, autoPip = false, style, children, }) {
|
|
52
52
|
const viewRef = (0, react_1.useRef)(null);
|
|
53
53
|
const { status, muted: shopperMuted, actions } = (0, useLiveSession_1.useLiveSession)();
|
|
54
|
-
|
|
54
|
+
/* `force` is false only from the foreground re-claim below; `onLayout` passes its event here, so
|
|
55
|
+
anything but an explicit `false` forces. */
|
|
56
|
+
const claim = (0, react_1.useCallback)((force = true) => {
|
|
55
57
|
if (!active)
|
|
56
58
|
return;
|
|
57
59
|
if (status !== 'playing' && status !== 'connecting')
|
|
@@ -61,9 +63,41 @@ function LiveVideoTarget({ active, muted, autoPip = false, style, children, }) {
|
|
|
61
63
|
return;
|
|
62
64
|
// Forced: this runs when the surface takes ownership, and the engine may still believe it is
|
|
63
65
|
// rendering into this view when in fact the view was torn down behind another screen.
|
|
64
|
-
actions.bindVideoView(tag,
|
|
66
|
+
actions.bindVideoView(tag, force !== false);
|
|
65
67
|
}, [active, status, actions]);
|
|
66
68
|
(0, react_1.useEffect)(claim, [claim]);
|
|
69
|
+
/**
|
|
70
|
+
* Back from the background: take the picture again if the engine let go of it.
|
|
71
|
+
*
|
|
72
|
+
* With no system window granted, the session stops playback a moment after the app leaves, and that
|
|
73
|
+
* forgets the bound view. Coming back, the session's own foreground handler re-issues playback only
|
|
74
|
+
* into a view it still has — none — and nothing here re-ran, because `active` and `status` had not
|
|
75
|
+
* changed: a blank surface over a show that was playing (ENG-580, the white bubble after a comment
|
|
76
|
+
* link). Freckled Poppy withheld `active` for one commit to force a re-claim; this asks directly.
|
|
77
|
+
*
|
|
78
|
+
* Unforced, so a view the engine is still playing into is left alone, and on the next task rather
|
|
79
|
+
* than now, so the session's own re-issue goes first.
|
|
80
|
+
*/
|
|
81
|
+
const claimRef = (0, react_1.useRef)(claim);
|
|
82
|
+
claimRef.current = claim;
|
|
83
|
+
(0, react_1.useEffect)(() => {
|
|
84
|
+
let pending = null;
|
|
85
|
+
const subscription = react_native_1.AppState.addEventListener('change', (next) => {
|
|
86
|
+
if (next !== 'active')
|
|
87
|
+
return;
|
|
88
|
+
if (pending)
|
|
89
|
+
clearTimeout(pending);
|
|
90
|
+
pending = setTimeout(() => {
|
|
91
|
+
pending = null;
|
|
92
|
+
claimRef.current(false);
|
|
93
|
+
}, 0);
|
|
94
|
+
});
|
|
95
|
+
return () => {
|
|
96
|
+
subscription.remove();
|
|
97
|
+
if (pending)
|
|
98
|
+
clearTimeout(pending);
|
|
99
|
+
};
|
|
100
|
+
}, []);
|
|
67
101
|
/**
|
|
68
102
|
* The sound, in its own effect — and the split from `claim` is load-bearing twice over.
|
|
69
103
|
*
|
|
@@ -79,6 +113,10 @@ function LiveVideoTarget({ active, muted, autoPip = false, style, children, }) {
|
|
|
79
113
|
* write nothing at all, which kept a handover clean — the arriving surface states the answer — but
|
|
80
114
|
* also left the room audible when NOTHING arrived. It now stands the room down instead, deferred so
|
|
81
115
|
* a handover still reads as one continuous sound; see `videoTargets`.
|
|
116
|
+
*
|
|
117
|
+
* Restated on every `status` change as well. A card mounted during a cold start said "silent" while
|
|
118
|
+
* the engine did not exist yet, and nothing said it again once it did: the host was audible over
|
|
119
|
+
* the Home tab (Freckled Poppy). `connecting` → `playing` is exactly the moment to repeat it.
|
|
82
120
|
*/
|
|
83
121
|
(0, react_1.useEffect)(() => {
|
|
84
122
|
if (!active) {
|
|
@@ -89,7 +127,7 @@ function LiveVideoTarget({ active, muted, autoPip = false, style, children, }) {
|
|
|
89
127
|
const release = (0, videoTargets_1.holdVideoTarget)();
|
|
90
128
|
actions.setOutputMuted(muted !== null && muted !== void 0 ? muted : shopperMuted);
|
|
91
129
|
return release;
|
|
92
|
-
}, [active, muted, shopperMuted, actions]);
|
|
130
|
+
}, [active, muted, shopperMuted, status, actions]);
|
|
93
131
|
/**
|
|
94
132
|
* The handover request, released on the way out.
|
|
95
133
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveVideoTarget.js","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":";;;AA0FA,
|
|
1
|
+
{"version":3,"file":"LiveVideoTarget.js","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long until a countdown with `timeLeftMs` to go shows a different second, plus a few
|
|
3
|
+
* milliseconds. The countdown shows `Math.ceil(timeLeftMs / 1000)`, which changes each time the time
|
|
4
|
+
* left crosses a whole second. Null once nothing is left: the countdown stays at zero.
|
|
5
|
+
*/
|
|
6
|
+
export declare function waitBeforeCountdownChanges(timeLeftMs: number): number | null;
|
|
7
|
+
/**
|
|
8
|
+
* How long until the show's clock, `elapsedMs` since the start, shows a different second, plus a few
|
|
9
|
+
* milliseconds. The clock shows `Math.floor(elapsedMs / 1000)`. Before the start (negative: the phone's
|
|
10
|
+
* clock is behind the gateway's) it shows 0 until one second past the start.
|
|
11
|
+
*/
|
|
12
|
+
export declare function waitBeforeShowClockChanges(elapsedMs: number): number;
|
|
13
|
+
/**
|
|
14
|
+
* The time left until `closesAt` (ms, ≥ 0): the auction round's countdown.
|
|
15
|
+
*
|
|
16
|
+
* Pass `session.auction.closesAt`. The component that calls this is drawn again once a second, as the
|
|
17
|
+
* second it shows (`Math.ceil(timeLeftMs / 1000)`) changes, and never after the countdown reaches zero.
|
|
18
|
+
* With no round (`null`) it is 0 and nothing runs.
|
|
19
|
+
*/
|
|
20
|
+
export declare function useAuctionCountdown(closesAt: number | null | undefined): number;
|
|
21
|
+
/**
|
|
22
|
+
* The time since `startedAt` (ms, ≥ 0): the show's clock.
|
|
23
|
+
*
|
|
24
|
+
* Pass `session.stream?.startedAtMs`. The component that calls this is drawn again once a second, as
|
|
25
|
+
* the second it shows (`Math.floor(elapsedMs / 1000)`) changes. With no start time (`null`) it is 0 and
|
|
26
|
+
* nothing runs; pass `null` too while the clock isn't shown (an ended show) to stop it.
|
|
27
|
+
*/
|
|
28
|
+
export declare function useShowClock(startedAt: number | null | undefined): number;
|
|
29
|
+
//# sourceMappingURL=clocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clocks.d.ts","sourceRoot":"","sources":["../../src/react/clocks.ts"],"names":[],"mappings":"AA0CA;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAuB/E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAqBzE"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.waitBeforeCountdownChanges = waitBeforeCountdownChanges;
|
|
4
|
+
exports.waitBeforeShowClockChanges = waitBeforeShowClockChanges;
|
|
5
|
+
exports.useAuctionCountdown = useAuctionCountdown;
|
|
6
|
+
exports.useShowClock = useShowClock;
|
|
7
|
+
/**
|
|
8
|
+
* The two clocks a live screen shows, kept inside the component that shows them.
|
|
9
|
+
*
|
|
10
|
+
* The session holds moments, never clocks: `auction.closesAt` (when the round closes) and
|
|
11
|
+
* `stream.startedAtMs` (when the show started). A session that ticked drew every component reading it
|
|
12
|
+
* on every tick, and the session is app-wide — before 0.9.0 that was every reader, five times a second
|
|
13
|
+
* during an auction round. These hooks count to a moment inside the one component that calls them, so
|
|
14
|
+
* only that component is drawn again as its clock moves.
|
|
15
|
+
*
|
|
16
|
+
* **Once a second, on the second.** Each hook wakes a few milliseconds after the second it shows
|
|
17
|
+
* changes, never on a free-running interval: a 1 s interval started at an arbitrary moment drifts
|
|
18
|
+
* against the deadline and shows one second twice and skips another (which is why the session's old
|
|
19
|
+
* auction clock ran at 200 ms). The clocks apps draw show whole seconds, so nothing they show changes
|
|
20
|
+
* between two wakes.
|
|
21
|
+
*
|
|
22
|
+
* **They read `Date.now()` as they draw.** A wake only asks for the component to be drawn again; the
|
|
23
|
+
* time left (or since the start) is worked out at the moment of drawing, so a component drawn for any
|
|
24
|
+
* other reason — a new bid, a new deadline — shows the right second too, with no stored time to go
|
|
25
|
+
* stale.
|
|
26
|
+
*
|
|
27
|
+
* They take the moment as a number rather than reading the session, so a tile can call them with its
|
|
28
|
+
* own props, and they work outside `LiveSessionProvider` and on the web. Only `react` is imported, so
|
|
29
|
+
* this file (and the pure helpers in it) loads in Node and in a test runner with no native modules.
|
|
30
|
+
*/
|
|
31
|
+
const react_1 = require("react");
|
|
32
|
+
const SECOND_MS = 1000;
|
|
33
|
+
/** How far past the edge of a second to wake, so the second shown has surely changed. */
|
|
34
|
+
const PAST_THE_EDGE_MS = 5;
|
|
35
|
+
/**
|
|
36
|
+
* The longest single wait before the show starts. A start time far in the future (bad data, or a phone
|
|
37
|
+
* clock hours out) would otherwise ask for a timer longer than a timer can hold, which fires at once.
|
|
38
|
+
*/
|
|
39
|
+
const LONGEST_WAIT_MS = 60 * SECOND_MS;
|
|
40
|
+
/** A time in milliseconds, or null for anything that isn't one. */
|
|
41
|
+
function timeOrNull(value) {
|
|
42
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* How long until a countdown with `timeLeftMs` to go shows a different second, plus a few
|
|
46
|
+
* milliseconds. The countdown shows `Math.ceil(timeLeftMs / 1000)`, which changes each time the time
|
|
47
|
+
* left crosses a whole second. Null once nothing is left: the countdown stays at zero.
|
|
48
|
+
*/
|
|
49
|
+
function waitBeforeCountdownChanges(timeLeftMs) {
|
|
50
|
+
if (!(timeLeftMs > 0))
|
|
51
|
+
return null;
|
|
52
|
+
return (timeLeftMs % SECOND_MS || SECOND_MS) + PAST_THE_EDGE_MS;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* How long until the show's clock, `elapsedMs` since the start, shows a different second, plus a few
|
|
56
|
+
* milliseconds. The clock shows `Math.floor(elapsedMs / 1000)`. Before the start (negative: the phone's
|
|
57
|
+
* clock is behind the gateway's) it shows 0 until one second past the start.
|
|
58
|
+
*/
|
|
59
|
+
function waitBeforeShowClockChanges(elapsedMs) {
|
|
60
|
+
const untilNextSecond = elapsedMs < 0 ? SECOND_MS - elapsedMs : SECOND_MS - (elapsedMs % SECOND_MS);
|
|
61
|
+
return Math.min(untilNextSecond + PAST_THE_EDGE_MS, LONGEST_WAIT_MS);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The time left until `closesAt` (ms, ≥ 0): the auction round's countdown.
|
|
65
|
+
*
|
|
66
|
+
* Pass `session.auction.closesAt`. The component that calls this is drawn again once a second, as the
|
|
67
|
+
* second it shows (`Math.ceil(timeLeftMs / 1000)`) changes, and never after the countdown reaches zero.
|
|
68
|
+
* With no round (`null`) it is 0 and nothing runs.
|
|
69
|
+
*/
|
|
70
|
+
function useAuctionCountdown(closesAt) {
|
|
71
|
+
const deadline = timeOrNull(closesAt);
|
|
72
|
+
/** Counts the wakes. The number means nothing; setting it is what draws this component again. */
|
|
73
|
+
const [, setWakes] = (0, react_1.useState)(0);
|
|
74
|
+
(0, react_1.useEffect)(() => {
|
|
75
|
+
if (deadline === null)
|
|
76
|
+
return;
|
|
77
|
+
let timer = null;
|
|
78
|
+
const waitForNextSecond = () => {
|
|
79
|
+
const wait = waitBeforeCountdownChanges(deadline - Date.now());
|
|
80
|
+
if (wait === null)
|
|
81
|
+
return;
|
|
82
|
+
timer = setTimeout(() => {
|
|
83
|
+
setWakes((wakes) => wakes + 1);
|
|
84
|
+
waitForNextSecond();
|
|
85
|
+
}, wait);
|
|
86
|
+
};
|
|
87
|
+
waitForNextSecond();
|
|
88
|
+
return () => {
|
|
89
|
+
if (timer)
|
|
90
|
+
clearTimeout(timer);
|
|
91
|
+
};
|
|
92
|
+
}, [deadline]);
|
|
93
|
+
return deadline === null ? 0 : Math.max(0, deadline - Date.now());
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The time since `startedAt` (ms, ≥ 0): the show's clock.
|
|
97
|
+
*
|
|
98
|
+
* Pass `session.stream?.startedAtMs`. The component that calls this is drawn again once a second, as
|
|
99
|
+
* the second it shows (`Math.floor(elapsedMs / 1000)`) changes. With no start time (`null`) it is 0 and
|
|
100
|
+
* nothing runs; pass `null` too while the clock isn't shown (an ended show) to stop it.
|
|
101
|
+
*/
|
|
102
|
+
function useShowClock(startedAt) {
|
|
103
|
+
const start = timeOrNull(startedAt);
|
|
104
|
+
/** Counts the wakes. The number means nothing; setting it is what draws this component again. */
|
|
105
|
+
const [, setWakes] = (0, react_1.useState)(0);
|
|
106
|
+
(0, react_1.useEffect)(() => {
|
|
107
|
+
if (start === null)
|
|
108
|
+
return;
|
|
109
|
+
let timer = null;
|
|
110
|
+
const waitForNextSecond = () => {
|
|
111
|
+
timer = setTimeout(() => {
|
|
112
|
+
setWakes((wakes) => wakes + 1);
|
|
113
|
+
waitForNextSecond();
|
|
114
|
+
}, waitBeforeShowClockChanges(Date.now() - start));
|
|
115
|
+
};
|
|
116
|
+
waitForNextSecond();
|
|
117
|
+
return () => {
|
|
118
|
+
if (timer)
|
|
119
|
+
clearTimeout(timer);
|
|
120
|
+
};
|
|
121
|
+
}, [start]);
|
|
122
|
+
return start === null ? 0 : Math.max(0, Date.now() - start);
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=clocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clocks.js","sourceRoot":"","sources":["../../src/react/clocks.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* client and the native engine work without React entirely.
|
|
6
6
|
*/
|
|
7
7
|
export { LiveSellingProvider, useLiveSelling, type LiveSellingProviderProps, type LiveSellingContextType, } from './LiveSellingProvider';
|
|
8
|
+
export { useHiddenShows, type HiddenShowsForViewer } from './useHiddenShows';
|
|
8
9
|
export { useOngoingLive, type UseOngoingLiveState } from './useOngoingLive';
|
|
9
10
|
export { refreshOngoingLive } from '../ongoingLiveStore';
|
|
10
11
|
export { useLiveStreams, type UseLiveStreamsState } from './useLiveStreams';
|
|
@@ -12,9 +13,13 @@ export { useAuction, type UseAuctionState } from './useAuction';
|
|
|
12
13
|
export { useReplays, type UseReplaysOptions, type UseReplaysState } from './useReplays';
|
|
13
14
|
export { useClips, type UseClipsState } from './useClips';
|
|
14
15
|
export { LiveSessionProvider, useLiveSession, type LiveSessionProviderProps, } from './useLiveSession';
|
|
15
|
-
export {
|
|
16
|
+
export { useLiveShow } from './useLiveShow';
|
|
17
|
+
export { useAuctionCountdown, useShowClock } from './clocks';
|
|
18
|
+
export { useStreamInfo, refreshStreamRecords, refreshStreamRecordsIfStale, type UseStreamInfoState, } from './useStreamInfo';
|
|
16
19
|
export { LiveVideoTarget, NativeVideoView, isNativeVideoSupported, type LiveVideoTargetProps, } from './LiveVideoTarget';
|
|
17
|
-
export { useAuctionBidGate, SHEET_HANDOFF_MS, type AuctionBidGate, type BidBlocker } from './useAuctionBidGate';
|
|
20
|
+
export { useAuctionBidGate, SHEET_HANDOFF_MS, type AuctionBidGate, type BidBlocker, type BidRefusal, type UseAuctionBidGateOptions, } from './useAuctionBidGate';
|
|
21
|
+
export { useGiveawayEntry, type GiveawayDraw, type UseGiveawayEntryState, type SessionForGiveaway, type UseGiveawayEntryOptions, } from './useGiveawayEntry';
|
|
22
|
+
export { useGiveawayPrize, type UseGiveawayPrizeState } from './useGiveawayPrize';
|
|
18
23
|
export { useAuctionWins, type AuctionWinRow, type UseAuctionWinsOptions, type UseAuctionWinsState, } from './useAuctionWins';
|
|
19
24
|
export { nativeViewTag } from '../nativeViewTag';
|
|
20
25
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/react/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nativeViewTag = exports.useAuctionWins = exports.SHEET_HANDOFF_MS = exports.useAuctionBidGate = exports.isNativeVideoSupported = exports.NativeVideoView = exports.LiveVideoTarget = exports.refreshStreamRecordsIfStale = exports.refreshStreamRecords = exports.useStreamInfo = exports.useLiveSession = exports.LiveSessionProvider = exports.useClips = exports.useReplays = exports.useAuction = exports.useLiveStreams = exports.refreshOngoingLive = exports.useOngoingLive = exports.useLiveSelling = exports.LiveSellingProvider = void 0;
|
|
3
|
+
exports.nativeViewTag = exports.useAuctionWins = exports.useGiveawayPrize = exports.useGiveawayEntry = exports.SHEET_HANDOFF_MS = exports.useAuctionBidGate = exports.isNativeVideoSupported = exports.NativeVideoView = exports.LiveVideoTarget = exports.refreshStreamRecordsIfStale = exports.refreshStreamRecords = exports.useStreamInfo = exports.useShowClock = exports.useAuctionCountdown = exports.useLiveShow = exports.useLiveSession = exports.LiveSessionProvider = exports.useClips = exports.useReplays = exports.useAuction = exports.useLiveStreams = exports.refreshOngoingLive = exports.useOngoingLive = exports.useHiddenShows = exports.useLiveSelling = exports.LiveSellingProvider = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* React helpers for `@tiledev/sdk-apptile-live-selling` — the provider and the read hooks.
|
|
6
6
|
*
|
|
@@ -10,6 +10,8 @@ exports.nativeViewTag = exports.useAuctionWins = exports.SHEET_HANDOFF_MS = expo
|
|
|
10
10
|
var LiveSellingProvider_1 = require("./LiveSellingProvider");
|
|
11
11
|
Object.defineProperty(exports, "LiveSellingProvider", { enumerable: true, get: function () { return LiveSellingProvider_1.LiveSellingProvider; } });
|
|
12
12
|
Object.defineProperty(exports, "useLiveSelling", { enumerable: true, get: function () { return LiveSellingProvider_1.useLiveSelling; } });
|
|
13
|
+
var useHiddenShows_1 = require("./useHiddenShows");
|
|
14
|
+
Object.defineProperty(exports, "useHiddenShows", { enumerable: true, get: function () { return useHiddenShows_1.useHiddenShows; } });
|
|
13
15
|
var useOngoingLive_1 = require("./useOngoingLive");
|
|
14
16
|
Object.defineProperty(exports, "useOngoingLive", { enumerable: true, get: function () { return useOngoingLive_1.useOngoingLive; } });
|
|
15
17
|
var ongoingLiveStore_1 = require("../ongoingLiveStore");
|
|
@@ -26,6 +28,13 @@ Object.defineProperty(exports, "useClips", { enumerable: true, get: function ()
|
|
|
26
28
|
var useLiveSession_1 = require("./useLiveSession");
|
|
27
29
|
Object.defineProperty(exports, "LiveSessionProvider", { enumerable: true, get: function () { return useLiveSession_1.LiveSessionProvider; } });
|
|
28
30
|
Object.defineProperty(exports, "useLiveSession", { enumerable: true, get: function () { return useLiveSession_1.useLiveSession; } });
|
|
31
|
+
// The show a screen is about, once the session holds its record (0.9.0).
|
|
32
|
+
var useLiveShow_1 = require("./useLiveShow");
|
|
33
|
+
Object.defineProperty(exports, "useLiveShow", { enumerable: true, get: function () { return useLiveShow_1.useLiveShow; } });
|
|
34
|
+
// The clocks a screen shows, kept in the component that shows them: the session itself never ticks.
|
|
35
|
+
var clocks_1 = require("./clocks");
|
|
36
|
+
Object.defineProperty(exports, "useAuctionCountdown", { enumerable: true, get: function () { return clocks_1.useAuctionCountdown; } });
|
|
37
|
+
Object.defineProperty(exports, "useShowClock", { enumerable: true, get: function () { return clocks_1.useShowClock; } });
|
|
29
38
|
var useStreamInfo_1 = require("./useStreamInfo");
|
|
30
39
|
Object.defineProperty(exports, "useStreamInfo", { enumerable: true, get: function () { return useStreamInfo_1.useStreamInfo; } });
|
|
31
40
|
Object.defineProperty(exports, "refreshStreamRecords", { enumerable: true, get: function () { return useStreamInfo_1.refreshStreamRecords; } });
|
|
@@ -37,6 +46,11 @@ Object.defineProperty(exports, "isNativeVideoSupported", { enumerable: true, get
|
|
|
37
46
|
var useAuctionBidGate_1 = require("./useAuctionBidGate");
|
|
38
47
|
Object.defineProperty(exports, "useAuctionBidGate", { enumerable: true, get: function () { return useAuctionBidGate_1.useAuctionBidGate; } });
|
|
39
48
|
Object.defineProperty(exports, "SHEET_HANDOFF_MS", { enumerable: true, get: function () { return useAuctionBidGate_1.SHEET_HANDOFF_MS; } });
|
|
49
|
+
// The giveaway's flows on a screen (0.9.0): the entry, its sheet and sign-in, the draw; the prize.
|
|
50
|
+
var useGiveawayEntry_1 = require("./useGiveawayEntry");
|
|
51
|
+
Object.defineProperty(exports, "useGiveawayEntry", { enumerable: true, get: function () { return useGiveawayEntry_1.useGiveawayEntry; } });
|
|
52
|
+
var useGiveawayPrize_1 = require("./useGiveawayPrize");
|
|
53
|
+
Object.defineProperty(exports, "useGiveawayPrize", { enumerable: true, get: function () { return useGiveawayPrize_1.useGiveawayPrize; } });
|
|
40
54
|
var useAuctionWins_1 = require("./useAuctionWins");
|
|
41
55
|
Object.defineProperty(exports, "useAuctionWins", { enumerable: true, get: function () { return useAuctionWins_1.useAuctionWins; } });
|
|
42
56
|
// React Native only, so it lives here rather than on the root entry.
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6DAK+B;AAJ7B,0HAAA,mBAAmB,OAAA;AACnB,qHAAA,cAAc,OAAA;AAIhB,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,wDAAyD;AAAhD,sHAAA,kBAAkB,OAAA;AAC3B,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,2CAAgE;AAAvD,wGAAA,UAAU,OAAA;AACnB,2CAAwF;AAA/E,wGAAA,UAAU,OAAA;AACnB,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AAEjB,4FAA4F;AAC5F,mDAI0B;AAHxB,qHAAA,mBAAmB,OAAA;AACnB,gHAAA,cAAc,OAAA;AAGhB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6DAK+B;AAJ7B,0HAAA,mBAAmB,OAAA;AACnB,qHAAA,cAAc,OAAA;AAIhB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,wDAAyD;AAAhD,sHAAA,kBAAkB,OAAA;AAC3B,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,2CAAgE;AAAvD,wGAAA,UAAU,OAAA;AACnB,2CAAwF;AAA/E,wGAAA,UAAU,OAAA;AACnB,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AAEjB,4FAA4F;AAC5F,mDAI0B;AAHxB,qHAAA,mBAAmB,OAAA;AACnB,gHAAA,cAAc,OAAA;AAGhB,yEAAyE;AACzE,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,oGAAoG;AACpG,mCAA6D;AAApD,6GAAA,mBAAmB,OAAA;AAAE,sGAAA,YAAY,OAAA;AAC1C,iDAKyB;AAJvB,8GAAA,aAAa,OAAA;AACb,qHAAA,oBAAoB,OAAA;AACpB,4HAAA,2BAA2B,OAAA;AAG7B,qDAK2B;AAJzB,kHAAA,eAAe,OAAA;AACf,kHAAA,eAAe,OAAA;AACf,yHAAA,sBAAsB,OAAA;AAGxB,yDAO6B;AAN3B,sHAAA,iBAAiB,OAAA;AACjB,qHAAA,gBAAgB,OAAA;AAMlB,mGAAmG;AACnG,uDAM4B;AAL1B,oHAAA,gBAAgB,OAAA;AAMlB,uDAAkF;AAAzE,oHAAA,gBAAgB,OAAA;AACzB,mDAK0B;AAJxB,gHAAA,cAAc,OAAA;AAKhB,qEAAqE;AACrE,kDAAiD;AAAxC,8GAAA,aAAa,OAAA"}
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { View } from 'react-native';
|
|
2
2
|
import type { ViewProps } from 'react-native';
|
|
3
|
+
import { type LiveShow } from '../liveShow';
|
|
3
4
|
import type { LiveSession } from '../sessionTypes';
|
|
4
5
|
import type { AuctionBidGate, UseAuctionBidGateOptions } from './useAuctionBidGate';
|
|
5
6
|
import type { UseAuctionWinsOptions, UseAuctionWinsState } from './useAuctionWins';
|
|
6
7
|
import type { LiveSessionProviderProps } from './useLiveSession';
|
|
7
8
|
import type { LiveVideoTargetProps } from './LiveVideoTarget';
|
|
8
9
|
export { LiveSellingProvider, useLiveSelling, type LiveSellingProviderProps, type LiveSellingContextType, } from './LiveSellingProvider';
|
|
10
|
+
export { useHiddenShows, type HiddenShowsForViewer } from './useHiddenShows';
|
|
9
11
|
export { useOngoingLive, type UseOngoingLiveState } from './useOngoingLive';
|
|
10
12
|
export { refreshOngoingLive } from '../ongoingLiveStore';
|
|
11
13
|
export { useLiveStreams, type UseLiveStreamsState } from './useLiveStreams';
|
|
12
14
|
export { useAuction, type UseAuctionState } from './useAuction';
|
|
13
15
|
export { useReplays, type UseReplaysOptions, type UseReplaysState } from './useReplays';
|
|
14
16
|
export { useClips, type UseClipsState } from './useClips';
|
|
15
|
-
export { useStreamInfo, refreshStreamRecords, refreshStreamRecordsIfStale, } from './useStreamInfo';
|
|
17
|
+
export { useStreamInfo, refreshStreamRecords, refreshStreamRecordsIfStale, type UseStreamInfoState, } from './useStreamInfo';
|
|
18
|
+
export { useAuctionCountdown, useShowClock } from './clocks';
|
|
19
|
+
export { useGiveawayEntry, type GiveawayDraw, type UseGiveawayEntryState, type SessionForGiveaway, type UseGiveawayEntryOptions, } from './useGiveawayEntry';
|
|
20
|
+
export { useGiveawayPrize, type UseGiveawayPrizeState } from './useGiveawayPrize';
|
|
16
21
|
export { nativeViewTag } from '../nativeViewTag';
|
|
17
|
-
export type { AuctionBidGate, BidBlocker } from './useAuctionBidGate';
|
|
22
|
+
export type { AuctionBidGate, BidBlocker, BidRefusal, UseAuctionBidGateOptions } from './useAuctionBidGate';
|
|
18
23
|
export type { AuctionWinRow, UseAuctionWinsOptions, UseAuctionWinsState } from './useAuctionWins';
|
|
19
24
|
export type { LiveSessionProviderProps } from './useLiveSession';
|
|
20
25
|
export type { LiveVideoTargetProps } from './LiveVideoTarget';
|
|
@@ -24,6 +29,8 @@ export declare function LiveSessionProvider({ children }: LiveSessionProviderPro
|
|
|
24
29
|
* behaves the same as one inside it, because on the web there is only ever this one session.
|
|
25
30
|
*/
|
|
26
31
|
export declare function useLiveSession<TRaw = unknown>(): LiveSession<TRaw>;
|
|
32
|
+
/** `useLiveShow` over the idle session: always `ended`, with no show, whatever the id. */
|
|
33
|
+
export declare function useLiveShow(_streamingId: string | null | undefined): LiveShow;
|
|
27
34
|
export declare const isNativeVideoSupported = false;
|
|
28
35
|
/**
|
|
29
36
|
* A plain `View`, which is what the native file falls back to on a build without the Zego SDK:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/react/index.web.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/react/index.web.ts"],"names":[],"mappings":"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"}
|