@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.
Files changed (196) hide show
  1. package/README.md +452 -34
  2. package/dist/auctionComments.d.ts +25 -0
  3. package/dist/auctionComments.d.ts.map +1 -0
  4. package/dist/auctionComments.js +28 -0
  5. package/dist/auctionComments.js.map +1 -0
  6. package/dist/auctionRules.d.ts +76 -0
  7. package/dist/auctionRules.d.ts.map +1 -0
  8. package/dist/auctionRules.js +106 -0
  9. package/dist/auctionRules.js.map +1 -0
  10. package/dist/auctions.d.ts.map +1 -1
  11. package/dist/auctions.js +19 -10
  12. package/dist/auctions.js.map +1 -1
  13. package/dist/client.d.ts +51 -2
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +123 -23
  16. package/dist/client.js.map +1 -1
  17. package/dist/commentHistory.d.ts +66 -0
  18. package/dist/commentHistory.d.ts.map +1 -0
  19. package/dist/commentHistory.js +125 -0
  20. package/dist/commentHistory.js.map +1 -0
  21. package/dist/engine.native.d.ts.map +1 -1
  22. package/dist/engine.native.js +17 -845
  23. package/dist/engine.native.js.map +1 -1
  24. package/dist/giveawayPrize.d.ts +13 -0
  25. package/dist/giveawayPrize.d.ts.map +1 -0
  26. package/dist/giveawayPrize.js +18 -0
  27. package/dist/giveawayPrize.js.map +1 -0
  28. package/dist/giveawayPrizeLines.d.ts +67 -0
  29. package/dist/giveawayPrizeLines.d.ts.map +1 -0
  30. package/dist/giveawayPrizeLines.js +48 -0
  31. package/dist/giveawayPrizeLines.js.map +1 -0
  32. package/dist/giveawayRoster.d.ts +53 -0
  33. package/dist/giveawayRoster.d.ts.map +1 -0
  34. package/dist/giveawayRoster.js +93 -0
  35. package/dist/giveawayRoster.js.map +1 -0
  36. package/dist/heldComments.d.ts +29 -0
  37. package/dist/heldComments.d.ts.map +1 -0
  38. package/dist/heldComments.js +61 -0
  39. package/dist/heldComments.js.map +1 -0
  40. package/dist/hiddenShows.d.ts +34 -0
  41. package/dist/hiddenShows.d.ts.map +1 -0
  42. package/dist/hiddenShows.js +42 -0
  43. package/dist/hiddenShows.js.map +1 -0
  44. package/dist/index.d.ts +19 -2
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +93 -3
  47. package/dist/index.js.map +1 -1
  48. package/dist/liveHaptics.d.ts +7 -0
  49. package/dist/liveHaptics.d.ts.map +1 -0
  50. package/dist/liveHaptics.js +11 -0
  51. package/dist/liveHaptics.js.map +1 -0
  52. package/dist/liveHaptics.native.d.ts +7 -0
  53. package/dist/liveHaptics.native.d.ts.map +1 -0
  54. package/dist/liveHaptics.native.js +12 -0
  55. package/dist/liveHaptics.native.js.map +1 -0
  56. package/dist/liveShow.d.ts +58 -0
  57. package/dist/liveShow.d.ts.map +1 -0
  58. package/dist/liveShow.js +55 -0
  59. package/dist/liveShow.js.map +1 -0
  60. package/dist/phoneTaps.d.ts +25 -0
  61. package/dist/phoneTaps.d.ts.map +1 -0
  62. package/dist/phoneTaps.js +47 -0
  63. package/dist/phoneTaps.js.map +1 -0
  64. package/dist/pipWindow.d.ts +85 -0
  65. package/dist/pipWindow.d.ts.map +1 -0
  66. package/dist/pipWindow.js +88 -0
  67. package/dist/pipWindow.js.map +1 -0
  68. package/dist/polls.d.ts.map +1 -1
  69. package/dist/polls.js +3 -0
  70. package/dist/polls.js.map +1 -1
  71. package/dist/react/LiveSellingProvider.d.ts +10 -1
  72. package/dist/react/LiveSellingProvider.d.ts.map +1 -1
  73. package/dist/react/LiveSellingProvider.js +6 -2
  74. package/dist/react/LiveSellingProvider.js.map +1 -1
  75. package/dist/react/LiveVideoTarget.d.ts.map +1 -1
  76. package/dist/react/LiveVideoTarget.js +41 -3
  77. package/dist/react/LiveVideoTarget.js.map +1 -1
  78. package/dist/react/clocks.d.ts +29 -0
  79. package/dist/react/clocks.d.ts.map +1 -0
  80. package/dist/react/clocks.js +124 -0
  81. package/dist/react/clocks.js.map +1 -0
  82. package/dist/react/index.d.ts +7 -2
  83. package/dist/react/index.d.ts.map +1 -1
  84. package/dist/react/index.js +15 -1
  85. package/dist/react/index.js.map +1 -1
  86. package/dist/react/index.web.d.ts +9 -2
  87. package/dist/react/index.web.d.ts.map +1 -1
  88. package/dist/react/index.web.js +27 -4
  89. package/dist/react/index.web.js.map +1 -1
  90. package/dist/react/startSignIn.d.ts +3 -0
  91. package/dist/react/startSignIn.d.ts.map +1 -0
  92. package/dist/react/startSignIn.js +19 -0
  93. package/dist/react/startSignIn.js.map +1 -0
  94. package/dist/react/useAuctionBidGate.d.ts +54 -4
  95. package/dist/react/useAuctionBidGate.d.ts.map +1 -1
  96. package/dist/react/useAuctionBidGate.js +169 -25
  97. package/dist/react/useAuctionBidGate.js.map +1 -1
  98. package/dist/react/useAuctionWins.d.ts +9 -1
  99. package/dist/react/useAuctionWins.d.ts.map +1 -1
  100. package/dist/react/useAuctionWins.js +9 -3
  101. package/dist/react/useAuctionWins.js.map +1 -1
  102. package/dist/react/useGiveawayEntry.d.ts +59 -0
  103. package/dist/react/useGiveawayEntry.d.ts.map +1 -0
  104. package/dist/react/useGiveawayEntry.js +170 -0
  105. package/dist/react/useGiveawayEntry.js.map +1 -0
  106. package/dist/react/useGiveawayPrize.d.ts +12 -0
  107. package/dist/react/useGiveawayPrize.d.ts.map +1 -0
  108. package/dist/react/useGiveawayPrize.js +53 -0
  109. package/dist/react/useGiveawayPrize.js.map +1 -0
  110. package/dist/react/useHiddenShows.d.ts +10 -0
  111. package/dist/react/useHiddenShows.d.ts.map +1 -0
  112. package/dist/react/useHiddenShows.js +30 -0
  113. package/dist/react/useHiddenShows.js.map +1 -0
  114. package/dist/react/useLiveSession.d.ts +7 -3
  115. package/dist/react/useLiveSession.d.ts.map +1 -1
  116. package/dist/react/useLiveSession.js +522 -157
  117. package/dist/react/useLiveSession.js.map +1 -1
  118. package/dist/react/useLiveShow.d.ts +3 -0
  119. package/dist/react/useLiveShow.d.ts.map +1 -0
  120. package/dist/react/useLiveShow.js +21 -0
  121. package/dist/react/useLiveShow.js.map +1 -0
  122. package/dist/react/useLiveStreams.d.ts.map +1 -1
  123. package/dist/react/useLiveStreams.js +6 -2
  124. package/dist/react/useLiveStreams.js.map +1 -1
  125. package/dist/react/useOngoingLive.d.ts +1 -0
  126. package/dist/react/useOngoingLive.d.ts.map +1 -1
  127. package/dist/react/useOngoingLive.js +7 -1
  128. package/dist/react/useOngoingLive.js.map +1 -1
  129. package/dist/react/useReplays.d.ts +12 -0
  130. package/dist/react/useReplays.d.ts.map +1 -1
  131. package/dist/react/useReplays.js +56 -24
  132. package/dist/react/useReplays.js.map +1 -1
  133. package/dist/react/useStreamInfo.d.ts +13 -2
  134. package/dist/react/useStreamInfo.d.ts.map +1 -1
  135. package/dist/react/useStreamInfo.js +31 -5
  136. package/dist/react/useStreamInfo.js.map +1 -1
  137. package/dist/replayPages.d.ts +31 -0
  138. package/dist/replayPages.d.ts.map +1 -0
  139. package/dist/replayPages.js +34 -0
  140. package/dist/replayPages.js.map +1 -0
  141. package/dist/replays.d.ts +7 -0
  142. package/dist/replays.d.ts.map +1 -1
  143. package/dist/replays.js +52 -22
  144. package/dist/replays.js.map +1 -1
  145. package/dist/session.d.ts +39 -6
  146. package/dist/session.d.ts.map +1 -1
  147. package/dist/session.js +209 -22
  148. package/dist/session.js.map +1 -1
  149. package/dist/sessionTypes.d.ts +190 -14
  150. package/dist/sessionTypes.d.ts.map +1 -1
  151. package/dist/sessionTypes.js +2 -1
  152. package/dist/sessionTypes.js.map +1 -1
  153. package/dist/shopifyCommerce.d.ts +149 -0
  154. package/dist/shopifyCommerce.d.ts.map +1 -0
  155. package/dist/shopifyCommerce.js +123 -0
  156. package/dist/shopifyCommerce.js.map +1 -0
  157. package/dist/shopifyIdentity.d.ts +51 -0
  158. package/dist/shopifyIdentity.d.ts.map +1 -0
  159. package/dist/shopifyIdentity.js +52 -0
  160. package/dist/shopifyIdentity.js.map +1 -0
  161. package/dist/shopifyIds.d.ts +9 -0
  162. package/dist/shopifyIds.d.ts.map +1 -0
  163. package/dist/shopifyIds.js +18 -0
  164. package/dist/shopifyIds.js.map +1 -0
  165. package/dist/showLinks.d.ts +24 -0
  166. package/dist/showLinks.d.ts.map +1 -0
  167. package/dist/showLinks.js +23 -0
  168. package/dist/showLinks.js.map +1 -0
  169. package/dist/showLots.d.ts +28 -0
  170. package/dist/showLots.d.ts.map +1 -0
  171. package/dist/showLots.js +51 -0
  172. package/dist/showLots.js.map +1 -0
  173. package/dist/showNames.d.ts +45 -0
  174. package/dist/showNames.d.ts.map +1 -0
  175. package/dist/showNames.js +74 -0
  176. package/dist/showNames.js.map +1 -0
  177. package/dist/streams.d.ts +27 -1
  178. package/dist/streams.d.ts.map +1 -1
  179. package/dist/streams.js +84 -21
  180. package/dist/streams.js.map +1 -1
  181. package/dist/types.d.ts +214 -8
  182. package/dist/types.d.ts.map +1 -1
  183. package/dist/types.js +2 -1
  184. package/dist/types.js.map +1 -1
  185. package/dist/wire.d.ts +31 -0
  186. package/dist/wire.d.ts.map +1 -1
  187. package/dist/wire.js +25 -0
  188. package/dist/wire.js.map +1 -1
  189. package/dist/zego.d.ts +3 -1
  190. package/dist/zego.d.ts.map +1 -1
  191. package/dist/zego.js +1 -1
  192. package/dist/zegoEngine.d.ts +168 -0
  193. package/dist/zegoEngine.d.ts.map +1 -0
  194. package/dist/zegoEngine.js +1052 -0
  195. package/dist/zegoEngine.js.map +1 -0
  196. package/package.json +3 -2
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SHEET_HANDOFF_MS = exports.NativeVideoView = exports.isNativeVideoSupported = exports.nativeViewTag = exports.refreshStreamRecordsIfStale = exports.refreshStreamRecords = exports.useStreamInfo = exports.useClips = exports.useReplays = exports.useAuction = exports.useLiveStreams = exports.refreshOngoingLive = exports.useOngoingLive = exports.useLiveSelling = exports.LiveSellingProvider = void 0;
3
+ exports.SHEET_HANDOFF_MS = exports.NativeVideoView = exports.isNativeVideoSupported = exports.nativeViewTag = exports.useGiveawayPrize = exports.useGiveawayEntry = exports.useShowClock = exports.useAuctionCountdown = exports.refreshStreamRecordsIfStale = exports.refreshStreamRecords = exports.useStreamInfo = exports.useClips = exports.useReplays = exports.useAuction = exports.useLiveStreams = exports.refreshOngoingLive = exports.useOngoingLive = exports.useHiddenShows = exports.useLiveSelling = exports.LiveSellingProvider = void 0;
4
4
  exports.LiveSessionProvider = LiveSessionProvider;
