@tiledev/sdk-apptile-live-selling 0.16.0 → 0.16.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/dist/attribution.d.ts +2 -16
- package/dist/attribution.d.ts.map +1 -1
- package/dist/attribution.js +4 -10
- package/dist/attribution.js.map +1 -1
- package/dist/auctions.d.ts.map +1 -1
- package/dist/auctions.js +11 -42
- package/dist/auctions.js.map +1 -1
- package/dist/cartAttributes.d.ts +0 -10
- package/dist/cartAttributes.d.ts.map +1 -1
- package/dist/cartAttributes.js +1 -20
- package/dist/cartAttributes.js.map +1 -1
- package/dist/client.d.ts +2 -51
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +23 -123
- package/dist/client.js.map +1 -1
- package/dist/clips.d.ts +1 -12
- package/dist/clips.d.ts.map +1 -1
- package/dist/clips.js +6 -114
- package/dist/clips.js.map +1 -1
- package/dist/commentLinks.d.ts +0 -29
- package/dist/commentLinks.d.ts.map +1 -1
- package/dist/commentLinks.js.map +1 -1
- package/dist/engine.native.d.ts.map +1 -1
- package/dist/engine.native.js +845 -17
- package/dist/engine.native.js.map +1 -1
- package/dist/index.d.ts +4 -48
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -240
- package/dist/index.js.map +1 -1
- package/dist/polls.d.ts.map +1 -1
- package/dist/polls.js +0 -3
- package/dist/polls.js.map +1 -1
- package/dist/react/LiveSellingProvider.d.ts +1 -54
- package/dist/react/LiveSellingProvider.d.ts.map +1 -1
- package/dist/react/LiveSellingProvider.js +3 -60
- package/dist/react/LiveSellingProvider.js.map +1 -1
- package/dist/react/LiveVideoTarget.d.ts.map +1 -1
- package/dist/react/LiveVideoTarget.js +3 -41
- package/dist/react/LiveVideoTarget.js.map +1 -1
- package/dist/react/index.d.ts +3 -30
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -79
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.web.d.ts +32 -36
- package/dist/react/index.web.d.ts.map +1 -1
- package/dist/react/index.web.js +122 -102
- package/dist/react/index.web.js.map +1 -1
- package/dist/react/useAuctionBidGate.d.ts +6 -62
- package/dist/react/useAuctionBidGate.d.ts.map +1 -1
- package/dist/react/useAuctionBidGate.js +27 -228
- package/dist/react/useAuctionBidGate.js.map +1 -1
- package/dist/react/useAuctionWins.d.ts +4 -14
- package/dist/react/useAuctionWins.d.ts.map +1 -1
- package/dist/react/useAuctionWins.js +5 -16
- package/dist/react/useAuctionWins.js.map +1 -1
- package/dist/react/useClips.d.ts +1 -7
- package/dist/react/useClips.d.ts.map +1 -1
- package/dist/react/useClips.js +7 -20
- package/dist/react/useClips.js.map +1 -1
- package/dist/react/useLiveSession.d.ts +3 -15
- package/dist/react/useLiveSession.d.ts.map +1 -1
- package/dist/react/useLiveSession.js +199 -612
- package/dist/react/useLiveSession.js.map +1 -1
- package/dist/react/useLiveStreams.d.ts.map +1 -1
- package/dist/react/useLiveStreams.js +2 -6
- package/dist/react/useLiveStreams.js.map +1 -1
- package/dist/react/useOngoingLive.d.ts +0 -1
- package/dist/react/useOngoingLive.d.ts.map +1 -1
- package/dist/react/useOngoingLive.js +1 -7
- package/dist/react/useOngoingLive.js.map +1 -1
- package/dist/react/useReplays.d.ts +0 -12
- package/dist/react/useReplays.d.ts.map +1 -1
- package/dist/react/useReplays.js +24 -56
- package/dist/react/useReplays.js.map +1 -1
- package/dist/react/useStreamInfo.d.ts +2 -13
- package/dist/react/useStreamInfo.d.ts.map +1 -1
- package/dist/react/useStreamInfo.js +8 -36
- package/dist/react/useStreamInfo.js.map +1 -1
- package/dist/replays.d.ts +0 -14
- package/dist/replays.d.ts.map +1 -1
- package/dist/replays.js +22 -68
- package/dist/replays.js.map +1 -1
- package/dist/session.d.ts +6 -39
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +22 -209
- package/dist/session.js.map +1 -1
- package/dist/sessionTypes.d.ts +18 -217
- package/dist/sessionTypes.d.ts.map +1 -1
- package/dist/sessionTypes.js +1 -2
- package/dist/sessionTypes.js.map +1 -1
- package/dist/streams.d.ts +1 -27
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +21 -84
- package/dist/streams.js.map +1 -1
- package/dist/types.d.ts +10 -288
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/types.js.map +1 -1
- package/dist/wire.d.ts +0 -31
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +0 -25
- package/dist/wire.js.map +1 -1
- package/dist/zego.d.ts +1 -3
- package/dist/zego.d.ts.map +1 -1
- package/dist/zego.js +1 -1
- package/package.json +1 -1
- package/dist/auctionComments.d.ts +0 -25
- package/dist/auctionComments.d.ts.map +0 -1
- package/dist/auctionComments.js +0 -28
- package/dist/auctionComments.js.map +0 -1
- package/dist/auctionRules.d.ts +0 -77
- package/dist/auctionRules.d.ts.map +0 -1
- package/dist/auctionRules.js +0 -107
- package/dist/auctionRules.js.map +0 -1
- package/dist/cartExtension.d.ts +0 -39
- package/dist/cartExtension.d.ts.map +0 -1
- package/dist/cartExtension.js +0 -51
- package/dist/cartExtension.js.map +0 -1
- package/dist/checkoutRefused.d.ts +0 -9
- package/dist/checkoutRefused.d.ts.map +0 -1
- package/dist/checkoutRefused.js +0 -16
- package/dist/checkoutRefused.js.map +0 -1
- package/dist/clipsPage.d.ts +0 -29
- package/dist/clipsPage.d.ts.map +0 -1
- package/dist/clipsPage.js +0 -49
- package/dist/clipsPage.js.map +0 -1
- package/dist/commentHistory.d.ts +0 -70
- package/dist/commentHistory.d.ts.map +0 -1
- package/dist/commentHistory.js +0 -133
- package/dist/commentHistory.js.map +0 -1
- package/dist/commentLinkCards.d.ts +0 -11
- package/dist/commentLinkCards.d.ts.map +0 -1
- package/dist/commentLinkCards.js +0 -70
- package/dist/commentLinkCards.js.map +0 -1
- package/dist/giveawayPrize.d.ts +0 -13
- package/dist/giveawayPrize.d.ts.map +0 -1
- package/dist/giveawayPrize.js +0 -18
- package/dist/giveawayPrize.js.map +0 -1
- package/dist/giveawayPrizeLines.d.ts +0 -120
- package/dist/giveawayPrizeLines.d.ts.map +0 -1
- package/dist/giveawayPrizeLines.js +0 -97
- package/dist/giveawayPrizeLines.js.map +0 -1
- package/dist/giveawayPrizes.d.ts +0 -20
- package/dist/giveawayPrizes.d.ts.map +0 -1
- package/dist/giveawayPrizes.js +0 -50
- package/dist/giveawayPrizes.js.map +0 -1
- package/dist/giveawayRoster.d.ts +0 -53
- package/dist/giveawayRoster.d.ts.map +0 -1
- package/dist/giveawayRoster.js +0 -93
- package/dist/giveawayRoster.js.map +0 -1
- package/dist/heldComments.d.ts +0 -40
- package/dist/heldComments.d.ts.map +0 -1
- package/dist/heldComments.js +0 -75
- package/dist/heldComments.js.map +0 -1
- package/dist/hiddenShows.d.ts +0 -44
- package/dist/hiddenShows.d.ts.map +0 -1
- package/dist/hiddenShows.js +0 -53
- package/dist/hiddenShows.js.map +0 -1
- package/dist/linkLots.d.ts +0 -64
- package/dist/linkLots.d.ts.map +0 -1
- package/dist/linkLots.js +0 -84
- package/dist/linkLots.js.map +0 -1
- package/dist/liveHaptics.d.ts +0 -7
- package/dist/liveHaptics.d.ts.map +0 -1
- package/dist/liveHaptics.js +0 -11
- package/dist/liveHaptics.js.map +0 -1
- package/dist/liveHaptics.native.d.ts +0 -7
- package/dist/liveHaptics.native.d.ts.map +0 -1
- package/dist/liveHaptics.native.js +0 -12
- package/dist/liveHaptics.native.js.map +0 -1
- package/dist/livePages.d.ts +0 -176
- package/dist/livePages.d.ts.map +0 -1
- package/dist/livePages.js +0 -216
- package/dist/livePages.js.map +0 -1
- package/dist/liveRoom.d.ts +0 -21
- package/dist/liveRoom.d.ts.map +0 -1
- package/dist/liveRoom.js +0 -28
- package/dist/liveRoom.js.map +0 -1
- package/dist/liveShow.d.ts +0 -65
- package/dist/liveShow.d.ts.map +0 -1
- package/dist/liveShow.js +0 -65
- package/dist/liveShow.js.map +0 -1
- package/dist/missedPolls.d.ts +0 -27
- package/dist/missedPolls.d.ts.map +0 -1
- package/dist/missedPolls.js +0 -16
- package/dist/missedPolls.js.map +0 -1
- package/dist/pageOptions.d.ts +0 -149
- package/dist/pageOptions.d.ts.map +0 -1
- package/dist/pageOptions.js +0 -123
- package/dist/pageOptions.js.map +0 -1
- package/dist/pageTypes.d.ts +0 -185
- package/dist/pageTypes.d.ts.map +0 -1
- package/dist/pageTypes.js +0 -3
- package/dist/pageTypes.js.map +0 -1
- package/dist/phoneTaps.d.ts +0 -25
- package/dist/phoneTaps.d.ts.map +0 -1
- package/dist/phoneTaps.js +0 -47
- package/dist/phoneTaps.js.map +0 -1
- package/dist/pipWindow.d.ts +0 -85
- package/dist/pipWindow.d.ts.map +0 -1
- package/dist/pipWindow.js +0 -88
- package/dist/pipWindow.js.map +0 -1
- package/dist/react/clocks.d.ts +0 -29
- package/dist/react/clocks.d.ts.map +0 -1
- package/dist/react/clocks.js +0 -124
- package/dist/react/clocks.js.map +0 -1
- package/dist/react/navigation.d.ts +0 -13
- package/dist/react/navigation.d.ts.map +0 -1
- package/dist/react/navigation.js +0 -7
- package/dist/react/navigation.js.map +0 -1
- package/dist/react/platformSession.d.ts +0 -16
- package/dist/react/platformSession.d.ts.map +0 -1
- package/dist/react/platformSession.js +0 -28
- package/dist/react/platformSession.js.map +0 -1
- package/dist/react/platformSession.web.d.ts +0 -35
- package/dist/react/platformSession.web.d.ts.map +0 -1
- package/dist/react/platformSession.web.js +0 -148
- package/dist/react/platformSession.web.js.map +0 -1
- package/dist/react/replayPlayer.d.ts +0 -83
- package/dist/react/replayPlayer.d.ts.map +0 -1
- package/dist/react/replayPlayer.js +0 -315
- package/dist/react/replayPlayer.js.map +0 -1
- package/dist/react/share.d.ts +0 -22
- package/dist/react/share.d.ts.map +0 -1
- package/dist/react/share.js +0 -45
- package/dist/react/share.js.map +0 -1
- package/dist/react/shopifyProviders.d.ts +0 -82
- package/dist/react/shopifyProviders.d.ts.map +0 -1
- package/dist/react/shopifyProviders.js +0 -113
- package/dist/react/shopifyProviders.js.map +0 -1
- package/dist/react/showPages.d.ts +0 -106
- package/dist/react/showPages.d.ts.map +0 -1
- package/dist/react/showPages.js +0 -166
- package/dist/react/showPages.js.map +0 -1
- package/dist/react/showPagesOnDevice.d.ts +0 -18
- package/dist/react/showPagesOnDevice.d.ts.map +0 -1
- package/dist/react/showPagesOnDevice.js +0 -31
- package/dist/react/showPagesOnDevice.js.map +0 -1
- package/dist/react/startSignIn.d.ts +0 -3
- package/dist/react/startSignIn.d.ts.map +0 -1
- package/dist/react/startSignIn.js +0 -19
- package/dist/react/startSignIn.js.map +0 -1
- package/dist/react/systemPictureInPicture.d.ts +0 -34
- package/dist/react/systemPictureInPicture.d.ts.map +0 -1
- package/dist/react/systemPictureInPicture.js +0 -93
- package/dist/react/systemPictureInPicture.js.map +0 -1
- package/dist/react/useAccountName.d.ts +0 -8
- package/dist/react/useAccountName.d.ts.map +0 -1
- package/dist/react/useAccountName.js +0 -49
- package/dist/react/useAccountName.js.map +0 -1
- package/dist/react/useClipsPage.d.ts +0 -47
- package/dist/react/useClipsPage.d.ts.map +0 -1
- package/dist/react/useClipsPage.js +0 -130
- package/dist/react/useClipsPage.js.map +0 -1
- package/dist/react/useCommentLinkCards.d.ts +0 -6
- package/dist/react/useCommentLinkCards.d.ts.map +0 -1
- package/dist/react/useCommentLinkCards.js +0 -67
- package/dist/react/useCommentLinkCards.js.map +0 -1
- package/dist/react/useFeaturedClip.d.ts +0 -15
- package/dist/react/useFeaturedClip.d.ts.map +0 -1
- package/dist/react/useFeaturedClip.js +0 -52
- package/dist/react/useFeaturedClip.js.map +0 -1
- package/dist/react/useGiveawayEntry.d.ts +0 -59
- package/dist/react/useGiveawayEntry.d.ts.map +0 -1
- package/dist/react/useGiveawayEntry.js +0 -170
- package/dist/react/useGiveawayEntry.js.map +0 -1
- package/dist/react/useGiveawayPrize.d.ts +0 -12
- package/dist/react/useGiveawayPrize.d.ts.map +0 -1
- package/dist/react/useGiveawayPrize.js +0 -53
- package/dist/react/useGiveawayPrize.js.map +0 -1
- package/dist/react/useGiveawayPrizes.d.ts +0 -4
- package/dist/react/useGiveawayPrizes.d.ts.map +0 -1
- package/dist/react/useGiveawayPrizes.js +0 -58
- package/dist/react/useGiveawayPrizes.js.map +0 -1
- package/dist/react/useHiddenShows.d.ts +0 -10
- package/dist/react/useHiddenShows.d.ts.map +0 -1
- package/dist/react/useHiddenShows.js +0 -30
- package/dist/react/useHiddenShows.js.map +0 -1
- package/dist/react/useKeepScreenAwake.d.ts +0 -2
- package/dist/react/useKeepScreenAwake.d.ts.map +0 -1
- package/dist/react/useKeepScreenAwake.js +0 -34
- package/dist/react/useKeepScreenAwake.js.map +0 -1
- package/dist/react/useLiveAuction.d.ts +0 -106
- package/dist/react/useLiveAuction.d.ts.map +0 -1
- package/dist/react/useLiveAuction.js +0 -255
- package/dist/react/useLiveAuction.js.map +0 -1
- package/dist/react/useLiveChat.d.ts +0 -110
- package/dist/react/useLiveChat.d.ts.map +0 -1
- package/dist/react/useLiveChat.js +0 -230
- package/dist/react/useLiveChat.js.map +0 -1
- package/dist/react/useLiveGiveawaysAndPolls.d.ts +0 -95
- package/dist/react/useLiveGiveawaysAndPolls.d.ts.map +0 -1
- package/dist/react/useLiveGiveawaysAndPolls.js +0 -225
- package/dist/react/useLiveGiveawaysAndPolls.js.map +0 -1
- package/dist/react/useLivePage.d.ts +0 -136
- package/dist/react/useLivePage.d.ts.map +0 -1
- package/dist/react/useLivePage.js +0 -319
- package/dist/react/useLivePage.js.map +0 -1
- package/dist/react/useLiveShop.d.ts +0 -97
- package/dist/react/useLiveShop.d.ts.map +0 -1
- package/dist/react/useLiveShop.js +0 -197
- package/dist/react/useLiveShop.js.map +0 -1
- package/dist/react/useLiveShow.d.ts +0 -3
- package/dist/react/useLiveShow.d.ts.map +0 -1
- package/dist/react/useLiveShow.js +0 -21
- package/dist/react/useLiveShow.js.map +0 -1
- package/dist/react/useMySilentAuctionBids.d.ts +0 -29
- package/dist/react/useMySilentAuctionBids.d.ts.map +0 -1
- package/dist/react/useMySilentAuctionBids.js +0 -157
- package/dist/react/useMySilentAuctionBids.js.map +0 -1
- package/dist/react/useReplayPage.d.ts +0 -155
- package/dist/react/useReplayPage.d.ts.map +0 -1
- package/dist/react/useReplayPage.js +0 -580
- package/dist/react/useReplayPage.js.map +0 -1
- package/dist/react/useSilentAuctionLot.d.ts +0 -44
- package/dist/react/useSilentAuctionLot.d.ts.map +0 -1
- package/dist/react/useSilentAuctionLot.js +0 -168
- package/dist/react/useSilentAuctionLot.js.map +0 -1
- package/dist/react/useSilentAuctionLots.d.ts +0 -41
- package/dist/react/useSilentAuctionLots.d.ts.map +0 -1
- package/dist/react/useSilentAuctionLots.js +0 -64
- package/dist/react/useSilentAuctionLots.js.map +0 -1
- package/dist/react/useSilentAuctionRounds.d.ts +0 -15
- package/dist/react/useSilentAuctionRounds.d.ts.map +0 -1
- package/dist/react/useSilentAuctionRounds.js +0 -44
- package/dist/react/useSilentAuctionRounds.js.map +0 -1
- package/dist/replayPages.d.ts +0 -31
- package/dist/replayPages.d.ts.map +0 -1
- package/dist/replayPages.js +0 -34
- package/dist/replayPages.js.map +0 -1
- package/dist/shopifyCommerce.d.ts +0 -204
- package/dist/shopifyCommerce.d.ts.map +0 -1
- package/dist/shopifyCommerce.js +0 -217
- package/dist/shopifyCommerce.js.map +0 -1
- package/dist/shopifyIdentity.d.ts +0 -61
- package/dist/shopifyIdentity.d.ts.map +0 -1
- package/dist/shopifyIdentity.js +0 -61
- package/dist/shopifyIdentity.js.map +0 -1
- package/dist/shopifyIds.d.ts +0 -9
- package/dist/shopifyIds.d.ts.map +0 -1
- package/dist/shopifyIds.js +0 -18
- package/dist/shopifyIds.js.map +0 -1
- package/dist/showCredit.d.ts +0 -89
- package/dist/showCredit.d.ts.map +0 -1
- package/dist/showCredit.js +0 -120
- package/dist/showCredit.js.map +0 -1
- package/dist/showLinks.d.ts +0 -24
- package/dist/showLinks.d.ts.map +0 -1
- package/dist/showLinks.js +0 -23
- package/dist/showLinks.js.map +0 -1
- package/dist/showLots.d.ts +0 -44
- package/dist/showLots.d.ts.map +0 -1
- package/dist/showLots.js +0 -70
- package/dist/showLots.js.map +0 -1
- package/dist/showNames.d.ts +0 -77
- package/dist/showNames.d.ts.map +0 -1
- package/dist/showNames.js +0 -143
- package/dist/showNames.js.map +0 -1
- package/dist/showPages.d.ts +0 -56
- package/dist/showPages.d.ts.map +0 -1
- package/dist/showPages.js +0 -48
- package/dist/showPages.js.map +0 -1
- package/dist/silentAuctionFeed.d.ts +0 -49
- package/dist/silentAuctionFeed.d.ts.map +0 -1
- package/dist/silentAuctionFeed.js +0 -242
- package/dist/silentAuctionFeed.js.map +0 -1
- package/dist/silentAuctionRules.d.ts +0 -253
- package/dist/silentAuctionRules.d.ts.map +0 -1
- package/dist/silentAuctionRules.js +0 -489
- package/dist/silentAuctionRules.js.map +0 -1
- package/dist/silentAuctions.d.ts +0 -65
- package/dist/silentAuctions.d.ts.map +0 -1
- package/dist/silentAuctions.js +0 -272
- package/dist/silentAuctions.js.map +0 -1
- package/dist/storeData.d.ts +0 -16
- package/dist/storeData.d.ts.map +0 -1
- package/dist/storeData.js +0 -19
- package/dist/storeData.js.map +0 -1
- package/dist/ui/BubbleFrame.d.ts +0 -38
- package/dist/ui/BubbleFrame.d.ts.map +0 -1
- package/dist/ui/BubbleFrame.js +0 -181
- package/dist/ui/BubbleFrame.js.map +0 -1
- package/dist/ui/LiveBubble.d.ts +0 -43
- package/dist/ui/LiveBubble.d.ts.map +0 -1
- package/dist/ui/LiveBubble.js +0 -116
- package/dist/ui/LiveBubble.js.map +0 -1
- package/dist/ui/ReplayBubble.d.ts +0 -23
- package/dist/ui/ReplayBubble.d.ts.map +0 -1
- package/dist/ui/ReplayBubble.js +0 -71
- package/dist/ui/ReplayBubble.js.map +0 -1
- package/dist/ui.d.ts +0 -27
- package/dist/ui.d.ts.map +0 -1
- package/dist/ui.js +0 -34
- package/dist/ui.js.map +0 -1
- package/dist/unreadRoomMessages.d.ts +0 -26
- package/dist/unreadRoomMessages.d.ts.map +0 -1
- package/dist/unreadRoomMessages.js +0 -62
- package/dist/unreadRoomMessages.js.map +0 -1
- package/dist/viewerRules.d.ts +0 -38
- package/dist/viewerRules.d.ts.map +0 -1
- package/dist/viewerRules.js +0 -46
- package/dist/viewerRules.js.map +0 -1
- package/dist/winsAttribution.d.ts +0 -22
- package/dist/winsAttribution.d.ts.map +0 -1
- package/dist/winsAttribution.js +0 -49
- package/dist/winsAttribution.js.map +0 -1
- package/dist/zegoEngine.d.ts +0 -173
- package/dist/zegoEngine.d.ts.map +0 -1
- package/dist/zegoEngine.js +0 -1069
- package/dist/zegoEngine.js.map +0 -1
package/dist/ui/LiveBubble.js
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LiveBubble = LiveBubble;
|
|
4
|
-
/**
|
|
5
|
-
* The live show's floating bubble (0.14.0, moved from amore-v2's `src/core/overlays/liveBubble.tsx`:
|
|
6
|
-
* Freckled Poppy's `LivePipBubble`, in the frame the replay's bubble uses).
|
|
7
|
-
*
|
|
8
|
-
* `createElement` rather than JSX, like the rest of the package, so this stays a plain `.ts`.
|
|
9
|
-
*/
|
|
10
|
-
const react_native_performant_image_1 = require("@tiledev/react-native-performant-image");
|
|
11
|
-
const react_1 = require("react");
|
|
12
|
-
const react_native_1 = require("react-native");
|
|
13
|
-
const liveShow_1 = require("../liveShow");
|
|
14
|
-
const LiveSellingProvider_1 = require("../react/LiveSellingProvider");
|
|
15
|
-
const platformSession_1 = require("../react/platformSession");
|
|
16
|
-
const useKeepScreenAwake_1 = require("../react/useKeepScreenAwake");
|
|
17
|
-
const BubbleFrame_1 = require("./BubbleFrame");
|
|
18
|
-
/** Screen-reader words, Freckled Poppy's; the words over the picture while the host is away. */
|
|
19
|
-
const WORDS = {
|
|
20
|
-
open: 'Back to the live show',
|
|
21
|
-
close: 'Close the live show',
|
|
22
|
-
waiting: 'Waiting for the host',
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* The live show's floating bubble. An app overlay beside the navigator, not a tile, so it outlives the
|
|
26
|
-
* Live screen that shrank the show: mount it once over the whole app, inside `LiveSessionProvider`
|
|
27
|
-
* (`ShopifyLiveSessionProvider`) and `SafeAreaProvider`. Shown while the session's picture is in the
|
|
28
|
-
* app's bubble (`pipMode` `inapp`): the Live screen's back (while the show plays or waits for the
|
|
29
|
-
* host), picture-in-picture and cart buttons put it there.
|
|
30
|
-
*
|
|
31
|
-
* - **The show's own picture**: `LiveVideoTarget`, which claims the room's video while the bubble is
|
|
32
|
-
* up, at the shopper's own sound setting, over the show's poster.
|
|
33
|
-
* - **A tap** goes back to the Live screen already open, or a new one (`routes.openLive`, or `onOpen`),
|
|
34
|
-
* which ends the bubble as it arrives. **✕** stops the show and lets the session follow whatever is
|
|
35
|
-
* on air again. The show ending closes it (the session leaves `inapp` itself).
|
|
36
|
-
* - **The screen stays on** while it shows, under its own hold (`useKeepScreenAwake`'s tag).
|
|
37
|
-
* - **One shrunk show at a time**: the Live screen stops a replay's bubble as it opens, and the Replay
|
|
38
|
-
* screen this one.
|
|
39
|
-
* - **The phone's own floating window** (`pipMode` `system`). Putting the app away with the bubble up
|
|
40
|
-
* hands the show to it (the session arms it while the bubble shows a playing show), and coming back
|
|
41
|
-
* puts it in the bubble again.
|
|
42
|
-
* - **iOS** draws that window itself. When it came from the bubble, the bubble stays drawn behind it,
|
|
43
|
-
* its video view still bound, so coming back finds the same picture with no new binding and no
|
|
44
|
-
* black frame. When it came from the Live screen, nothing is drawn here.
|
|
45
|
-
* - **Android**'s window is the app, scaled down, so the picture fills it here, over the show's
|
|
46
|
-
* poster (Freckled Poppy's), whichever surface it came from.
|
|
47
|
-
* - **The host's camera off** (`hostIsAway`, 0.16.0, ENG-969): the room's video draws black, so the
|
|
48
|
-
* show's poster and `waitingLabel` cover it, in the bubble and in Android's window. Over the video,
|
|
49
|
-
* never instead of it: the video view stays bound (iOS's window needs it, above), and the host's
|
|
50
|
-
* picture shows again the moment they come back.
|
|
51
|
-
* - **On the web** the session is idle, so nothing is ever drawn.
|
|
52
|
-
*/
|
|
53
|
-
function LiveBubble({ onOpen, chipColor, openLabel = WORDS.open, closeLabel = WORDS.close, waitingLabel = WORDS.waiting, } = {}) {
|
|
54
|
-
var _a;
|
|
55
|
-
const { pipMode, status, stream, actions } = (0, platformSession_1.useLiveSession)();
|
|
56
|
-
const { routes } = (0, LiveSellingProvider_1.useLivePageOptions)();
|
|
57
|
-
// Where the picture was before the phone's window took it: the bubble (`inapp`) or the Live screen
|
|
58
|
-
// (`none`). Kept from the last render outside the window, and updated during the render rather than in
|
|
59
|
-
// an effect: an effect would leave the window's first render with the wrong answer, and on iOS that
|
|
60
|
-
// render would take the bubble's video view down.
|
|
61
|
-
const [lastPlaceOutsideTheWindow, setLastPlaceOutsideTheWindow] = (0, react_1.useState)(pipMode);
|
|
62
|
-
if (pipMode !== 'system' && pipMode !== lastPlaceOutsideTheWindow)
|
|
63
|
-
setLastPlaceOutsideTheWindow(pipMode);
|
|
64
|
-
const windowCameFromTheBubble = pipMode === 'system' && lastPlaceOutsideTheWindow === 'inapp';
|
|
65
|
-
// Android's window is the app itself: the picture fills it.
|
|
66
|
-
const fillsAndroidWindow = pipMode === 'system' && react_native_1.Platform.OS === 'android';
|
|
67
|
-
// The session leaves `inapp` itself when the show ends; `status` covers the moment in between.
|
|
68
|
-
const showIsUp = status !== 'ended' && status !== 'error';
|
|
69
|
-
const bubbleShown = showIsUp && !fillsAndroidWindow && (pipMode === 'inapp' || windowCameFromTheBubble);
|
|
70
|
-
(0, useKeepScreenAwake_1.useKeepScreenAwake)(bubbleShown || fillsAndroidWindow, 'live-bubble');
|
|
71
|
-
const posterUrl = (_a = stream === null || stream === void 0 ? void 0 : stream.thumbnailUrl) !== null && _a !== void 0 ? _a : null;
|
|
72
|
-
// The host's camera off: the poster and the words over the black picture (ENG-969).
|
|
73
|
-
const awayCover = (0, liveShow_1.hostIsAway)(status) ? (0, react_1.createElement)(HostAwayCover, { posterUrl, label: waitingLabel }) : null;
|
|
74
|
-
if (fillsAndroidWindow) {
|
|
75
|
-
return (0, react_1.createElement)(react_native_1.View, { pointerEvents: 'none', style: styles.systemWindow },
|
|
76
|
-
// Under the picture, as in the bubble: a moment without frames shows the show, not black.
|
|
77
|
-
posterUrl ? (0, react_1.createElement)(react_native_performant_image_1.Image, { source: { uri: posterUrl }, style: react_native_1.StyleSheet.absoluteFill, resizeMode: 'cover', transition: 0 }) : null, (0, react_1.createElement)(platformSession_1.LiveVideoTarget, { active: true, style: styles.video }), awayCover);
|
|
78
|
-
}
|
|
79
|
-
if (!bubbleShown)
|
|
80
|
-
return null;
|
|
81
|
-
const streamId = stream === null || stream === void 0 ? void 0 : stream.streamingId;
|
|
82
|
-
return (0, react_1.createElement)(BubbleFrame_1.BubbleFrame, {
|
|
83
|
-
posterUrl,
|
|
84
|
-
onOpen: () => {
|
|
85
|
-
if (!streamId)
|
|
86
|
-
return;
|
|
87
|
-
if (onOpen)
|
|
88
|
-
onOpen(streamId);
|
|
89
|
-
else
|
|
90
|
-
routes.openLive(streamId);
|
|
91
|
-
},
|
|
92
|
-
onClose: () => {
|
|
93
|
-
// Stopped outright, not handed back: without `stopVideo` the room plays on with no surface.
|
|
94
|
-
actions.exitPip({ stopVideo: true });
|
|
95
|
-
actions.releaseStream();
|
|
96
|
-
},
|
|
97
|
-
openLabel,
|
|
98
|
-
closeLabel,
|
|
99
|
-
chipColor,
|
|
100
|
-
// No `muted`: the shopper is still watching, so the bubble plays their own sound setting.
|
|
101
|
-
children: (0, react_1.createElement)(react_1.Fragment, null, (0, react_1.createElement)(platformSession_1.LiveVideoTarget, { active: true, style: styles.video }), awayCover),
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
/** The show's poster under a dark wash, and the words in the middle: what the bubble shows while the host is away. */
|
|
105
|
-
function HostAwayCover({ posterUrl, label }) {
|
|
106
|
-
return (0, react_1.createElement)(react_native_1.View, { pointerEvents: 'none', style: styles.awayCover }, posterUrl ? (0, react_1.createElement)(react_native_performant_image_1.Image, { source: { uri: posterUrl }, style: react_native_1.StyleSheet.absoluteFill, resizeMode: 'cover', transition: 0 }) : null, (0, react_1.createElement)(react_native_1.View, { style: styles.awayWash }), (0, react_1.createElement)(react_native_1.Text, { style: styles.awayLabel, numberOfLines: 3 }, label));
|
|
107
|
-
}
|
|
108
|
-
const styles = react_native_1.StyleSheet.create({
|
|
109
|
-
video: { ...react_native_1.StyleSheet.absoluteFillObject },
|
|
110
|
-
awayCover: { ...react_native_1.StyleSheet.absoluteFillObject, alignItems: 'center', justifyContent: 'center', backgroundColor: '#000000' },
|
|
111
|
-
awayWash: { ...react_native_1.StyleSheet.absoluteFillObject, backgroundColor: 'rgba(0,0,0,0.45)' },
|
|
112
|
-
awayLabel: { color: '#FFFFFF', fontSize: 12, fontWeight: '600', textAlign: 'center', paddingHorizontal: 10 },
|
|
113
|
-
/** Fills the app, which is the picture-in-picture window on Android. Black around a picture that doesn't fit. */
|
|
114
|
-
systemWindow: { ...react_native_1.StyleSheet.absoluteFillObject, backgroundColor: '#000000', zIndex: 200 },
|
|
115
|
-
});
|
|
116
|
-
//# sourceMappingURL=LiveBubble.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LiveBubble.js","sourceRoot":"","sources":["../../src/ui/LiveBubble.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface ReplayBubbleProps {
|
|
2
|
-
/** A tap on the bubble. Default: back to the recording's Replay screen (`LiveSellingProvider`'s `routes.openReplay`). */
|
|
3
|
-
onOpen?: (feedId: string) => void;
|
|
4
|
-
/** Behind the ✕ and the expand mark: the app's scrim colour. Default `BUBBLE_CHIP_COLOR`. */
|
|
5
|
-
chipColor?: string;
|
|
6
|
-
/** Screen-reader words for the tap and for ✕. Default "Back to the replay", "Close the replay". */
|
|
7
|
-
openLabel?: string;
|
|
8
|
-
closeLabel?: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* The replay's floating bubble. An app overlay beside the navigator, not a tile: it belongs to no
|
|
12
|
-
* screen and stays over every one. Mount it once over the whole app, inside `ReplayPlayerProvider` and
|
|
13
|
-
* `SafeAreaProvider`. Shown while the recording is in the bubble (`useReplayPlayer().bubbleShown`): the
|
|
14
|
-
* Replay screen's picture-in-picture or cart button put it there. It plays the same player at the same
|
|
15
|
-
* moment, with the same sound setting.
|
|
16
|
-
*
|
|
17
|
-
* The frame (drag and snap, the poster, ✕ and the expand mark) is `BubbleFrame`, shared with the live
|
|
18
|
-
* show's bubble (`LiveBubble`). Here: **a tap** goes back to the recording's Replay screen
|
|
19
|
-
* (`routes.openReplay`, or `onOpen`: the one already in the stack, never a second over the first),
|
|
20
|
-
* which closes the bubble as it arrives; **✕** stops the video and closes the bubble.
|
|
21
|
-
*/
|
|
22
|
-
export declare function ReplayBubble({ onOpen, chipColor, openLabel, closeLabel }?: ReplayBubbleProps): import("react").FunctionComponentElement<import("./BubbleFrame").BubbleFrameProps> | null;
|
|
23
|
-
//# sourceMappingURL=ReplayBubble.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReplayBubble.d.ts","sourceRoot":"","sources":["../../src/ui/ReplayBubble.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,iBAAiB;IAChC,yHAAyH;IACzH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAsB,EAAE,UAAwB,EAAE,GAAE,iBAAsB,6FAiC3H"}
|
package/dist/ui/ReplayBubble.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReplayBubble = ReplayBubble;
|
|
4
|
-
/**
|
|
5
|
-
* The replay's floating bubble (0.14.0, moved from amore-v2's `src/core/overlays/replayBubble.tsx`: the
|
|
6
|
-
* old app's `ReplayPipBubble`, rebuilt; decided 2026-10-05, amore-v2's Head of Engineering).
|
|
7
|
-
*
|
|
8
|
-
* `createElement` rather than JSX, like the rest of the package, so this stays a plain `.ts`.
|
|
9
|
-
*/
|
|
10
|
-
const expo_video_1 = require("expo-video");
|
|
11
|
-
const react_1 = require("react");
|
|
12
|
-
const react_native_1 = require("react-native");
|
|
13
|
-
const LiveSellingProvider_1 = require("../react/LiveSellingProvider");
|
|
14
|
-
const replayPlayer_1 = require("../react/replayPlayer");
|
|
15
|
-
const systemPictureInPicture_1 = require("../react/systemPictureInPicture");
|
|
16
|
-
const BubbleFrame_1 = require("./BubbleFrame");
|
|
17
|
-
/** Screen-reader words, the old app's. */
|
|
18
|
-
const WORDS = {
|
|
19
|
-
open: 'Back to the replay',
|
|
20
|
-
close: 'Close the replay',
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* The replay's floating bubble. An app overlay beside the navigator, not a tile: it belongs to no
|
|
24
|
-
* screen and stays over every one. Mount it once over the whole app, inside `ReplayPlayerProvider` and
|
|
25
|
-
* `SafeAreaProvider`. Shown while the recording is in the bubble (`useReplayPlayer().bubbleShown`): the
|
|
26
|
-
* Replay screen's picture-in-picture or cart button put it there. It plays the same player at the same
|
|
27
|
-
* moment, with the same sound setting.
|
|
28
|
-
*
|
|
29
|
-
* The frame (drag and snap, the poster, ✕ and the expand mark) is `BubbleFrame`, shared with the live
|
|
30
|
-
* show's bubble (`LiveBubble`). Here: **a tap** goes back to the recording's Replay screen
|
|
31
|
-
* (`routes.openReplay`, or `onOpen`: the one already in the stack, never a second over the first),
|
|
32
|
-
* which closes the bubble as it arrives; **✕** stops the video and closes the bubble.
|
|
33
|
-
*/
|
|
34
|
-
function ReplayBubble({ onOpen, chipColor, openLabel = WORDS.open, closeLabel = WORDS.close } = {}) {
|
|
35
|
-
const { recording, bubbleShown, player, stop, markVideoReady, noteSystemPictureInPicture } = (0, replayPlayer_1.useReplayPlayer)();
|
|
36
|
-
const { routes } = (0, LiveSellingProvider_1.useLivePageOptions)();
|
|
37
|
-
// Put away with the video in the bubble, the phone takes it into its own window (0.15.2, ENG-941).
|
|
38
|
-
const startsPictureInPictureAutomatically = (0, systemPictureInPicture_1.useAutoPictureInPicture)(bubbleShown && !!recording);
|
|
39
|
-
if (!bubbleShown || !recording)
|
|
40
|
-
return null;
|
|
41
|
-
const recordingId = recording.id;
|
|
42
|
-
return (0, react_1.createElement)(BubbleFrame_1.BubbleFrame, {
|
|
43
|
-
posterUrl: recording.thumbnailUrl,
|
|
44
|
-
onOpen: () => {
|
|
45
|
-
if (onOpen)
|
|
46
|
-
onOpen(recordingId);
|
|
47
|
-
else
|
|
48
|
-
routes.openReplay(recordingId);
|
|
49
|
-
},
|
|
50
|
-
onClose: stop,
|
|
51
|
-
openLabel,
|
|
52
|
-
closeLabel,
|
|
53
|
-
chipColor,
|
|
54
|
-
children: (0, react_1.createElement)(expo_video_1.VideoView, {
|
|
55
|
-
player,
|
|
56
|
-
// A width and height, not just the edges: on web the video is an element that otherwise keeps its own size.
|
|
57
|
-
style: styles.video,
|
|
58
|
-
contentFit: 'cover',
|
|
59
|
-
nativeControls: false,
|
|
60
|
-
allowsPictureInPicture: true,
|
|
61
|
-
startsPictureInPictureAutomatically,
|
|
62
|
-
onPictureInPictureStart: () => noteSystemPictureInPicture(true),
|
|
63
|
-
onPictureInPictureStop: () => noteSystemPictureInPicture(false),
|
|
64
|
-
onFirstFrameRender: markVideoReady,
|
|
65
|
-
}),
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
const styles = react_native_1.StyleSheet.create({
|
|
69
|
-
video: { position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' },
|
|
70
|
-
});
|
|
71
|
-
//# sourceMappingURL=ReplayBubble.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReplayBubble.js","sourceRoot":"","sources":["../../src/ui/ReplayBubble.ts"],"names":[],"mappings":";;AA2CA,oCAiCC;AA5ED;;;;;GAKG;AACH,2CAAuC;AACvC,iCAAsC;AACtC,+CAA0C;AAE1C,sEAAkE;AAClE,wDAAwD;AACxD,4EAA0E;AAC1E,+CAA4C;AAE5C,0CAA0C;AAC1C,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,kBAAkB;CAC1B,CAAC;AAYF;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,KAAK,CAAC,KAAK,KAAwB,EAAE;IAC1H,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,0BAA0B,EAAE,GAAG,IAAA,8BAAe,GAAE,CAAC;IAC/G,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACxC,mGAAmG;IACnG,MAAM,mCAAmC,GAAG,IAAA,gDAAuB,EAAC,WAAW,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;IAChG,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;IACjC,OAAO,IAAA,qBAAa,EAClB,yBAAW,EACX;QACE,SAAS,EAAE,SAAS,CAAC,YAAY;QACjC,MAAM,EAAE,GAAG,EAAE;YACX,IAAI,MAAM;gBAAE,MAAM,CAAC,WAAW,CAAC,CAAC;;gBAC3B,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,IAAI;QACb,SAAS;QACT,UAAU;QACV,SAAS;QACT,QAAQ,EAAE,IAAA,qBAAa,EAAC,sBAAS,EAAE;YACjC,MAAM;YACN,4GAA4G;YAC5G,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,OAAO;YACnB,cAAc,EAAE,KAAK;YACrB,sBAAsB,EAAE,IAAI;YAC5B,mCAAmC;YACnC,uBAAuB,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC;YAC/D,sBAAsB,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC;YAC/D,kBAAkB,EAAE,cAAc;SACnC,CAAC;KACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAChF,CAAC,CAAC"}
|
package/dist/ui.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `@tiledev/sdk-apptile-live-selling/ui` (0.14.0): the components this package draws, beside the
|
|
3
|
-
* headless root. Today the floating bubbles, moved from amore-v2's `src/core/overlays`: the live show's
|
|
4
|
-
* (`LiveBubble`), the replay's (`ReplayBubble`) and the frame they share (`BubbleFrame`).
|
|
5
|
-
*
|
|
6
|
-
* An entry of its own so the root loads none of what only these draw (`@expo/vector-icons`,
|
|
7
|
-
* `react-native-safe-area-context`, `@tiledev/react-native-performant-image`, optional peers): an app
|
|
8
|
-
* that doesn't draw a bubble needs none of them. Reachable without the `exports` map too (the package's
|
|
9
|
-
* `ui/` folder), for a resolver that ignores it.
|
|
10
|
-
*
|
|
11
|
-
* ```tsx
|
|
12
|
-
* import { LiveBubble, ReplayBubble } from '@tiledev/sdk-apptile-live-selling/ui';
|
|
13
|
-
*
|
|
14
|
-
* <ReplayPlayerProvider>
|
|
15
|
-
* <AppNavigator />
|
|
16
|
-
* <ReplayBubble chipColor={scrim} />
|
|
17
|
-
* <LiveBubble chipColor={scrim} />
|
|
18
|
-
* </ReplayPlayerProvider>
|
|
19
|
-
* ```
|
|
20
|
-
*
|
|
21
|
-
* A tap goes where `LiveSellingProvider`'s `routes` say (`openLive`, `openReplay`) unless the bubble
|
|
22
|
-
* is given its own `onOpen`.
|
|
23
|
-
*/
|
|
24
|
-
export { BubbleFrame, BUBBLE_CHIP_COLOR, type BubbleFrameProps } from './ui/BubbleFrame';
|
|
25
|
-
export { LiveBubble, type LiveBubbleProps } from './ui/LiveBubble';
|
|
26
|
-
export { ReplayBubble, type ReplayBubbleProps } from './ui/ReplayBubble';
|
|
27
|
-
//# sourceMappingURL=ui.d.ts.map
|
package/dist/ui.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/ui.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReplayBubble = exports.LiveBubble = exports.BUBBLE_CHIP_COLOR = exports.BubbleFrame = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* `@tiledev/sdk-apptile-live-selling/ui` (0.14.0): the components this package draws, beside the
|
|
6
|
-
* headless root. Today the floating bubbles, moved from amore-v2's `src/core/overlays`: the live show's
|
|
7
|
-
* (`LiveBubble`), the replay's (`ReplayBubble`) and the frame they share (`BubbleFrame`).
|
|
8
|
-
*
|
|
9
|
-
* An entry of its own so the root loads none of what only these draw (`@expo/vector-icons`,
|
|
10
|
-
* `react-native-safe-area-context`, `@tiledev/react-native-performant-image`, optional peers): an app
|
|
11
|
-
* that doesn't draw a bubble needs none of them. Reachable without the `exports` map too (the package's
|
|
12
|
-
* `ui/` folder), for a resolver that ignores it.
|
|
13
|
-
*
|
|
14
|
-
* ```tsx
|
|
15
|
-
* import { LiveBubble, ReplayBubble } from '@tiledev/sdk-apptile-live-selling/ui';
|
|
16
|
-
*
|
|
17
|
-
* <ReplayPlayerProvider>
|
|
18
|
-
* <AppNavigator />
|
|
19
|
-
* <ReplayBubble chipColor={scrim} />
|
|
20
|
-
* <LiveBubble chipColor={scrim} />
|
|
21
|
-
* </ReplayPlayerProvider>
|
|
22
|
-
* ```
|
|
23
|
-
*
|
|
24
|
-
* A tap goes where `LiveSellingProvider`'s `routes` say (`openLive`, `openReplay`) unless the bubble
|
|
25
|
-
* is given its own `onOpen`.
|
|
26
|
-
*/
|
|
27
|
-
var BubbleFrame_1 = require("./ui/BubbleFrame");
|
|
28
|
-
Object.defineProperty(exports, "BubbleFrame", { enumerable: true, get: function () { return BubbleFrame_1.BubbleFrame; } });
|
|
29
|
-
Object.defineProperty(exports, "BUBBLE_CHIP_COLOR", { enumerable: true, get: function () { return BubbleFrame_1.BUBBLE_CHIP_COLOR; } });
|
|
30
|
-
var LiveBubble_1 = require("./ui/LiveBubble");
|
|
31
|
-
Object.defineProperty(exports, "LiveBubble", { enumerable: true, get: function () { return LiveBubble_1.LiveBubble; } });
|
|
32
|
-
var ReplayBubble_1 = require("./ui/ReplayBubble");
|
|
33
|
-
Object.defineProperty(exports, "ReplayBubble", { enumerable: true, get: function () { return ReplayBubble_1.ReplayBubble; } });
|
|
34
|
-
//# sourceMappingURL=ui.js.map
|
package/dist/ui.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,gDAAyF;AAAhF,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AACvC,8CAAmE;AAA1D,wGAAA,UAAU,OAAA;AACnB,kDAAyE;AAAhE,4GAAA,YAAY,OAAA"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Room messages this version doesn't read (0.16.0, ENG-969, 2026-10-26).
|
|
3
|
-
*
|
|
4
|
-
* The engine hands the session every room message it doesn't know as `{ type: 'unknown', channel,
|
|
5
|
-
* payload }`, and the session used to drop them. A poll opened mid-show never reached the screen, and
|
|
6
|
-
* nothing said what the room had sent instead. Now the session reports the first message of each kind
|
|
7
|
-
* per show to the app's `onWarning` (`LiveSellingProvider`'s, the app's Sentry; the console without one):
|
|
8
|
-
* a dashboard that renames or moves a message shows up in the app's own logs, once, rather than as a
|
|
9
|
-
* feature that silently stops.
|
|
10
|
-
*
|
|
11
|
-
* Pure, so it loads in plain Node for tests.
|
|
12
|
-
*/
|
|
13
|
-
/**
|
|
14
|
-
* What kind of message it is, for telling one kind from another: its own name (`type`, `command`,
|
|
15
|
-
* `event` or `action`), else its keys in order, on the channel it came by.
|
|
16
|
-
*/
|
|
17
|
-
export declare function roomMessageKind(channel: string, payload: unknown): string;
|
|
18
|
-
/** The message as the report carries it: JSON, cut at `MAX_REPORTED_CHARACTERS`. */
|
|
19
|
-
export declare function reportedCopyOf(payload: unknown): string;
|
|
20
|
-
/** Remembers which kinds were reported, so each is reported once (a show's session makes a new one). */
|
|
21
|
-
export declare class UnreadRoomMessages {
|
|
22
|
-
private readonly reported;
|
|
23
|
-
/** The message's kind the first time one of its kind arrives; null after that. */
|
|
24
|
-
firstOfItsKind(channel: string, payload: unknown): string | null;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=unreadRoomMessages.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unreadRoomMessages.d.ts","sourceRoot":"","sources":["../src/unreadRoomMessages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAOzE;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQvD;AAED,wGAAwG;AACxG,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAE9C,kFAAkF;IAClF,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;CAMjE"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Room messages this version doesn't read (0.16.0, ENG-969, 2026-10-26).
|
|
4
|
-
*
|
|
5
|
-
* The engine hands the session every room message it doesn't know as `{ type: 'unknown', channel,
|
|
6
|
-
* payload }`, and the session used to drop them. A poll opened mid-show never reached the screen, and
|
|
7
|
-
* nothing said what the room had sent instead. Now the session reports the first message of each kind
|
|
8
|
-
* per show to the app's `onWarning` (`LiveSellingProvider`'s, the app's Sentry; the console without one):
|
|
9
|
-
* a dashboard that renames or moves a message shows up in the app's own logs, once, rather than as a
|
|
10
|
-
* feature that silently stops.
|
|
11
|
-
*
|
|
12
|
-
* Pure, so it loads in plain Node for tests.
|
|
13
|
-
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.UnreadRoomMessages = void 0;
|
|
16
|
-
exports.roomMessageKind = roomMessageKind;
|
|
17
|
-
exports.reportedCopyOf = reportedCopyOf;
|
|
18
|
-
/** The longest copy of a message a report carries. */
|
|
19
|
-
const MAX_REPORTED_CHARACTERS = 2000;
|
|
20
|
-
const isRecord = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
|
|
21
|
-
/**
|
|
22
|
-
* What kind of message it is, for telling one kind from another: its own name (`type`, `command`,
|
|
23
|
-
* `event` or `action`), else its keys in order, on the channel it came by.
|
|
24
|
-
*/
|
|
25
|
-
function roomMessageKind(channel, payload) {
|
|
26
|
-
if (!isRecord(payload))
|
|
27
|
-
return `${channel}:${typeof payload}`;
|
|
28
|
-
for (const key of ['type', 'command', 'event', 'action']) {
|
|
29
|
-
const name = payload[key];
|
|
30
|
-
if (typeof name === 'string' && name.trim())
|
|
31
|
-
return `${channel}:${name.trim()}`;
|
|
32
|
-
}
|
|
33
|
-
return `${channel}:{${Object.keys(payload).sort().join(',')}}`;
|
|
34
|
-
}
|
|
35
|
-
/** The message as the report carries it: JSON, cut at `MAX_REPORTED_CHARACTERS`. */
|
|
36
|
-
function reportedCopyOf(payload) {
|
|
37
|
-
var _a;
|
|
38
|
-
let text;
|
|
39
|
-
try {
|
|
40
|
-
text = (_a = JSON.stringify(payload)) !== null && _a !== void 0 ? _a : String(payload);
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
text = String(payload);
|
|
44
|
-
}
|
|
45
|
-
return text.length > MAX_REPORTED_CHARACTERS ? `${text.slice(0, MAX_REPORTED_CHARACTERS)}…` : text;
|
|
46
|
-
}
|
|
47
|
-
/** Remembers which kinds were reported, so each is reported once (a show's session makes a new one). */
|
|
48
|
-
class UnreadRoomMessages {
|
|
49
|
-
constructor() {
|
|
50
|
-
this.reported = new Set();
|
|
51
|
-
}
|
|
52
|
-
/** The message's kind the first time one of its kind arrives; null after that. */
|
|
53
|
-
firstOfItsKind(channel, payload) {
|
|
54
|
-
const kind = roomMessageKind(channel, payload);
|
|
55
|
-
if (this.reported.has(kind))
|
|
56
|
-
return null;
|
|
57
|
-
this.reported.add(kind);
|
|
58
|
-
return kind;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.UnreadRoomMessages = UnreadRoomMessages;
|
|
62
|
-
//# sourceMappingURL=unreadRoomMessages.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unreadRoomMessages.js","sourceRoot":"","sources":["../src/unreadRoomMessages.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAWH,0CAOC;AAGD,wCAQC;AA3BD,sDAAsD;AACtD,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAErI;;;GAGG;AACH,SAAgB,eAAe,CAAC,OAAe,EAAE,OAAgB;IAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,OAAO,IAAI,OAAO,OAAO,EAAE,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IAClF,CAAC;IACD,OAAO,GAAG,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,oFAAoF;AACpF,SAAgB,cAAc,CAAC,OAAgB;;IAC7C,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,mCAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACrG,CAAC;AAED,wGAAwG;AACxG,MAAa,kBAAkB;IAA/B;QACmB,aAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAShD,CAAC;IAPC,kFAAkF;IAClF,cAAc,CAAC,OAAe,EAAE,OAAgB;QAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAVD,gDAUC"}
|
package/dist/viewerRules.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rules the Live pages apply to the viewer (0.16.0), pure so they can be tested without a screen: the store's
|
|
3
|
-
* bar on bidding, and the reaction limit an app may set.
|
|
4
|
-
*/
|
|
5
|
-
import type { ViewerRestrictions } from './pageOptions';
|
|
6
|
-
/**
|
|
7
|
-
* Where a bid stops for the store's restrictions: `blocked`; `checkingAccount` while they aren't known
|
|
8
|
-
* (the bid waits, for `ACCOUNT_CHECK_LIMIT_MS` at most); null when it may go on through the gate.
|
|
9
|
-
*/
|
|
10
|
-
export declare function restrictionStepFor(bidding: ViewerRestrictions['bidding']): 'blocked' | 'checkingAccount' | null;
|
|
11
|
-
export interface ReactionBudget {
|
|
12
|
-
/** One tap: true when it may be sent (and counts it), false past the limit. */
|
|
13
|
-
take(): boolean;
|
|
14
|
-
/** The host featured another product. */
|
|
15
|
-
productChanged(): void;
|
|
16
|
-
left(): number;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* The reaction limit (0.16.0; `LiveSellingProvider({ reactionLimit })`): `limit` taps, back to `limit` each
|
|
20
|
-
* time the host features another product.
|
|
21
|
-
*/
|
|
22
|
-
export declare function createReactionBudget(limit: number): ReactionBudget;
|
|
23
|
-
/** How long a Replay's controls stay after they show or are touched, unless the app says (`controlsShowMs`). */
|
|
24
|
-
export declare const REPLAY_CONTROLS_SHOW_MS = 4000;
|
|
25
|
-
/**
|
|
26
|
-
* The Replay controls' rule (0.16.0, `useReplayPage({ tapVideo, controlsShowMs })`): whether a tap on the
|
|
27
|
-
* video shows the controls (else it pauses or plays), whether they stay up now (`showControls` taps keep
|
|
28
|
-
* them while paused), and how long they stay after a touch (1–15 s).
|
|
29
|
-
*/
|
|
30
|
-
export declare function replayControlsRule({ tapVideo, controlsShowMs }: {
|
|
31
|
-
tapVideo?: 'playPause' | 'showControls';
|
|
32
|
-
controlsShowMs?: number;
|
|
33
|
-
}, playing: boolean): {
|
|
34
|
-
tapShowsControls: boolean;
|
|
35
|
-
keptWhilePaused: boolean;
|
|
36
|
-
showForMs: number;
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=viewerRules.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewerRules.d.ts","sourceRoot":"","sources":["../src/viewerRules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAE/G;AAGD,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,IAAI,IAAI,OAAO,CAAC;IAChB,yCAAyC;IACzC,cAAc,IAAI,IAAI,CAAC;IACvB,IAAI,IAAI,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAclE;AAED,gHAAgH;AAChH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,QAAsB,EAAE,cAAc,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EAChH,OAAO,EAAE,OAAO,GACf;IAAE,gBAAgB,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAK5E"}
|
package/dist/viewerRules.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.REPLAY_CONTROLS_SHOW_MS = void 0;
|
|
4
|
-
exports.restrictionStepFor = restrictionStepFor;
|
|
5
|
-
exports.createReactionBudget = createReactionBudget;
|
|
6
|
-
exports.replayControlsRule = replayControlsRule;
|
|
7
|
-
/**
|
|
8
|
-
* Where a bid stops for the store's restrictions: `blocked`; `checkingAccount` while they aren't known
|
|
9
|
-
* (the bid waits, for `ACCOUNT_CHECK_LIMIT_MS` at most); null when it may go on through the gate.
|
|
10
|
-
*/
|
|
11
|
-
function restrictionStepFor(bidding) {
|
|
12
|
-
return bidding === 'blocked' ? 'blocked' : bidding === 'unknown' ? 'checkingAccount' : null;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* The reaction limit (0.16.0; `LiveSellingProvider({ reactionLimit })`): `limit` taps, back to `limit` each
|
|
16
|
-
* time the host features another product.
|
|
17
|
-
*/
|
|
18
|
-
function createReactionBudget(limit) {
|
|
19
|
-
const budget = Math.max(0, limit);
|
|
20
|
-
let left = budget;
|
|
21
|
-
return {
|
|
22
|
-
take() {
|
|
23
|
-
if (left <= 0)
|
|
24
|
-
return false;
|
|
25
|
-
left -= 1;
|
|
26
|
-
return true;
|
|
27
|
-
},
|
|
28
|
-
productChanged() {
|
|
29
|
-
left = budget;
|
|
30
|
-
},
|
|
31
|
-
left: () => left,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
/** How long a Replay's controls stay after they show or are touched, unless the app says (`controlsShowMs`). */
|
|
35
|
-
exports.REPLAY_CONTROLS_SHOW_MS = 4000;
|
|
36
|
-
/**
|
|
37
|
-
* The Replay controls' rule (0.16.0, `useReplayPage({ tapVideo, controlsShowMs })`): whether a tap on the
|
|
38
|
-
* video shows the controls (else it pauses or plays), whether they stay up now (`showControls` taps keep
|
|
39
|
-
* them while paused), and how long they stay after a touch (1–15 s).
|
|
40
|
-
*/
|
|
41
|
-
function replayControlsRule({ tapVideo = 'playPause', controlsShowMs }, playing) {
|
|
42
|
-
const showForMs = typeof controlsShowMs === 'number' && Number.isFinite(controlsShowMs) ? Math.min(15000, Math.max(1000, controlsShowMs)) : exports.REPLAY_CONTROLS_SHOW_MS;
|
|
43
|
-
const tapShowsControls = tapVideo === 'showControls';
|
|
44
|
-
return { tapShowsControls, keptWhilePaused: tapShowsControls && !playing, showForMs };
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=viewerRules.js.map
|
package/dist/viewerRules.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewerRules.js","sourceRoot":"","sources":["../src/viewerRules.ts"],"names":[],"mappings":";;;AAUA,gDAEC;AAeD,oDAcC;AAUD,gDAQC;AArDD;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,OAAsC;IACvE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9F,CAAC;AAWD;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,KAAa;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAClC,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,OAAO;QACL,IAAI;YACF,IAAI,IAAI,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC5B,IAAI,IAAI,CAAC,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,cAAc;YACZ,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,gHAAgH;AACnG,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAE5C;;;;GAIG;AACH,SAAgB,kBAAkB,CAChC,EAAE,QAAQ,GAAG,WAAW,EAAE,cAAc,EAAwE,EAChH,OAAgB;IAEhB,MAAM,SAAS,GACb,OAAO,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,+BAAuB,CAAC;IACpJ,MAAM,gBAAgB,GAAG,QAAQ,KAAK,cAAc,CAAC;IACrD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;AACxF,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The wins cart's `_apptile_attribution` (0.16.0). The wins checkout is a cart of its own, built outside
|
|
3
|
-
* sdk-shopify's provider, so the provider's recorder never sees it; this writes the same record with
|
|
4
|
-
* sdk-shopify's own `recordAdd` and `serializeAttribution`. A lot won on a live show (its `_stream_id`)
|
|
5
|
-
* counts under `auction` for that show, a silent auction's win (its `_silent_auction_id`) under
|
|
6
|
-
* `silent-auction` for that auction, and any other line as the app's. Each line counts by `attributionLineType`.
|
|
7
|
-
*/
|
|
8
|
-
import { type AttributionLineType } from '@tiledev/sdk-shopify';
|
|
9
|
-
import type { ShopifyAttribute, ShopifyCartLineInput } from './shopifyCommerce';
|
|
10
|
-
/**
|
|
11
|
-
* A line's type in `_apptile_attribution`: `g` for a giveaway prize (`isGiveawayPrizeLine`, even when
|
|
12
|
-
* pre-authorised), else sdk-shopify's `lineTypeOf` (`p` pre-authorised, `n`).
|
|
13
|
-
*/
|
|
14
|
-
export declare function attributionLineType(attributes: readonly ShopifyAttribute[]): AttributionLineType;
|
|
15
|
-
/** The record for the wins cart's lines; none for an empty cart. */
|
|
16
|
-
export declare function winsAttribution(lines: readonly ShopifyCartLineInput[], nowSeconds?: number): ShopifyAttribute[];
|
|
17
|
-
/**
|
|
18
|
-
* The wins cart's extra attributes: the app's own (`extraCartAttributes`), then the record when the app
|
|
19
|
-
* turns it on, unless the app already wrote one.
|
|
20
|
-
*/
|
|
21
|
-
export declare function winsCartAttributes(lines: readonly ShopifyCartLineInput[], attributionEnabled: boolean, extraCartAttributes?: (lines: ShopifyCartLineInput[]) => ShopifyAttribute[]): ShopifyAttribute[];
|
|
22
|
-
//# sourceMappingURL=winsAttribution.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"winsAttribution.d.ts","sourceRoot":"","sources":["../src/winsAttribution.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAA4F,KAAK,mBAAmB,EAA0B,MAAM,sBAAsB,CAAC;AAKlL,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEhF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,GAAG,mBAAmB,CAEhG;AAWD,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,EAAE,UAAU,SAAgC,GAAG,gBAAgB,EAAE,CAOtI;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,oBAAoB,EAAE,EACtC,kBAAkB,EAAE,OAAO,EAC3B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,GAC1E,gBAAgB,EAAE,CAIpB"}
|
package/dist/winsAttribution.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.attributionLineType = attributionLineType;
|
|
4
|
-
exports.winsAttribution = winsAttribution;
|
|
5
|
-
exports.winsCartAttributes = winsCartAttributes;
|
|
6
|
-
/**
|
|
7
|
-
* The wins cart's `_apptile_attribution` (0.16.0). The wins checkout is a cart of its own, built outside
|
|
8
|
-
* sdk-shopify's provider, so the provider's recorder never sees it; this writes the same record with
|
|
9
|
-
* sdk-shopify's own `recordAdd` and `serializeAttribution`. A lot won on a live show (its `_stream_id`)
|
|
10
|
-
* counts under `auction` for that show, a silent auction's win (its `_silent_auction_id`) under
|
|
11
|
-
* `silent-auction` for that auction, and any other line as the app's. Each line counts by `attributionLineType`.
|
|
12
|
-
*/
|
|
13
|
-
const sdk_shopify_1 = require("@tiledev/sdk-shopify");
|
|
14
|
-
const cartAttributes_1 = require("./cartAttributes");
|
|
15
|
-
const giveawayPrizeLines_1 = require("./giveawayPrizeLines");
|
|
16
|
-
/**
|
|
17
|
-
* A line's type in `_apptile_attribution`: `g` for a giveaway prize (`isGiveawayPrizeLine`, even when
|
|
18
|
-
* pre-authorised), else sdk-shopify's `lineTypeOf` (`p` pre-authorised, `n`).
|
|
19
|
-
*/
|
|
20
|
-
function attributionLineType(attributes) {
|
|
21
|
-
return (0, giveawayPrizeLines_1.isGiveawayPrizeLine)({ attributes }) ? 'g' : (0, sdk_shopify_1.lineTypeOf)([...attributes]);
|
|
22
|
-
}
|
|
23
|
-
/** Where a won line came from: its live auction show (`_stream_id`), its silent auction, else the app. */
|
|
24
|
-
function sourceOf(attributes) {
|
|
25
|
-
const valueOf = (key) => { var _a, _b; return (_b = (_a = attributes.find((attribute) => attribute.key === key)) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.trim(); };
|
|
26
|
-
const show = valueOf(cartAttributes_1.LIVE_STREAM_ID_ATTRIBUTE);
|
|
27
|
-
if (show)
|
|
28
|
-
return { type: 'auction', showId: show };
|
|
29
|
-
const silent = valueOf(cartAttributes_1.SILENT_AUCTION_ID_ATTRIBUTE);
|
|
30
|
-
return silent ? { type: 'silent-auction', showId: silent } : { type: 'app' };
|
|
31
|
-
}
|
|
32
|
-
/** The record for the wins cart's lines; none for an empty cart. */
|
|
33
|
-
function winsAttribution(lines, nowSeconds = Math.floor(Date.now() / 1000)) {
|
|
34
|
-
if (lines.length === 0)
|
|
35
|
-
return [];
|
|
36
|
-
const record = lines.reduce((current, line) => (0, sdk_shopify_1.recordAdd)(current, sourceOf(line.attributes), line.merchandiseId, attributionLineType(line.attributes), line.quantity, nowSeconds), { v: 1 });
|
|
37
|
-
return [{ key: sdk_shopify_1.ATTRIBUTION_ATTRIBUTE_KEY, value: (0, sdk_shopify_1.serializeAttribution)(record) }];
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* The wins cart's extra attributes: the app's own (`extraCartAttributes`), then the record when the app
|
|
41
|
-
* turns it on, unless the app already wrote one.
|
|
42
|
-
*/
|
|
43
|
-
function winsCartAttributes(lines, attributionEnabled, extraCartAttributes) {
|
|
44
|
-
const extra = extraCartAttributes ? extraCartAttributes([...lines]) : [];
|
|
45
|
-
if (!attributionEnabled || extra.some((attribute) => attribute.key === sdk_shopify_1.ATTRIBUTION_ATTRIBUTE_KEY))
|
|
46
|
-
return extra;
|
|
47
|
-
return [...extra, ...winsAttribution(lines)];
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=winsAttribution.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"winsAttribution.js","sourceRoot":"","sources":["../src/winsAttribution.ts"],"names":[],"mappings":";;AAkBA,kDAEC;AAYD,0CAOC;AAMD,gDAQC;AArDD;;;;;;GAMG;AACH,sDAAkL;AAElL,qDAAyF;AACzF,6DAA2D;AAI3D;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,UAAuC;IACzE,OAAO,IAAA,wCAAmB,EAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,0GAA0G;AAC1G,SAAS,QAAQ,CAAC,UAAuC;IACvD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,0CAAE,KAAK,0CAAE,IAAI,EAAE,CAAA,EAAA,CAAC;IACtG,MAAM,IAAI,GAAG,OAAO,CAAC,yCAAwB,CAAC,CAAC;IAC/C,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,4CAA2B,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC/E,CAAC;AAED,oEAAoE;AACpE,SAAgB,eAAe,CAAC,KAAsC,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAChH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CACzB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,uBAAS,EAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EACrJ,EAAE,CAAC,EAAE,CAAC,EAAE,CACT,CAAC;IACF,OAAO,CAAC,EAAE,GAAG,EAAE,uCAAyB,EAAE,KAAK,EAAE,IAAA,kCAAoB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnF,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAChC,KAAsC,EACtC,kBAA2B,EAC3B,mBAA2E;IAE3E,MAAM,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,uCAAyB,CAAC;QAAE,OAAO,KAAK,CAAC;IAChH,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|