5
5
  exports.useLiveSession = useLiveSession;
6
+ exports.useLiveShow = useLiveShow;
6
7
  exports.LiveVideoTarget = LiveVideoTarget;
7
8
  exports.useAuctionBidGate = useAuctionBidGate;
8
9
  exports.useAuctionWins = useAuctionWins;
@@ -32,11 +33,14 @@ exports.useAuctionWins = useAuctionWins;
32
33
  */
33
34
  const react_1 = require("react");
34
35
  const react_native_1 = require("react-native");
36
+ const liveShow_1 = require("../liveShow");
35
37
  const sessionTypes_1 = require("../sessionTypes");
36
38
  // Real on the web: the gateway is plain HTTP, and the engine it configures is the no-op build.
37
39
  var LiveSellingProvider_1 = require("./LiveSellingProvider");
38
40
  Object.defineProperty(exports, "LiveSellingProvider", { enumerable: true, get: function () { return LiveSellingProvider_1.LiveSellingProvider; } });
39
41
  Object.defineProperty(exports, "useLiveSelling", { enumerable: true, get: function () { return LiveSellingProvider_1.useLiveSelling; } });
42
+ var useHiddenShows_1 = require("./useHiddenShows");
43
+ Object.defineProperty(exports, "useHiddenShows", { enumerable: true, get: function () { return useHiddenShows_1.useHiddenShows; } });
40
44
  var useOngoingLive_1 = require("./useOngoingLive");
41
45
  Object.defineProperty(exports, "useOngoingLive", { enumerable: true, get: function () { return useOngoingLive_1.useOngoingLive; } });
42
46
  var ongoingLiveStore_1 = require("../ongoingLiveStore");
@@ -53,6 +57,16 @@ var useStreamInfo_1 = require("./useStreamInfo");
53
57
  Object.defineProperty(exports, "useStreamInfo", { enumerable: true, get: function () { return useStreamInfo_1.useStreamInfo; } });
54
58
  Object.defineProperty(exports, "refreshStreamRecords", { enumerable: true, get: function () { return useStreamInfo_1.refreshStreamRecords; } });
55
59
  Object.defineProperty(exports, "refreshStreamRecordsIfStale", { enumerable: true, get: function () { return useStreamInfo_1.refreshStreamRecordsIfStale; } });
60
+ // Real on the web: plain React timers, counting to a number the caller passes.
61
+ var clocks_1 = require("./clocks");
62
+ Object.defineProperty(exports, "useAuctionCountdown", { enumerable: true, get: function () { return clocks_1.useAuctionCountdown; } });
63
+ Object.defineProperty(exports, "useShowClock", { enumerable: true, get: function () { return clocks_1.useShowClock; } });
64
+ // Real on the web: they read only the session a screen passes in (here the idle one, so no giveaway is
65
+ // ever open) and the adapter's catalogue.
66
+ var useGiveawayEntry_1 = require("./useGiveawayEntry");
67
+ Object.defineProperty(exports, "useGiveawayEntry", { enumerable: true, get: function () { return useGiveawayEntry_1.useGiveawayEntry; } });
68
+ var useGiveawayPrize_1 = require("./useGiveawayPrize");
69
+ Object.defineProperty(exports, "useGiveawayPrize", { enumerable: true, get: function () { return useGiveawayPrize_1.useGiveawayPrize; } });
56
70
  // Already returns null off device — react-native-web *throws* from `findNodeHandle`, which this
57
71
  // wraps, so the honest answer costs nothing here.
58
72
  var nativeViewTag_1 = require("../nativeViewTag");
@@ -81,8 +95,8 @@ const IDLE_ACTIONS = {
81
95
  releaseStream: () => undefined,
82
96
  enterPip: () => undefined,
83
97
  exitPip: () => undefined,
84
- placeBid: async () => undefined,
85
- enterGiveaway: async () => undefined,
98
+ placeBid: async () => ({ sent: false, reason: 'noShow' }),
99
+ enterGiveaway: async () => ({ entered: false, reason: 'noGiveaway' }),
86
100
  dismissAuctionWin: () => undefined,
87
101
  dismissGiveawayResult: () => undefined,
88
102
  };
@@ -102,7 +116,6 @@ const IDLE_SESSION = {
102
116
  poll: null,
103
117
  muted: true,
104
118
  videoTag: null,
105
- elapsedMs: 0,
106
119
  pipMode: 'none',
107
120
  guest: {
108
121
  mode: false,
@@ -115,6 +128,7 @@ const IDLE_SESSION = {
115
128
  viewerName: null,
116
129
  auction: sessionTypes_1.IDLE_AUCTION,
117
130
  giveaway: sessionTypes_1.IDLE_GIVEAWAY,
131
+ pinnedComment: null,
118
132
  error: null,
119
133
  actions: IDLE_ACTIONS,
120
134
  };
@@ -129,6 +143,12 @@ function LiveSessionProvider({ children }) {
129
143
  function useLiveSession() {
130
144
  return IDLE_SESSION;
131
145
  }
146
+ /** The idle session's show: none, and `ended`. One object, as the session never changes here. */
147
+ const IDLE_SHOW = (0, liveShow_1.liveShowFor)(IDLE_SESSION, null);
148
+ /** `useLiveShow` over the idle session: always `ended`, with no show, whatever the id. */
149
+ function useLiveShow(_streamingId) {
150
+ return IDLE_SHOW;
151
+ }
132
152
  // ─── The video ───────────────────────────────────────────────────────────────
133
153
  exports.isNativeVideoSupported = false;
134
154
  /**
@@ -154,6 +174,8 @@ function useAuctionBidGate(_options) {
154
174
  chooseVariant: () => undefined,
155
175
  dismiss: () => undefined,
156
176
  refreshUnpaidWins: () => undefined,
177
+ refusal: null,
178
+ bidOnItsWay: false,
157
179
  }), []);
158
180
  }
159
181
  /**
@@ -163,6 +185,7 @@ function useAuctionBidGate(_options) {
163
185
  function useAuctionWins(_options) {
164
186
  return (0, react_1.useMemo)(() => ({
165
187
  rows: [],
188
+ giveawayVariantIds: new Set(),
166
189
  totalBids: 0,
167
190
  streamingId: null,
168
191
  loading: false,
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.js","sourceRoot":"","sources":["../../src/react/index.web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.web.js","sourceRoot":"","sources":["../../src/react/index.web.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Calls the app's `startSignIn`; a failure to start it, thrown or rejected, is logged at `at`. */
2
+ export declare function startTheSignIn(startSignIn: () => unknown, at: string): void;
3
+ //# sourceMappingURL=startSignIn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startSignIn.d.ts","sourceRoot":"","sources":["../../src/react/startSignIn.ts"],"names":[],"mappings":"AAOA,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAM3E"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startTheSignIn = startTheSignIn;
4
+ /**
5
+ * Starting the app's sign-in from a hook (0.9.0): the bid gate and the giveaway entry both hand the
6
+ * shopper to the app's own sign-in, and neither may let a sign-in that fails to start throw into the
7
+ * tap that asked for it.
8
+ */
9
+ const client_1 = require("../client");
10
+ /** Calls the app's `startSignIn`; a failure to start it, thrown or rejected, is logged at `at`. */
11
+ function startTheSignIn(startSignIn, at) {
12
+ try {
13
+ void Promise.resolve(startSignIn()).catch((caught) => (0, client_1.getLogger)().error(caught, { at }));
14
+ }
15
+ catch (caught) {
16
+ (0, client_1.getLogger)().error(caught, { at });
17
+ }
18
+ }
19
+ //# sourceMappingURL=startSignIn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startSignIn.js","sourceRoot":"","sources":["../../src/react/startSignIn.ts"],"names":[],"mappings":";;AAQA,wCAMC;AAdD;;;;GAIG;AACH,sCAAsC;AAEtC,mGAAmG;AACnG,SAAgB,cAAc,CAAC,WAA0B,EAAE,EAAU;IACnE,IAAI,CAAC;QACH,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { type BidRound } from '../auctionRules';
2
+ import type { BidResult } from '../sessionTypes';
1
3
  /**
2
4
  * How long to leave between one panel closing and the next opening.
3
5
  *
@@ -11,6 +13,17 @@
11
13
  export declare const SHEET_HANDOFF_MS = 380;
12
14
  /** What is standing between the viewer and the bid they asked for. */
13
15
  export type BidBlocker = 'signIn' | 'unpaidWins' | 'terms' | 'variant' | null;
16
+ /**
17
+ * A bid the gate didn't send, and why (0.9.0, `atAmountShown`): the room moved past it (`outbid`), or
18
+ * it is over the host's ceiling (`overCap`).
19
+ */
20
+ export interface BidRefusal {
21
+ /** A new number for each refusal, so the same reason twice is shown twice. */
22
+ id: number;
23
+ reason: 'outbid' | 'overCap';
24
+ /** What to tell the shopper: the round's next bid now (`outbid`), or the ceiling (`overCap`). */
25
+ amount: number;
26
+ }
14
27
  export interface AuctionBidGate {
15
28
  blocker: BidBlocker;
16
29
  /** The variant chosen for this round, once asked. */
@@ -31,18 +44,55 @@ export interface AuctionBidGate {
31
44
  * cannot hook navigation focus itself.
32
45
  */
33
46
  refreshUnpaidWins: () => void;
47
+ /** The last bid not sent because the room moved past it or it passed the ceiling (`atAmountShown`). 0.9.0. */
48
+ refusal: BidRefusal | null;
49
+ /** A bid was just handed to `placeBid`: true for `BID_ON_ITS_WAY_MS`, so the bar takes no other. 0.9.0. */
50
+ bidOnItsWay: boolean;
34
51
  }
35
- export interface UseAuctionBidGateOptions {
52
+ interface GateOptions {
36
53
  streamingId: string | null;
37
54
  isLoggedIn: boolean;
38
- /** True while a round is open. Closing one forgets the chosen variant. */
55
+ /** True while a round is open. Closing one forgets the chosen variant, and drops a held bid. */
39
56
  biddingOpen: boolean;
40
57
  /** How many variants the lot under the hammer has. 1 or 0 skips the variant step. */
41
58
  variantCount: number;
59
+ /** The session's `actions.placeBid`, or a wrapper round it. */
42
60
  placeBid: (options?: {
43
61
  amount?: number;
44
62
  variantId?: string | null;
45
- }) => Promise<void>;
63
+ }) => Promise<BidResult | void>;
64
+ /**
65
+ * Starts the app's sign-in (0.9.0). With it the gate never stops at `signIn`: it holds the bid and
66
+ * calls this, then comes back to the bid once `isLoggedIn`, if bidding on its lot is still open.
67
+ * Without it the gate stops at `signIn`, as in 0.8, and the app decides.
68
+ */
69
+ startSignIn?: () => unknown;
70
+ /**
71
+ * Signed in, the bidder still loading (a stored sign-in being read, a customer on its way): a bid
72
+ * asked for now waits for them, and no sign-in is started. 0.9.0, with `startSignIn`.
73
+ */
74
+ signInLoading?: boolean;
75
+ /**
76
+ * The screen is on show, with nothing over it (navigation focus). When it comes back on show and the
77
+ * shopper is still signed out (the app's Sign In page closed without a sign-in), a bid waiting for
78
+ * the sign-in is dropped. A sign-in that never leaves the screen (a system sheet) keeps it until the
79
+ * lot closes. Defaults to true. 0.9.0, with `startSignIn`.
80
+ */
81
+ screenOnShow?: boolean;
46
82
  }
47
- export declare function useAuctionBidGate({ streamingId, isLoggedIn, biddingOpen, variantCount, placeBid, }: UseAuctionBidGateOptions): AuctionBidGate;
83
+ export type UseAuctionBidGateOptions = GateOptions & ({
84
+ /**
85
+ * A bid goes out at the amount the shopper saw, or not at all (0.9.0): `requestBid()` holds the
86
+ * round's next bid as it is at the tap, and every bid gets a last look at the round as it goes
87
+ * (`bidRefusal`). Needs `round`.
88
+ */
89
+ atAmountShown: true;
90
+ /** The round as the shopper sees it: `session.auction`. */
91
+ round: BidRound;
92
+ } | {
93
+ atAmountShown?: false;
94
+ round?: BidRound;
95
+ });
96
+ export declare function useAuctionBidGate(options: UseAuctionBidGateOptions): AuctionBidGate;
97
+ export {};
48
98
  //# sourceMappingURL=useAuctionBidGate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAuctionBidGate.d.ts","sourceRoot":"","sources":["../../src/react/useAuctionBidGate.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,UAAU,CAAC;IACpB,qDAAqD;IACrD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qFAAqF;IACrF,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,6DAA6D;IAC7D,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,iFAAiF;IACjF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,oDAAoD;IACpD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,WAAW,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvF;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,EAAE,wBAAwB,GAAG,cAAc,CAyH3C"}
1
+ {"version":3,"file":"useAuctionBidGate.d.ts","sourceRoot":"","sources":["../../src/react/useAuctionBidGate.ts"],"names":[],"mappings":"AAyCA,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAE9E;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,8EAA8E;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,iGAAiG;IACjG,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,UAAU,CAAC;IACpB,qDAAqD;IACrD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qFAAqF;IACrF,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,6DAA6D;IAC7D,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,iFAAiF;IACjF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,oDAAoD;IACpD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,8GAA8G;IAC9G,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,2GAA2G;IAC3G,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,gGAAgG;IAChG,WAAW,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAClG;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAChD,CACI;IACE;;;;OAIG;IACH,aAAa,EAAE,IAAI,CAAC;IACpB,2DAA2D;IAC3D,KAAK,EAAE,QAAQ,CAAC;CACjB,GACD;IAAE,aAAa,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;CAAE,CAC9C,CAAC;AASJ,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,cAAc,CAmPnF"}
@@ -21,14 +21,31 @@ exports.useAuctionBidGate = useAuctionBidGate;
21
21
  * in the last ten seconds must not be asked their size three times.
22
22
  *
23
23
  * The requested bid is held while the blocker is resolved and then placed, so clearing the last panel
24
- * completes the bid the viewer originally asked for rather than making them start again.
24
+ * completes the bid the viewer originally asked for rather than making them start again. A bid held
25
+ * behind a panel belongs to its round: when the round closes it is dropped and the panel closed (0.9.0).
26
+ *
27
+ * New in 0.9.0, all optional (without them the gate is 0.8's):
28
+ *
29
+ * - **`atAmountShown`, with `round`:** a bid goes out at the amount the shopper saw, or not at all.
30
+ * `requestBid()` holds the round's next bid as it is at the tap; as the bid is about to go it gets a
31
+ * last look at the round as it is then (`bidRefusal`). A closed round sends nothing; outbid or over
32
+ * the ceiling sends nothing and says why (`refusal`).
33
+ * - **`startSignIn`:** the gate never stops at `signIn`. It holds the bid and starts the app's sign-in
34
+ * (unless `signInLoading`), and once `isLoggedIn`, if bidding on that lot is still open, reads the
35
+ * unpaid wins fresh and goes through the gate again from there. Dropped when the lot closes, when
36
+ * another bid is asked for, or when `screenOnShow` comes back with the shopper still signed out.
37
+ * - **`bidOnItsWay`** (no option needed): true for `BID_ON_ITS_WAY_MS` after a bid is handed to
38
+ * `placeBid`.
25
39
  *
26
40
  * The hook owns the *decisions*, never the UI: it reports which blocker is current and the host app
27
- * renders whatever it likes for each.
41
+ * renders whatever it likes for each. It reads no session: the round comes in as a value, so it runs
42
+ * on a stand-in session in an app's own tests, as the clocks do.
28
43
  */
29
44
  const react_1 = require("react");
45
+ const auctionRules_1 = require("../auctionRules");
30
46
  const client_1 = require("../client");
31
47
  const liveSelling_1 = require("../liveSelling");
48
+ const startSignIn_1 = require("./startSignIn");
32
49
  /**
33
50
  * How long to leave between one panel closing and the next opening.
34
51
  *
@@ -40,16 +57,35 @@ const liveSelling_1 = require("../liveSelling");
40
57
  * Long enough to outlast a slide-out, short enough not to read as a pause.
41
58
  */
42
59
  exports.SHEET_HANDOFF_MS = 380;
43
- function useAuctionBidGate({ streamingId, isLoggedIn, biddingOpen, variantCount, placeBid, }) {
60
+ function useAuctionBidGate(options) {
61
+ var _a, _b;
62
+ const { streamingId, isLoggedIn, biddingOpen, variantCount } = options;
63
+ const screenOnShow = (_a = options.screenOnShow) !== null && _a !== void 0 ? _a : true;
64
+ const signInLoading = (_b = options.signInLoading) !== null && _b !== void 0 ? _b : false;
44
65
  const [blocker, setBlocker] = (0, react_1.useState)(null);
45
66
  const [variantId, setVariantId] = (0, react_1.useState)(null);
46
67
  const [termsAccepted, setTermsAccepted] = (0, react_1.useState)(null);
47
68
  const [unpaidStreamIds, setUnpaidStreamIds] = (0, react_1.useState)([]);
48
- /** The bid being held behind a blocker. Undefined means "the round's minimum". */
49
- const pendingRef = (0, react_1.useRef)(undefined);
69
+ const [refusal, setRefusal] = (0, react_1.useState)(null);
70
+ const [bidOnItsWay, setBidOnItsWay] = (0, react_1.useState)(false);
71
+ /** A bid asked for while signed out, waiting for the sign-in (`startSignIn`). */
72
+ const [waitingForSignIn, setWaitingForSignIn] = (0, react_1.useState)(null);
73
+ /** The bid being held behind a blocker. */
74
+ const heldBidRef = (0, react_1.useRef)(null);
75
+ const refusalsSoFar = (0, react_1.useRef)(0);
76
+ /**
77
+ * What the gate reads when it acts, as it is now: through a ref, so a bid from the room (a new round
78
+ * object) draws nothing here, and the callbacks below keep their identity.
79
+ */
80
+ const latest = (0, react_1.useRef)({ options, signInLoading });
81
+ latest.current = { options, signInLoading };
82
+ const blockerNow = (0, react_1.useRef)(blocker);
83
+ blockerNow.current = blocker;
50
84
  /** Pending handoff, so unmounting mid-chain does not set state on a dead hook. */
51
85
  const handoffRef = (0, react_1.useRef)(null);
86
+ const mounted = (0, react_1.useRef)(true);
52
87
  (0, react_1.useEffect)(() => () => {
88
+ mounted.current = false;
53
89
  if (handoffRef.current)
54
90
  clearTimeout(handoffRef.current);
55
91
  }, []);
@@ -75,13 +111,13 @@ function useAuctionBidGate({ streamingId, isLoggedIn, biddingOpen, variantCount,
75
111
  });
76
112
  }, []);
77
113
  (0, react_1.useEffect)(() => {
78
- let alive = true;
114
+ let stillWanted = true;
79
115
  void liveSelling_1.liveSelling.auctions.hasAcceptedTerms().then((accepted) => {
80
- if (alive)
116
+ if (stillWanted)
81
117
  setTermsAccepted(accepted);
82
118
  });
83
119
  return () => {
84
- alive = false;
120
+ stillWanted = false;
85
121
  };
86
122
  }, []);
87
123
  // Read on demand rather than per bid: it is a customer metafield, it only changes when they check
@@ -94,21 +130,78 @@ function useAuctionBidGate({ streamingId, isLoggedIn, biddingOpen, variantCount,
94
130
  void liveSelling_1.liveSelling.auctions.unpaidStreamIds().then(setUnpaidStreamIds);
95
131
  }, [isLoggedIn]);
96
132
  (0, react_1.useEffect)(refreshUnpaidWins, [refreshUnpaidWins]);
97
- // A variant choice belongs to one lot. Carrying it into the next round would bid on a size the
98
- // viewer chose for something else.
133
+ // A held bid and a variant choice belong to one round. Carrying the variant into the next would bid
134
+ // on a size chosen for something else; carrying a bid would send it into a round for another lot,
135
+ // and bring its panel back with that round.
99
136
  (0, react_1.useEffect)(() => {
100
- if (!biddingOpen)
101
- setVariantId(null);
102
- }, [biddingOpen]);
103
- const send = (0, react_1.useCallback)((amount, variant) => {
104
- pendingRef.current = undefined;
137
+ if (biddingOpen)
138
+ return;
139
+ setVariantId(null);
140
+ setWaitingForSignIn(null);
141
+ if (heldBidRef.current || blockerNow.current !== null || handoffRef.current) {
142
+ heldBidRef.current = null;
143
+ show(null);
144
+ }
145
+ }, [biddingOpen, show]);
146
+ // The lock after a bid goes: the host answers on the room, not to the bid.
147
+ (0, react_1.useEffect)(() => {
148
+ if (!bidOnItsWay)
149
+ return;
150
+ const timer = setTimeout(() => setBidOnItsWay(false), auctionRules_1.BID_ON_ITS_WAY_MS);
151
+ return () => clearTimeout(timer);
152
+ }, [bidOnItsWay]);
153
+ /**
154
+ * Sends a held bid. With `atAmountShown`, after a last look at the round as it is now: a closed
155
+ * round sends nothing; outbid or over the ceiling sends nothing and says why.
156
+ */
157
+ const send = (0, react_1.useCallback)((held, variant) => {
158
+ var _a;
159
+ heldBidRef.current = null;
105
160
  show(null);
106
- void placeBid({ amount, variantId: variant }).catch((caught) => (0, client_1.getLogger)().error(caught, { at: 'auctionGate.placeBid' }));
107
- }, [placeBid, show]);
161
+ const now = latest.current.options;
162
+ let amount = held === null || held === void 0 ? void 0 : held.amount;
163
+ if (now.atAmountShown) {
164
+ const round = now.round;
165
+ const asked = amount !== null && amount !== void 0 ? amount : round.nextBid;
166
+ const refused = (0, auctionRules_1.bidRefusal)(asked, round, Date.now());
167
+ if (refused === 'closed')
168
+ return;
169
+ if (refused) {
170
+ refusalsSoFar.current += 1;
171
+ setRefusal({
172
+ id: refusalsSoFar.current,
173
+ reason: refused,
174
+ amount: refused === 'overCap' ? ((_a = round.bidCap) !== null && _a !== void 0 ? _a : asked) : round.nextBid,
175
+ });
176
+ return;
177
+ }
178
+ amount = asked;
179
+ }
180
+ setBidOnItsWay(true);
181
+ void Promise.resolve(now.placeBid({ amount, variantId: variant })).catch((caught) => (0, client_1.getLogger)().error(caught, { at: 'auctionGate.placeBid' }));
182
+ }, [show]);
108
183
  const requestBid = (0, react_1.useCallback)((amount) => {
109
- pendingRef.current = amount;
110
- if (!isLoggedIn)
111
- return show('signIn');
184
+ var _a, _b;
185
+ const now = latest.current.options;
186
+ const held = {
187
+ // At the amount shown: the round's minimum as it is now, not as it will be once the panels close.
188
+ amount: now.atAmountShown ? (amount !== null && amount !== void 0 ? amount : now.round.nextBid) : amount,
189
+ lotId: (_b = (_a = now.round) === null || _a === void 0 ? void 0 : _a.storeProductId) !== null && _b !== void 0 ? _b : null,
190
+ };
191
+ heldBidRef.current = held;
192
+ if (!isLoggedIn) {
193
+ const startSignIn = now.startSignIn;
194
+ if (!startSignIn)
195
+ return show('signIn');
196
+ // The gate signs the shopper in itself: the bid waits here, with no panel, for the sign-in.
197
+ heldBidRef.current = null;
198
+ show(null);
199
+ setWaitingForSignIn(held);
200
+ // Signed in already, the bidder still loading: the bid waits for them, with no sign-in to start.
201
+ if (!latest.current.signInLoading)
202
+ (0, startSignIn_1.startTheSignIn)(startSignIn, 'auctionGate.startSignIn');
203
+ return;
204
+ }
112
205
  if (liveSelling_1.liveSelling.auctions.isBiddingBlocked(unpaidStreamIds, streamingId)) {
113
206
  return show('unpaidWins');
114
207
  }
@@ -118,8 +211,49 @@ function useAuctionBidGate({ streamingId, isLoggedIn, biddingOpen, variantCount,
118
211
  return show('terms');
119
212
  if (variantCount > 1 && !variantId)
120
213
  return show('variant');
121
- send(amount, variantId);
214
+ send(held, variantId);
122
215
  }, [isLoggedIn, unpaidStreamIds, streamingId, termsAccepted, variantCount, variantId, send, show]);
216
+ const requestBidNow = (0, react_1.useRef)(requestBid);
217
+ requestBidNow.current = requestBid;
218
+ /** Bidding on the held bid's lot is still open: a round is, on the same lot when both name one. */
219
+ const stillOpenFor = (0, react_1.useCallback)((waiting) => {
220
+ var _a, _b;
221
+ const now = latest.current.options;
222
+ const lotNow = (_b = (_a = now.round) === null || _a === void 0 ? void 0 : _a.storeProductId) !== null && _b !== void 0 ? _b : null;
223
+ return now.biddingOpen && (waiting.lotId === null || lotNow === null || lotNow === waiting.lotId);
224
+ }, []);
225
+ // Signed in: back to the bid, if bidding on its lot is still open, through the gate from where the
226
+ // sign-in stopped it. Unpaid wins are read fresh first: the gate's own read, started by the sign-in,
227
+ // may not have landed, and a bid must not slip past it.
228
+ (0, react_1.useEffect)(() => {
229
+ if (!waitingForSignIn || !isLoggedIn)
230
+ return;
231
+ const waiting = waitingForSignIn;
232
+ setWaitingForSignIn(null);
233
+ if (!stillOpenFor(waiting))
234
+ return;
235
+ const streamingIdThen = latest.current.options.streamingId;
236
+ void (async () => {
237
+ const unpaid = await liveSelling_1.liveSelling.auctions.unpaidStreamIds().catch(() => []);
238
+ if (!mounted.current || !stillOpenFor(waiting))
239
+ return;
240
+ if (liveSelling_1.liveSelling.auctions.isBiddingBlocked(unpaid, streamingIdThen)) {
241
+ setUnpaidStreamIds(unpaid);
242
+ heldBidRef.current = waiting;
243
+ show('unpaidWins');
244
+ return;
245
+ }
246
+ requestBidNow.current(waiting.amount);
247
+ })();
248
+ }, [waitingForSignIn, isLoggedIn, stillOpenFor, show]);
249
+ // Back on show still signed out (the app's Sign In page closed without a sign-in): the bid is dropped.
250
+ const wasOnShow = (0, react_1.useRef)(screenOnShow);
251
+ (0, react_1.useEffect)(() => {
252
+ const cameBack = screenOnShow && !wasOnShow.current;
253
+ wasOnShow.current = screenOnShow;
254
+ if (cameBack && !isLoggedIn && !signInLoading)
255
+ setWaitingForSignIn(null);
256
+ }, [screenOnShow, isLoggedIn, signInLoading]);
123
257
  const acceptTerms = (0, react_1.useCallback)(() => {
124
258
  setTermsAccepted(true);
125
259
  void liveSelling_1.liveSelling.auctions
@@ -129,16 +263,26 @@ function useAuctionBidGate({ streamingId, isLoggedIn, biddingOpen, variantCount,
129
263
  // rules was a step in that, not the end of it. `show` waits for this panel to go first.
130
264
  if (variantCount > 1 && !variantId)
131
265
  return show('variant');
132
- send(pendingRef.current, variantId);
266
+ send(heldBidRef.current, variantId);
133
267
  }, [variantCount, variantId, send, show]);
134
268
  const chooseVariant = (0, react_1.useCallback)((chosen) => {
135
269
  setVariantId(chosen);
136
- send(pendingRef.current, chosen);
270
+ send(heldBidRef.current, chosen);
137
271
  }, [send]);
138
272
  const dismiss = (0, react_1.useCallback)(() => {
139
- pendingRef.current = undefined;
273
+ heldBidRef.current = null;
140
274
  show(null);
141
275
  }, [show]);
142
- return { blocker, variantId, requestBid, acceptTerms, chooseVariant, dismiss, refreshUnpaidWins };
276
+ return {
277
+ blocker,
278
+ variantId,
279
+ requestBid,
280
+ acceptTerms,
281
+ chooseVariant,
282
+ dismiss,
283
+ refreshUnpaidWins,
284
+ refusal,
285
+ bidOnItsWay,
286
+ };
143
287
  }
144
288
  //# sourceMappingURL=useAuctionBidGate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAuctionBidGate.js","sourceRoot":"","sources":["../../src/react/useAuctionBidGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAuctionBidGate.js","sourceRoot":"","sources":["../../src/react/useAuctionBidGate.ts"],"names":[],"mappings":"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"}
@@ -20,9 +20,17 @@ export interface AuctionWinRow<TRaw = unknown> {
20
20
  }
21
21
  export interface UseAuctionWinsState<TRaw = unknown> {
22
22
  rows: AuctionWinRow<TRaw>[];
23
+ /**
24
+ * The variant ids of the prizes in `rows` (0.9.0), so a cart can show a prize line as a prize even
25
+ * when the host put it in the shopping cart with no stamp. A new set only when `rows` changes.
26
+ */
27
+ giveawayVariantIds: ReadonlySet<string>;
23
28
  /** Sum of the bids. Giveaways contribute nothing. */
24
29
  totalBids: number;
25
- /** The stream the tab settles against — `auction_id` on the cart. */
30
+ /**
31
+ * The stream the tab settles against — `auction_id` on the cart. The first stream with something
32
+ * payable; `rows` cover every stream, and `row.item.streamingId` names each row's own.
33
+ */
26
34
  streamingId: string | null;
27
35
  loading: boolean;
28
36
  /** Minting the cart. Hold the button while it is true so a double tap cannot mint two. */
@@ -1 +1 @@
1
- {"version":3,"file":"useAuctionWins.d.ts","sourceRoot":"","sources":["../../src/react/useAuctionWins.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,iCAAiC;AACjC,MAAM,WAAW,aAAa,CAAC,IAAI,GAAG,OAAO;IAC3C;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,0FAA0F;IAC1F,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB,CAAC,IAAI,GAAG,OAAO;IACjD,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAyHD,wBAAgB,cAAc,CAAC,IAAI,GAAG,OAAO,EAC3C,OAAO,GAAE,qBAA0B,GAClC,mBAAmB,CAAC,IAAI,CAAC,CAkI3B"}
1
+ {"version":3,"file":"useAuctionWins.d.ts","sourceRoot":"","sources":["../../src/react/useAuctionWins.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,iCAAiC;AACjC,MAAM,WAAW,aAAa,CAAC,IAAI,GAAG,OAAO;IAC3C;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,0FAA0F;IAC1F,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB,CAAC,IAAI,GAAG,OAAO;IACjD,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5B;;;OAGG;IACH,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA6HD,wBAAgB,cAAc,CAAC,IAAI,GAAG,OAAO,EAC3C,OAAO,GAAE,qBAA0B,GAClC,mBAAmB,CAAC,IAAI,CAAC,CAmI3B"}
@@ -29,6 +29,7 @@ exports.useAuctionWins = useAuctionWins;
29
29
  */
30
30
  const react_1 = require("react");
31
31
  const client_1 = require("../client");
32
+ const giveawayPrizeLines_1 = require("../giveawayPrizeLines");
32
33
  const liveSelling_1 = require("../liveSelling");
33
34
  const LOAD_FAILED = 'Could not load your auction wins';
34
35
  const CHECKOUT_FAILED = 'Could not start checkout. Please try again.';
@@ -69,8 +70,11 @@ const reportedMismatches = new Set();
69
70
  *
70
71
  * A read builds new row objects every time, so writing them unconditionally re-renders the list — and
71
72
  * any caller whose refresh is driven by a re-render then has a loop with a new array on each turn. The
72
- * ledger is small and its identity is exactly these four fields, so comparing them is cheaper than the
73
+ * ledger is small and its identity is exactly these five fields, so comparing them is cheaper than the
73
74
  * render it avoids.
75
+ *
76
+ * The stream is one of the five because rows come from every stream: a kept row is what `checkout()`
77
+ * hands the adapter, so it must not carry a stream the fresh read no longer says.
74
78
  */
75
79
  function sameRows(a, b) {
76
80
  if (a.length !== b.length)
@@ -80,7 +84,8 @@ function sameRows(a, b) {
80
84
  return (row.product.id === other.product.id &&
81
85
  row.variant.id === other.variant.id &&
82
86
  row.winningBid === other.winningBid &&
83
- row.isGiveaway === other.isGiveaway);
87
+ row.isGiveaway === other.isGiveaway &&
88
+ row.item.streamingId === other.item.streamingId);
84
89
  });
85
90
  }
86
91
  /**
@@ -263,6 +268,7 @@ function useAuctionWins(options = {}) {
263
268
  }
264
269
  }, [rows, streamingId, commerce]);
265
270
  const totalBids = rows.reduce((sum, row) => sum + (row.isGiveaway ? 0 : row.winningBid), 0);
266
- return { rows, totalBids, streamingId, loading, checkingOut, error, refresh, checkout };
271
+ const giveawayVariantIds = (0, react_1.useMemo)(() => (0, giveawayPrizeLines_1.giveawayVariantIdsOf)(rows), [rows]);
272
+ return { rows, giveawayVariantIds, totalBids, streamingId, loading, checkingOut, error, refresh, checkout };
267
273
  }
268
274
  //# sourceMappingURL=useAuctionWins.js.map