@kesha-antonov/react-native-chat 5.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +533 -179
- package/lib/Actions.d.ts.map +1 -1
- package/lib/Actions.js +121 -42
- package/lib/Actions.js.map +1 -1
- package/lib/Avatar.d.ts.map +1 -1
- package/lib/Avatar.js +171 -86
- package/lib/Avatar.js.map +1 -1
- package/lib/Bubble/BubbleBody.d.ts +15 -0
- package/lib/Bubble/BubbleBody.d.ts.map +1 -0
- package/lib/Bubble/BubbleBody.js +218 -0
- package/lib/Bubble/BubbleBody.js.map +1 -0
- package/lib/Bubble/BubbleContent.d.ts +23 -0
- package/lib/Bubble/BubbleContent.d.ts.map +1 -0
- package/lib/Bubble/BubbleContent.js +446 -0
- package/lib/Bubble/BubbleContent.js.map +1 -0
- package/lib/Bubble/BubbleMenu.d.ts +45 -0
- package/lib/Bubble/BubbleMenu.d.ts.map +1 -0
- package/lib/Bubble/BubbleMenu.js +289 -0
- package/lib/Bubble/BubbleMenu.js.map +1 -0
- package/lib/Bubble/BubbleMeta.d.ts +17 -0
- package/lib/Bubble/BubbleMeta.d.ts.map +1 -0
- package/lib/Bubble/BubbleMeta.js +453 -0
- package/lib/Bubble/BubbleMeta.js.map +1 -0
- package/lib/Bubble/LiftedBubble.d.ts +18 -0
- package/lib/Bubble/LiftedBubble.d.ts.map +1 -0
- package/lib/Bubble/LiftedBubble.js +109 -0
- package/lib/Bubble/LiftedBubble.js.map +1 -0
- package/lib/Bubble/PressableBubbleRow.d.ts +33 -0
- package/lib/Bubble/PressableBubbleRow.d.ts.map +1 -0
- package/lib/Bubble/PressableBubbleRow.js +172 -0
- package/lib/Bubble/PressableBubbleRow.js.map +1 -0
- package/lib/Bubble/index.d.ts +6 -0
- package/lib/Bubble/index.d.ts.map +1 -1
- package/lib/Bubble/index.js +380 -494
- package/lib/Bubble/index.js.map +1 -1
- package/lib/Bubble/layout.d.ts +47 -0
- package/lib/Bubble/layout.d.ts.map +1 -0
- package/lib/Bubble/layout.js +258 -0
- package/lib/Bubble/layout.js.map +1 -0
- package/lib/Bubble/styles.d.ts +108 -16
- package/lib/Bubble/styles.d.ts.map +1 -1
- package/lib/Bubble/styles.js +227 -107
- package/lib/Bubble/styles.js.map +1 -1
- package/lib/Bubble/types.d.ts +19 -3
- package/lib/Bubble/types.d.ts.map +1 -1
- package/lib/Bubble/types.js.map +1 -1
- package/lib/Chat/Chat.d.ts +5 -0
- package/lib/Chat/Chat.d.ts.map +1 -0
- package/lib/Chat/Chat.js +464 -0
- package/lib/Chat/Chat.js.map +1 -0
- package/lib/Chat/ChatBackground.d.ts +16 -0
- package/lib/Chat/ChatBackground.d.ts.map +1 -0
- package/lib/Chat/ChatBackground.js +43 -0
- package/lib/Chat/ChatBackground.js.map +1 -0
- package/lib/Chat/ChatKeyboardAvoidingView.js +19 -4
- package/lib/Chat/ChatKeyboardAvoidingView.js.map +1 -1
- package/lib/Chat/ChatMessageList.d.ts +27 -0
- package/lib/Chat/ChatMessageList.d.ts.map +1 -0
- package/lib/Chat/ChatMessageList.js +220 -0
- package/lib/Chat/ChatMessageList.js.map +1 -0
- package/lib/Chat/ChatProviders.d.ts +18 -0
- package/lib/Chat/ChatProviders.d.ts.map +1 -0
- package/lib/Chat/ChatProviders.js +87 -0
- package/lib/Chat/ChatProviders.js.map +1 -0
- package/lib/Chat/ChatSafeAreaProvider.d.ts +35 -0
- package/lib/Chat/ChatSafeAreaProvider.d.ts.map +1 -0
- package/lib/Chat/ChatSafeAreaProvider.js +123 -0
- package/lib/Chat/ChatSafeAreaProvider.js.map +1 -0
- package/lib/Chat/ChatSelectionBar.d.ts +20 -0
- package/lib/Chat/ChatSelectionBar.d.ts.map +1 -0
- package/lib/Chat/ChatSelectionBar.js +141 -0
- package/lib/Chat/ChatSelectionBar.js.map +1 -0
- package/lib/Chat/ChatWrapper.d.ts +11 -0
- package/lib/Chat/ChatWrapper.d.ts.map +1 -0
- package/lib/Chat/ChatWrapper.js +98 -0
- package/lib/Chat/ChatWrapper.js.map +1 -0
- package/lib/Chat/ComposerHost.d.ts +20 -0
- package/lib/Chat/ComposerHost.d.ts.map +1 -0
- package/lib/Chat/ComposerHost.js +118 -0
- package/lib/Chat/ComposerHost.js.map +1 -0
- package/lib/Chat/index.d.ts +1 -8
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +1 -337
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/styles.d.ts +14 -2
- package/lib/Chat/styles.d.ts.map +1 -1
- package/lib/Chat/styles.js +19 -9
- package/lib/Chat/styles.js.map +1 -1
- package/lib/Chat/types.d.ts +145 -11
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/Chat/types.js.map +1 -1
- package/lib/Chat/useChatContextValue.d.ts +19 -0
- package/lib/Chat/useChatContextValue.d.ts.map +1 -0
- package/lib/Chat/useChatContextValue.js +158 -0
- package/lib/Chat/useChatContextValue.js.map +1 -0
- package/lib/Chat/useChatMedia.d.ts +22 -0
- package/lib/Chat/useChatMedia.d.ts.map +1 -0
- package/lib/Chat/useChatMedia.js +127 -0
- package/lib/Chat/useChatMedia.js.map +1 -0
- package/lib/Chat/useChatSelection.d.ts +15 -0
- package/lib/Chat/useChatSelection.d.ts.map +1 -0
- package/lib/Chat/useChatSelection.js +106 -0
- package/lib/Chat/useChatSelection.js.map +1 -0
- package/lib/Chat/useComposerHandlers.d.ts +34 -0
- package/lib/Chat/useComposerHandlers.d.ts.map +1 -0
- package/lib/Chat/useComposerHandlers.js +330 -0
- package/lib/Chat/useComposerHandlers.js.map +1 -0
- package/lib/Chat/useComposerState.d.ts +27 -0
- package/lib/Chat/useComposerState.d.ts.map +1 -0
- package/lib/Chat/useComposerState.js +272 -0
- package/lib/Chat/useComposerState.js.map +1 -0
- package/lib/Chat/useInitialLayout.d.ts +19 -0
- package/lib/Chat/useInitialLayout.d.ts.map +1 -0
- package/lib/Chat/useInitialLayout.js +70 -0
- package/lib/Chat/useInitialLayout.js.map +1 -0
- package/lib/Chat/useMessageActions.d.ts +37 -0
- package/lib/Chat/useMessageActions.d.ts.map +1 -0
- package/lib/Chat/useMessageActions.js +323 -0
- package/lib/Chat/useMessageActions.js.map +1 -0
- package/lib/Chat/useMessageNavigation.d.ts +21 -0
- package/lib/Chat/useMessageNavigation.d.ts.map +1 -0
- package/lib/Chat/useMessageNavigation.js +149 -0
- package/lib/Chat/useMessageNavigation.js.map +1 -0
- package/lib/Chat/useOptionalPeerHints.d.ts +6 -0
- package/lib/Chat/useOptionalPeerHints.d.ts.map +1 -0
- package/lib/Chat/useOptionalPeerHints.js +63 -0
- package/lib/Chat/useOptionalPeerHints.js.map +1 -0
- package/lib/Chat/useResolvedReactions.d.ts +31 -0
- package/lib/Chat/useResolvedReactions.d.ts.map +1 -0
- package/lib/Chat/useResolvedReactions.js +95 -0
- package/lib/Chat/useResolvedReactions.js.map +1 -0
- package/lib/ChatAvatar.d.ts.map +1 -1
- package/lib/ChatAvatar.js +229 -84
- package/lib/ChatAvatar.js.map +1 -1
- package/lib/ChatContext.js +20 -10
- package/lib/ChatContext.js.map +1 -1
- package/lib/ChatList/ChatListAvatar.d.ts +21 -0
- package/lib/ChatList/ChatListAvatar.d.ts.map +1 -0
- package/lib/ChatList/ChatListAvatar.js +178 -0
- package/lib/ChatList/ChatListAvatar.js.map +1 -0
- package/lib/ChatList/ChatListCell.d.ts +16 -0
- package/lib/ChatList/ChatListCell.d.ts.map +1 -0
- package/lib/ChatList/ChatListCell.js +506 -0
- package/lib/ChatList/ChatListCell.js.map +1 -0
- package/lib/ChatList/ChatListShimmer.d.ts +3 -0
- package/lib/ChatList/ChatListShimmer.d.ts.map +1 -0
- package/lib/ChatList/ChatListShimmer.js +235 -0
- package/lib/ChatList/ChatListShimmer.js.map +1 -0
- package/lib/ChatList/index.d.ts +16 -0
- package/lib/ChatList/index.d.ts.map +1 -0
- package/lib/ChatList/index.js +1301 -0
- package/lib/ChatList/index.js.map +1 -0
- package/lib/ChatList/types.d.ts +128 -0
- package/lib/ChatList/types.d.ts.map +1 -0
- package/lib/ChatList/types.js +2 -0
- package/lib/ChatList/types.js.map +1 -0
- package/lib/ChatList/useChatList.d.ts +30 -0
- package/lib/ChatList/useChatList.d.ts.map +1 -0
- package/lib/ChatList/useChatList.js +211 -0
- package/lib/ChatList/useChatList.js.map +1 -0
- package/lib/ChatList/utils.d.ts +28 -0
- package/lib/ChatList/utils.d.ts.map +1 -0
- package/lib/ChatList/utils.js +60 -0
- package/lib/ChatList/utils.js.map +1 -0
- package/lib/Color.js +19 -19
- package/lib/Color.js.map +1 -1
- package/lib/Composer.d.ts.map +1 -1
- package/lib/Composer.js +148 -70
- package/lib/Composer.js.map +1 -1
- package/lib/Constant.js +4 -4
- package/lib/Constant.js.map +1 -1
- package/lib/Day/index.d.ts.map +1 -1
- package/lib/Day/index.js +115 -28
- package/lib/Day/index.js.map +1 -1
- package/lib/Day/styles.d.ts +3 -3
- package/lib/Day/styles.d.ts.map +1 -1
- package/lib/Day/styles.js +20 -17
- package/lib/Day/styles.js.map +1 -1
- package/lib/Day/types.js.map +1 -1
- package/lib/Icons.d.ts +1 -1
- package/lib/Icons.d.ts.map +1 -1
- package/lib/Icons.js.map +1 -1
- package/lib/InputToolbar/FieldGroup.d.ts +28 -0
- package/lib/InputToolbar/FieldGroup.d.ts.map +1 -0
- package/lib/InputToolbar/FieldGroup.js +143 -0
- package/lib/InputToolbar/FieldGroup.js.map +1 -0
- package/lib/InputToolbar/TakePreviewBar.d.ts +17 -0
- package/lib/InputToolbar/TakePreviewBar.d.ts.map +1 -0
- package/lib/InputToolbar/TakePreviewBar.js +126 -0
- package/lib/InputToolbar/TakePreviewBar.js.map +1 -0
- package/lib/InputToolbar/animations.d.ts +105 -0
- package/lib/InputToolbar/animations.d.ts.map +1 -0
- package/lib/InputToolbar/animations.js +238 -0
- package/lib/InputToolbar/animations.js.map +1 -0
- package/lib/InputToolbar/fragments.d.ts +13 -0
- package/lib/InputToolbar/fragments.d.ts.map +1 -0
- package/lib/InputToolbar/fragments.js +207 -0
- package/lib/InputToolbar/fragments.js.map +1 -0
- package/lib/InputToolbar/index.d.ts +7 -0
- package/lib/InputToolbar/index.d.ts.map +1 -0
- package/lib/InputToolbar/index.js +444 -0
- package/lib/InputToolbar/index.js.map +1 -0
- package/lib/InputToolbar/recordingOptions.d.ts +14 -0
- package/lib/InputToolbar/recordingOptions.d.ts.map +1 -0
- package/lib/InputToolbar/recordingOptions.js +38 -0
- package/lib/InputToolbar/recordingOptions.js.map +1 -0
- package/lib/InputToolbar/styles.d.ts +118 -0
- package/lib/InputToolbar/styles.d.ts.map +1 -0
- package/lib/InputToolbar/styles.js +139 -0
- package/lib/InputToolbar/styles.js.map +1 -0
- package/lib/InputToolbar/types.d.ts +77 -0
- package/lib/InputToolbar/types.d.ts.map +1 -0
- package/lib/InputToolbar/types.js +2 -0
- package/lib/InputToolbar/types.js.map +1 -0
- package/lib/InputToolbar/useActionsFragment.d.ts +6 -0
- package/lib/InputToolbar/useActionsFragment.d.ts.map +1 -0
- package/lib/InputToolbar/useActionsFragment.js +139 -0
- package/lib/InputToolbar/useActionsFragment.js.map +1 -0
- package/lib/InputToolbar/useComposerEditing.d.ts +11 -0
- package/lib/InputToolbar/useComposerEditing.d.ts.map +1 -0
- package/lib/InputToolbar/useComposerEditing.js +116 -0
- package/lib/InputToolbar/useComposerEditing.js.map +1 -0
- package/lib/InputToolbar/useEmojiButton.d.ts +14 -0
- package/lib/InputToolbar/useEmojiButton.d.ts.map +1 -0
- package/lib/InputToolbar/useEmojiButton.js +120 -0
- package/lib/InputToolbar/useEmojiButton.js.map +1 -0
- package/lib/InputToolbar/useKeyboardInset.d.ts +9 -0
- package/lib/InputToolbar/useKeyboardInset.d.ts.map +1 -0
- package/lib/InputToolbar/useKeyboardInset.js +25 -0
- package/lib/InputToolbar/useKeyboardInset.js.map +1 -0
- package/lib/InputToolbar/useRecordMode.d.ts +19 -0
- package/lib/InputToolbar/useRecordMode.d.ts.map +1 -0
- package/lib/InputToolbar/useRecordMode.js +124 -0
- package/lib/InputToolbar/useRecordMode.js.map +1 -0
- package/lib/InputToolbar/useRecordTake.d.ts +46 -0
- package/lib/InputToolbar/useRecordTake.d.ts.map +1 -0
- package/lib/InputToolbar/useRecordTake.js +315 -0
- package/lib/InputToolbar/useRecordTake.js.map +1 -0
- package/lib/InputToolbar/useReturnAnimations.d.ts +18 -0
- package/lib/InputToolbar/useReturnAnimations.d.ts.map +1 -0
- package/lib/InputToolbar/useReturnAnimations.js +30 -0
- package/lib/InputToolbar/useReturnAnimations.js.map +1 -0
- package/lib/InputToolbar/useRightControl.d.ts +40 -0
- package/lib/InputToolbar/useRightControl.d.ts.map +1 -0
- package/lib/InputToolbar/useRightControl.js +129 -0
- package/lib/InputToolbar/useRightControl.js.map +1 -0
- package/lib/LoadEarlierMessages.d.ts +2 -0
- package/lib/LoadEarlierMessages.d.ts.map +1 -1
- package/lib/LoadEarlierMessages.js +153 -40
- package/lib/LoadEarlierMessages.js.map +1 -1
- package/lib/Message/SwipeToReply.d.ts +23 -0
- package/lib/Message/SwipeToReply.d.ts.map +1 -0
- package/lib/Message/SwipeToReply.js +337 -0
- package/lib/Message/SwipeToReply.js.map +1 -0
- package/lib/Message/index.d.ts.map +1 -1
- package/lib/Message/index.js +415 -176
- package/lib/Message/index.js.map +1 -1
- package/lib/Message/styles.d.ts +2 -2
- package/lib/Message/styles.js +14 -14
- package/lib/Message/styles.js.map +1 -1
- package/lib/Message/types.d.ts +5 -0
- package/lib/Message/types.d.ts.map +1 -1
- package/lib/Message/types.js.map +1 -1
- package/lib/MessageAudio.d.ts.map +1 -1
- package/lib/MessageAudio.js +647 -107
- package/lib/MessageAudio.js.map +1 -1
- package/lib/MessageFile.d.ts +11 -0
- package/lib/MessageFile.d.ts.map +1 -0
- package/lib/MessageFile.js +315 -0
- package/lib/MessageFile.js.map +1 -0
- package/lib/MessageImage.d.ts +2 -0
- package/lib/MessageImage.d.ts.map +1 -1
- package/lib/MessageImage.js +430 -156
- package/lib/MessageImage.js.map +1 -1
- package/lib/MessageLocation.d.ts.map +1 -1
- package/lib/MessageLocation.js +180 -68
- package/lib/MessageLocation.js.map +1 -1
- package/lib/MessageText.d.ts +8 -1
- package/lib/MessageText.d.ts.map +1 -1
- package/lib/MessageText.js +261 -69
- package/lib/MessageText.js.map +1 -1
- package/lib/MessageVideo/ExpoVideoPlayer.d.ts +6 -0
- package/lib/MessageVideo/ExpoVideoPlayer.d.ts.map +1 -0
- package/lib/MessageVideo/ExpoVideoPlayer.js +68 -0
- package/lib/MessageVideo/ExpoVideoPlayer.js.map +1 -0
- package/lib/MessageVideo/MirroredVideo.d.ts +17 -0
- package/lib/MessageVideo/MirroredVideo.d.ts.map +1 -0
- package/lib/MessageVideo/MirroredVideo.js +223 -0
- package/lib/MessageVideo/MirroredVideo.js.map +1 -0
- package/lib/MessageVideo/RoundNotePlayer.d.ts +4 -0
- package/lib/MessageVideo/RoundNotePlayer.d.ts.map +1 -0
- package/lib/MessageVideo/RoundNotePlayer.js +560 -0
- package/lib/MessageVideo/RoundNotePlayer.js.map +1 -0
- package/lib/MessageVideo/RoundTranscription.d.ts +27 -0
- package/lib/MessageVideo/RoundTranscription.d.ts.map +1 -0
- package/lib/MessageVideo/RoundTranscription.js +151 -0
- package/lib/MessageVideo/RoundTranscription.js.map +1 -0
- package/lib/MessageVideo/VideoTransferOverlay.d.ts +11 -0
- package/lib/MessageVideo/VideoTransferOverlay.d.ts.map +1 -0
- package/lib/MessageVideo/VideoTransferOverlay.js +88 -0
- package/lib/MessageVideo/VideoTransferOverlay.js.map +1 -0
- package/lib/MessageVideo/constants.d.ts +13 -0
- package/lib/MessageVideo/constants.d.ts.map +1 -0
- package/lib/MessageVideo/constants.js +15 -0
- package/lib/MessageVideo/constants.js.map +1 -0
- package/lib/{MessageVideo.d.ts → MessageVideo/index.d.ts} +2 -2
- package/lib/MessageVideo/index.d.ts.map +1 -0
- package/lib/MessageVideo/index.js +92 -0
- package/lib/MessageVideo/index.js.map +1 -0
- package/lib/MessageVideo/liftedMedia.d.ts +13 -0
- package/lib/MessageVideo/liftedMedia.d.ts.map +1 -0
- package/lib/MessageVideo/liftedMedia.js +106 -0
- package/lib/MessageVideo/liftedMedia.js.map +1 -0
- package/lib/MessageVideo/styles.d.ts +71 -0
- package/lib/MessageVideo/styles.d.ts.map +1 -0
- package/lib/MessageVideo/styles.js +78 -0
- package/lib/MessageVideo/styles.js.map +1 -0
- package/lib/MessageVideo/types.d.ts +27 -0
- package/lib/MessageVideo/types.d.ts.map +1 -0
- package/lib/MessageVideo/types.js +2 -0
- package/lib/MessageVideo/types.js.map +1 -0
- package/lib/MessageVideo/useNoteGrow.d.ts +16 -0
- package/lib/MessageVideo/useNoteGrow.d.ts.map +1 -0
- package/lib/MessageVideo/useNoteGrow.js +122 -0
- package/lib/MessageVideo/useNoteGrow.js.map +1 -0
- package/lib/MessageVideo/useNotePlayer.d.ts +14 -0
- package/lib/MessageVideo/useNotePlayer.d.ts.map +1 -0
- package/lib/MessageVideo/useNotePlayer.js +142 -0
- package/lib/MessageVideo/useNotePlayer.js.map +1 -0
- package/lib/MessageVideo/useRingSeek.d.ts +16 -0
- package/lib/MessageVideo/useRingSeek.d.ts.map +1 -0
- package/lib/MessageVideo/useRingSeek.js +157 -0
- package/lib/MessageVideo/useRingSeek.js.map +1 -0
- package/lib/MessageVideo/useRoundNotePlayback.d.ts +46 -0
- package/lib/MessageVideo/useRoundNotePlayback.d.ts.map +1 -0
- package/lib/MessageVideo/useRoundNotePlayback.js +508 -0
- package/lib/MessageVideo/useRoundNotePlayback.js.map +1 -0
- package/lib/MessageVideo/useSendFlightReveal.d.ts +9 -0
- package/lib/MessageVideo/useSendFlightReveal.d.ts.map +1 -0
- package/lib/MessageVideo/useSendFlightReveal.js +85 -0
- package/lib/MessageVideo/useSendFlightReveal.js.map +1 -0
- package/lib/MessageVideo/videoPlayers.d.ts +8 -0
- package/lib/MessageVideo/videoPlayers.d.ts.map +1 -0
- package/lib/MessageVideo/videoPlayers.js +33 -0
- package/lib/MessageVideo/videoPlayers.js.map +1 -0
- package/lib/MessagesContainer/components/DayAnimated/debug.js +38 -24
- package/lib/MessagesContainer/components/DayAnimated/debug.js.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/index.d.ts +1 -1
- package/lib/MessagesContainer/components/DayAnimated/index.d.ts.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/index.js +244 -112
- package/lib/MessagesContainer/components/DayAnimated/index.js.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/styles.d.ts +3 -3
- package/lib/MessagesContainer/components/DayAnimated/styles.js +8 -8
- package/lib/MessagesContainer/components/DayAnimated/styles.js.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/types.d.ts +4 -2
- package/lib/MessagesContainer/components/DayAnimated/types.d.ts.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/types.js.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/useScrollGatedOpacity.d.ts.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/useScrollGatedOpacity.js +34 -25
- package/lib/MessagesContainer/components/DayAnimated/useScrollGatedOpacity.js.map +1 -1
- package/lib/MessagesContainer/components/Item/index.d.ts +3 -4
- package/lib/MessagesContainer/components/Item/index.d.ts.map +1 -1
- package/lib/MessagesContainer/components/Item/index.js +290 -99
- package/lib/MessagesContainer/components/Item/index.js.map +1 -1
- package/lib/MessagesContainer/components/Item/types.d.ts +5 -0
- package/lib/MessagesContainer/components/Item/types.d.ts.map +1 -1
- package/lib/MessagesContainer/components/Item/types.js.map +1 -1
- package/lib/MessagesContainer/components/PageDownCounter.d.ts +14 -0
- package/lib/MessagesContainer/components/PageDownCounter.d.ts.map +1 -0
- package/lib/MessagesContainer/components/PageDownCounter.js +209 -0
- package/lib/MessagesContainer/components/PageDownCounter.js.map +1 -0
- package/lib/MessagesContainer/components/ScrollToBottomButton.d.ts +21 -0
- package/lib/MessagesContainer/components/ScrollToBottomButton.d.ts.map +1 -0
- package/lib/MessagesContainer/components/ScrollToBottomButton.js +195 -0
- package/lib/MessagesContainer/components/ScrollToBottomButton.js.map +1 -0
- package/lib/MessagesContainer/components/dayLayout.d.ts +2 -2
- package/lib/MessagesContainer/components/dayLayout.d.ts.map +1 -1
- package/lib/MessagesContainer/components/dayLayout.js +18 -13
- package/lib/MessagesContainer/components/dayLayout.js.map +1 -1
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +361 -420
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/listState.d.ts +18 -0
- package/lib/MessagesContainer/listState.d.ts.map +1 -0
- package/lib/MessagesContainer/listState.js +25 -0
- package/lib/MessagesContainer/listState.js.map +1 -0
- package/lib/MessagesContainer/listTransitions.d.ts +10 -0
- package/lib/MessagesContainer/listTransitions.d.ts.map +1 -0
- package/lib/MessagesContainer/listTransitions.js +12 -0
- package/lib/MessagesContainer/listTransitions.js.map +1 -0
- package/lib/MessagesContainer/pageDownReturn.d.ts +11 -0
- package/lib/MessagesContainer/pageDownReturn.d.ts.map +1 -0
- package/lib/MessagesContainer/pageDownReturn.js +9 -0
- package/lib/MessagesContainer/pageDownReturn.js.map +1 -0
- package/lib/MessagesContainer/rowConfig.d.ts +39 -0
- package/lib/MessagesContainer/rowConfig.d.ts.map +1 -0
- package/lib/MessagesContainer/rowConfig.js +161 -0
- package/lib/MessagesContainer/rowConfig.js.map +1 -0
- package/lib/MessagesContainer/rowStore.d.ts +37 -0
- package/lib/MessagesContainer/rowStore.d.ts.map +1 -0
- package/lib/MessagesContainer/rowStore.js +140 -0
- package/lib/MessagesContainer/rowStore.js.map +1 -0
- package/lib/MessagesContainer/styles.d.ts +37 -31
- package/lib/MessagesContainer/styles.d.ts.map +1 -1
- package/lib/MessagesContainer/styles.js +75 -54
- package/lib/MessagesContainer/styles.js.map +1 -1
- package/lib/MessagesContainer/types.d.ts +33 -30
- package/lib/MessagesContainer/types.d.ts.map +1 -1
- package/lib/MessagesContainer/types.js +1 -9
- package/lib/MessagesContainer/types.js.map +1 -1
- package/lib/MessagesContainer/useCellLayouts.d.ts +17 -0
- package/lib/MessagesContainer/useCellLayouts.d.ts.map +1 -0
- package/lib/MessagesContainer/useCellLayouts.js +133 -0
- package/lib/MessagesContainer/useCellLayouts.js.map +1 -0
- package/lib/MessagesContainer/useDaysPositions.d.ts +18 -0
- package/lib/MessagesContainer/useDaysPositions.d.ts.map +1 -0
- package/lib/MessagesContainer/useDaysPositions.js +109 -0
- package/lib/MessagesContainer/useDaysPositions.js.map +1 -0
- package/lib/MessagesContainer/useListChrome.d.ts +14 -0
- package/lib/MessagesContainer/useListChrome.d.ts.map +1 -0
- package/lib/MessagesContainer/useListChrome.js +176 -0
- package/lib/MessagesContainer/useListChrome.js.map +1 -0
- package/lib/MessagesContainer/useListMetrics.d.ts +32 -0
- package/lib/MessagesContainer/useListMetrics.d.ts.map +1 -0
- package/lib/MessagesContainer/useListMetrics.js +176 -0
- package/lib/MessagesContainer/useListMetrics.js.map +1 -0
- package/lib/MessagesContainer/useMessageRows.d.ts +46 -0
- package/lib/MessagesContainer/useMessageRows.d.ts.map +1 -0
- package/lib/MessagesContainer/useMessageRows.js +228 -0
- package/lib/MessagesContainer/useMessageRows.js.map +1 -0
- package/lib/MessagesContainer/usePageDownUnread.d.ts +27 -0
- package/lib/MessagesContainer/usePageDownUnread.d.ts.map +1 -0
- package/lib/MessagesContainer/usePageDownUnread.js +152 -0
- package/lib/MessagesContainer/usePageDownUnread.js.map +1 -0
- package/lib/MessagesContainer/useScrollActivity.d.ts +13 -0
- package/lib/MessagesContainer/useScrollActivity.d.ts.map +1 -0
- package/lib/MessagesContainer/useScrollActivity.js +84 -0
- package/lib/MessagesContainer/useScrollActivity.js.map +1 -0
- package/lib/MessagesContainer/useScrollToBottom.d.ts +26 -0
- package/lib/MessagesContainer/useScrollToBottom.d.ts.map +1 -0
- package/lib/MessagesContainer/useScrollToBottom.js +164 -0
- package/lib/MessagesContainer/useScrollToBottom.js.map +1 -0
- package/lib/MessagesContainer/useTapToClosePanels.d.ts +7 -0
- package/lib/MessagesContainer/useTapToClosePanels.d.ts.map +1 -0
- package/lib/MessagesContainer/useTapToClosePanels.js +55 -0
- package/lib/MessagesContainer/useTapToClosePanels.js.map +1 -0
- package/lib/MessagesContainer/viewability.d.ts +9 -0
- package/lib/MessagesContainer/viewability.d.ts.map +1 -0
- package/lib/MessagesContainer/viewability.js +110 -0
- package/lib/MessagesContainer/viewability.js.map +1 -0
- package/lib/Models.d.ts +188 -3
- package/lib/Models.d.ts.map +1 -1
- package/lib/Models.js.map +1 -1
- package/lib/QuickReplies.js +234 -101
- package/lib/QuickReplies.js.map +1 -1
- package/lib/Reactions/MessageReactions.d.ts +5 -0
- package/lib/Reactions/MessageReactions.d.ts.map +1 -1
- package/lib/Reactions/MessageReactions.js +359 -80
- package/lib/Reactions/MessageReactions.js.map +1 -1
- package/lib/Reactions/ReactionPicker.d.ts +5 -3
- package/lib/Reactions/ReactionPicker.d.ts.map +1 -1
- package/lib/Reactions/ReactionPicker.js +68 -82
- package/lib/Reactions/ReactionPicker.js.map +1 -1
- package/lib/Reactions/index.js +1 -0
- package/lib/Reactions/index.js.map +1 -1
- package/lib/Reactions/types.d.ts +49 -5
- package/lib/Reactions/types.d.ts.map +1 -1
- package/lib/Reactions/types.js.map +1 -1
- package/lib/Reply/index.js.map +1 -1
- package/lib/Reply/types.d.ts +19 -3
- package/lib/Reply/types.d.ts.map +1 -1
- package/lib/Reply/types.js.map +1 -1
- package/lib/Send.d.ts +2 -2
- package/lib/Send.d.ts.map +1 -1
- package/lib/Send.js +218 -47
- package/lib/Send.js.map +1 -1
- package/lib/SystemMessage.d.ts.map +1 -1
- package/lib/SystemMessage.js +106 -37
- package/lib/SystemMessage.js.map +1 -1
- package/lib/Theme.d.ts +320 -23
- package/lib/Theme.d.ts.map +1 -1
- package/lib/Theme.js +548 -119
- package/lib/Theme.js.map +1 -1
- package/lib/Time.d.ts +7 -0
- package/lib/Time.d.ts.map +1 -1
- package/lib/Time.js +122 -30
- package/lib/Time.js.map +1 -1
- package/lib/TypingIndicator/index.d.ts +9 -1
- package/lib/TypingIndicator/index.d.ts.map +1 -1
- package/lib/TypingIndicator/index.js +318 -94
- package/lib/TypingIndicator/index.js.map +1 -1
- package/lib/TypingIndicator/styles.d.ts +6 -2
- package/lib/TypingIndicator/styles.d.ts.map +1 -1
- package/lib/TypingIndicator/styles.js +22 -18
- package/lib/TypingIndicator/styles.js.map +1 -1
- package/lib/TypingIndicator/types.js.map +1 -1
- package/lib/attachments/AttachmentButton.d.ts +18 -0
- package/lib/attachments/AttachmentButton.d.ts.map +1 -0
- package/lib/attachments/AttachmentButton.js +110 -0
- package/lib/attachments/AttachmentButton.js.map +1 -0
- package/lib/attachments/AttachmentMenu/CaptionBar.d.ts +15 -0
- package/lib/attachments/AttachmentMenu/CaptionBar.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/CaptionBar.js +165 -0
- package/lib/attachments/AttachmentMenu/CaptionBar.js.map +1 -0
- package/lib/attachments/AttachmentMenu/GalleryCell.d.ts +14 -0
- package/lib/attachments/AttachmentMenu/GalleryCell.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/GalleryCell.js +267 -0
- package/lib/attachments/AttachmentMenu/GalleryCell.js.map +1 -0
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts +18 -0
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/GalleryGrid.js +184 -0
- package/lib/attachments/AttachmentMenu/GalleryGrid.js.map +1 -0
- package/lib/attachments/AttachmentMenu/TabBar.d.ts +14 -0
- package/lib/attachments/AttachmentMenu/TabBar.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/TabBar.js +127 -0
- package/lib/attachments/AttachmentMenu/TabBar.js.map +1 -0
- package/lib/attachments/AttachmentMenu/TabButton.d.ts +15 -0
- package/lib/attachments/AttachmentMenu/TabButton.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/TabButton.js +219 -0
- package/lib/attachments/AttachmentMenu/TabButton.js.map +1 -0
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts +17 -0
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/TabPanel.js +170 -0
- package/lib/attachments/AttachmentMenu/TabPanel.js.map +1 -0
- package/lib/attachments/AttachmentMenu/constants.d.ts +54 -0
- package/lib/attachments/AttachmentMenu/constants.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/constants.js +79 -0
- package/lib/attachments/AttachmentMenu/constants.js.map +1 -0
- package/lib/attachments/AttachmentMenu/index.d.ts +16 -0
- package/lib/attachments/AttachmentMenu/index.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/index.js +498 -0
- package/lib/attachments/AttachmentMenu/index.js.map +1 -0
- package/lib/attachments/AttachmentMenu/styles.d.ts +259 -0
- package/lib/attachments/AttachmentMenu/styles.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/styles.js +262 -0
- package/lib/attachments/AttachmentMenu/styles.js.map +1 -0
- package/lib/attachments/AttachmentMenu/useSheetPresence.d.ts +14 -0
- package/lib/attachments/AttachmentMenu/useSheetPresence.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/useSheetPresence.js +74 -0
- package/lib/attachments/AttachmentMenu/useSheetPresence.js.map +1 -0
- package/lib/attachments/buildMessages.d.ts +36 -0
- package/lib/attachments/buildMessages.d.ts.map +1 -0
- package/lib/attachments/buildMessages.js +192 -0
- package/lib/attachments/buildMessages.js.map +1 -0
- package/lib/attachments/gallery.d.ts +28 -0
- package/lib/attachments/gallery.d.ts.map +1 -0
- package/lib/attachments/gallery.js +245 -0
- package/lib/attachments/gallery.js.map +1 -0
- package/lib/attachments/types.d.ts +69 -0
- package/lib/attachments/types.d.ts.map +1 -0
- package/lib/attachments/types.js +2 -0
- package/lib/attachments/types.js.map +1 -0
- package/lib/colorUtils.d.ts +24 -0
- package/lib/colorUtils.d.ts.map +1 -0
- package/lib/colorUtils.js +71 -0
- package/lib/colorUtils.js.map +1 -0
- package/lib/components/AttachmentSheet.d.ts +1 -1
- package/lib/components/AttachmentSheet.d.ts.map +1 -1
- package/lib/components/AttachmentSheet.js +515 -155
- package/lib/components/AttachmentSheet.js.map +1 -1
- package/lib/components/BasicMarkdown.d.ts +7 -1
- package/lib/components/BasicMarkdown.d.ts.map +1 -1
- package/lib/components/BasicMarkdown.js +234 -184
- package/lib/components/BasicMarkdown.js.map +1 -1
- package/lib/components/BubbleBackground.d.ts +55 -0
- package/lib/components/BubbleBackground.d.ts.map +1 -0
- package/lib/components/BubbleBackground.js +513 -0
- package/lib/components/BubbleBackground.js.map +1 -0
- package/lib/components/ChatEmpty.d.ts +18 -0
- package/lib/components/ChatEmpty.d.ts.map +1 -0
- package/lib/components/ChatEmpty.js +125 -0
- package/lib/components/ChatEmpty.js.map +1 -0
- package/lib/components/ChatLoadingOverlay.d.ts +10 -0
- package/lib/components/ChatLoadingOverlay.d.ts.map +1 -0
- package/lib/components/ChatLoadingOverlay.js +89 -0
- package/lib/components/ChatLoadingOverlay.js.map +1 -0
- package/lib/components/ChatOverlay.d.ts +9 -0
- package/lib/components/ChatOverlay.d.ts.map +1 -0
- package/lib/components/ChatOverlay.js +60 -0
- package/lib/components/ChatOverlay.js.map +1 -0
- package/lib/components/ChatWallpaper.d.ts +32 -0
- package/lib/components/ChatWallpaper.d.ts.map +1 -0
- package/lib/components/ChatWallpaper.js +277 -0
- package/lib/components/ChatWallpaper.js.map +1 -0
- package/lib/components/ContextMenu/MenuCard.d.ts +21 -0
- package/lib/components/ContextMenu/MenuCard.d.ts.map +1 -0
- package/lib/components/ContextMenu/MenuCard.js +265 -0
- package/lib/components/ContextMenu/MenuCard.js.map +1 -0
- package/lib/components/ContextMenu/ReactionButton.d.ts +15 -0
- package/lib/components/ContextMenu/ReactionButton.d.ts.map +1 -0
- package/lib/components/ContextMenu/ReactionButton.js +116 -0
- package/lib/components/ContextMenu/ReactionButton.js.map +1 -0
- package/lib/components/ContextMenu/ReactionFlight.d.ts +14 -0
- package/lib/components/ContextMenu/ReactionFlight.d.ts.map +1 -0
- package/lib/components/ContextMenu/ReactionFlight.js +111 -0
- package/lib/components/ContextMenu/ReactionFlight.js.map +1 -0
- package/lib/components/ContextMenu/ReactionsBar.d.ts +35 -0
- package/lib/components/ContextMenu/ReactionsBar.d.ts.map +1 -0
- package/lib/components/ContextMenu/ReactionsBar.js +354 -0
- package/lib/components/ContextMenu/ReactionsBar.js.map +1 -0
- package/lib/components/ContextMenu/constants.d.ts +68 -0
- package/lib/components/ContextMenu/constants.d.ts.map +1 -0
- package/lib/components/ContextMenu/constants.js +105 -0
- package/lib/components/ContextMenu/constants.js.map +1 -0
- package/lib/components/ContextMenu/index.d.ts +12 -0
- package/lib/components/ContextMenu/index.d.ts.map +1 -0
- package/lib/components/ContextMenu/index.js +476 -0
- package/lib/components/ContextMenu/index.js.map +1 -0
- package/lib/components/ContextMenu/placement.d.ts +50 -0
- package/lib/components/ContextMenu/placement.d.ts.map +1 -0
- package/lib/components/ContextMenu/placement.js +117 -0
- package/lib/components/ContextMenu/placement.js.map +1 -0
- package/lib/components/ContextMenu/styles.d.ts +199 -0
- package/lib/components/ContextMenu/styles.d.ts.map +1 -0
- package/lib/components/ContextMenu/styles.js +169 -0
- package/lib/components/ContextMenu/styles.js.map +1 -0
- package/lib/components/ContextMenu/types.d.ts +62 -0
- package/lib/components/ContextMenu/types.d.ts.map +1 -0
- package/lib/components/ContextMenu/types.js +2 -0
- package/lib/components/ContextMenu/types.js.map +1 -0
- package/lib/components/ContextMenu/useExpandPanel.d.ts +11 -0
- package/lib/components/ContextMenu/useExpandPanel.d.ts.map +1 -0
- package/lib/components/ContextMenu/useExpandPanel.js +81 -0
- package/lib/components/ContextMenu/useExpandPanel.js.map +1 -0
- package/lib/components/ContextMenu/useMenuPresence.d.ts +17 -0
- package/lib/components/ContextMenu/useMenuPresence.d.ts.map +1 -0
- package/lib/components/ContextMenu/useMenuPresence.js +125 -0
- package/lib/components/ContextMenu/useMenuPresence.js.map +1 -0
- package/lib/components/FloatingRoundNote.d.ts +13 -0
- package/lib/components/FloatingRoundNote.d.ts.map +1 -0
- package/lib/components/FloatingRoundNote.js +541 -0
- package/lib/components/FloatingRoundNote.js.map +1 -0
- package/lib/components/GlassSurface.d.ts +16 -0
- package/lib/components/GlassSurface.d.ts.map +1 -0
- package/lib/components/GlassSurface.js +114 -0
- package/lib/components/GlassSurface.js.map +1 -0
- package/lib/components/Icon.js +57 -8
- package/lib/components/Icon.js.map +1 -1
- package/lib/components/LinkPreviewCard.d.ts +36 -0
- package/lib/components/LinkPreviewCard.d.ts.map +1 -0
- package/lib/components/LinkPreviewCard.js +416 -0
- package/lib/components/LinkPreviewCard.js.map +1 -0
- package/lib/components/LucideIcon.d.ts.map +1 -1
- package/lib/components/LucideIcon.js +103 -106
- package/lib/components/LucideIcon.js.map +1 -1
- package/lib/components/MarkdownMessageText.d.ts +17 -2
- package/lib/components/MarkdownMessageText.d.ts.map +1 -1
- package/lib/components/MarkdownMessageText.js +270 -22
- package/lib/components/MarkdownMessageText.js.map +1 -1
- package/lib/components/MediaCard.d.ts.map +1 -1
- package/lib/components/MediaCard.js +223 -85
- package/lib/components/MediaCard.js.map +1 -1
- package/lib/components/MediaControls.js +1094 -450
- package/lib/components/MediaControls.js.map +1 -1
- package/lib/components/MediaLoader.d.ts +21 -0
- package/lib/components/MediaLoader.d.ts.map +1 -0
- package/lib/components/MediaLoader.js +61 -0
- package/lib/components/MediaLoader.js.map +1 -0
- package/lib/components/MessageReply.d.ts +2 -2
- package/lib/components/MessageReply.d.ts.map +1 -1
- package/lib/components/MessageReply.js +266 -83
- package/lib/components/MessageReply.js.map +1 -1
- package/lib/components/MessageStatus.d.ts +23 -0
- package/lib/components/MessageStatus.d.ts.map +1 -0
- package/lib/components/MessageStatus.js +499 -0
- package/lib/components/MessageStatus.js.map +1 -0
- package/lib/components/NoteIndicators.d.ts +25 -0
- package/lib/components/NoteIndicators.d.ts.map +1 -0
- package/lib/components/NoteIndicators.js +206 -0
- package/lib/components/NoteIndicators.js.map +1 -0
- package/lib/components/NowPlayingBar.d.ts +15 -0
- package/lib/components/NowPlayingBar.d.ts.map +1 -0
- package/lib/components/NowPlayingBar.js +261 -0
- package/lib/components/NowPlayingBar.js.map +1 -0
- package/lib/components/PlayPauseIcon.d.ts +13 -0
- package/lib/components/PlayPauseIcon.d.ts.map +1 -0
- package/lib/components/PlayPauseIcon.js +187 -0
- package/lib/components/PlayPauseIcon.js.map +1 -0
- package/lib/components/PlaybackSpeedPill.d.ts +11 -0
- package/lib/components/PlaybackSpeedPill.d.ts.map +1 -0
- package/lib/components/PlaybackSpeedPill.js +350 -0
- package/lib/components/PlaybackSpeedPill.js.map +1 -0
- package/lib/components/RadialProgress.d.ts +70 -0
- package/lib/components/RadialProgress.d.ts.map +1 -0
- package/lib/components/RadialProgress.js +864 -0
- package/lib/components/RadialProgress.js.map +1 -0
- package/lib/components/RecordButton/LockPill.d.ts +27 -0
- package/lib/components/RecordButton/LockPill.d.ts.map +1 -0
- package/lib/components/RecordButton/LockPill.js +182 -0
- package/lib/components/RecordButton/LockPill.js.map +1 -0
- package/lib/components/RecordButton/ModeButton.d.ts +18 -0
- package/lib/components/RecordButton/ModeButton.d.ts.map +1 -0
- package/lib/components/RecordButton/ModeButton.js +154 -0
- package/lib/components/RecordButton/ModeButton.js.map +1 -0
- package/lib/components/RecordButton/ResumeButton.d.ts +20 -0
- package/lib/components/RecordButton/ResumeButton.d.ts.map +1 -0
- package/lib/components/RecordButton/ResumeButton.js +63 -0
- package/lib/components/RecordButton/ResumeButton.js.map +1 -0
- package/lib/components/RecordButton/Tooltips.d.ts +20 -0
- package/lib/components/RecordButton/Tooltips.d.ts.map +1 -0
- package/lib/components/RecordButton/Tooltips.js +191 -0
- package/lib/components/RecordButton/Tooltips.js.map +1 -0
- package/lib/components/RecordButton/ViewOnceButton.d.ts +16 -0
- package/lib/components/RecordButton/ViewOnceButton.d.ts.map +1 -0
- package/lib/components/RecordButton/ViewOnceButton.js +96 -0
- package/lib/components/RecordButton/ViewOnceButton.js.map +1 -0
- package/lib/components/RecordButton/constants.d.ts +52 -0
- package/lib/components/RecordButton/constants.d.ts.map +1 -0
- package/lib/components/RecordButton/constants.js +58 -0
- package/lib/components/RecordButton/constants.js.map +1 -0
- package/lib/components/RecordButton/index.d.ts +14 -0
- package/lib/components/RecordButton/index.d.ts.map +1 -0
- package/lib/components/RecordButton/index.js +382 -0
- package/lib/components/RecordButton/index.js.map +1 -0
- package/lib/components/RecordButton/styles.d.ts +155 -0
- package/lib/components/RecordButton/styles.d.ts.map +1 -0
- package/lib/components/RecordButton/styles.js +161 -0
- package/lib/components/RecordButton/styles.js.map +1 -0
- package/lib/components/RecordButton/types.d.ts +63 -0
- package/lib/components/RecordButton/types.d.ts.map +1 -0
- package/lib/components/RecordButton/types.js +2 -0
- package/lib/components/RecordButton/types.js.map +1 -0
- package/lib/components/RecordButton/useRecordGesture.d.ts +28 -0
- package/lib/components/RecordButton/useRecordGesture.d.ts.map +1 -0
- package/lib/components/RecordButton/useRecordGesture.js +263 -0
- package/lib/components/RecordButton/useRecordGesture.js.map +1 -0
- package/lib/components/RecordButton/useRecordHints.d.ts +27 -0
- package/lib/components/RecordButton/useRecordHints.d.ts.map +1 -0
- package/lib/components/RecordButton/useRecordHints.js +210 -0
- package/lib/components/RecordButton/useRecordHints.js.map +1 -0
- package/lib/components/RecordButton/useRecordSlideDistance.d.ts +3 -0
- package/lib/components/RecordButton/useRecordSlideDistance.d.ts.map +1 -0
- package/lib/components/RecordButton/useRecordSlideDistance.js +15 -0
- package/lib/components/RecordButton/useRecordSlideDistance.js.map +1 -0
- package/lib/components/RecordButton/useRecordTake.d.ts +41 -0
- package/lib/components/RecordButton/useRecordTake.d.ts.map +1 -0
- package/lib/components/RecordButton/useRecordTake.js +349 -0
- package/lib/components/RecordButton/useRecordTake.js.map +1 -0
- package/lib/components/RecordButton/useSendFlight.d.ts +25 -0
- package/lib/components/RecordButton/useSendFlight.d.ts.map +1 -0
- package/lib/components/RecordButton/useSendFlight.js +162 -0
- package/lib/components/RecordButton/useSendFlight.js.map +1 -0
- package/lib/components/RecordCircle.d.ts +92 -0
- package/lib/components/RecordCircle.d.ts.map +1 -0
- package/lib/components/RecordCircle.js +629 -0
- package/lib/components/RecordCircle.js.map +1 -0
- package/lib/components/RecordingBar.d.ts +24 -0
- package/lib/components/RecordingBar.d.ts.map +1 -0
- package/lib/components/RecordingBar.js +766 -0
- package/lib/components/RecordingBar.js.map +1 -0
- package/lib/components/ReplyPreview.js +318 -135
- package/lib/components/ReplyPreview.js.map +1 -1
- package/lib/components/SelectionBar.d.ts +17 -0
- package/lib/components/SelectionBar.d.ts.map +1 -0
- package/lib/components/SelectionBar.js +214 -0
- package/lib/components/SelectionBar.js.map +1 -0
- package/lib/components/SelectionCheckbox.d.ts +12 -0
- package/lib/components/SelectionCheckbox.d.ts.map +1 -0
- package/lib/components/SelectionCheckbox.js +104 -0
- package/lib/components/SelectionCheckbox.js.map +1 -0
- package/lib/components/SendIcon.js +60 -26
- package/lib/components/SendIcon.js.map +1 -1
- package/lib/components/ServiceSpinner.d.ts +17 -0
- package/lib/components/ServiceSpinner.d.ts.map +1 -0
- package/lib/components/ServiceSpinner.js +77 -0
- package/lib/components/ServiceSpinner.js.map +1 -0
- package/lib/components/Spinner.d.ts +18 -0
- package/lib/components/Spinner.d.ts.map +1 -0
- package/lib/components/Spinner.js +169 -0
- package/lib/components/Spinner.js.map +1 -0
- package/lib/components/StreamingCursor.js +54 -9
- package/lib/components/StreamingCursor.js.map +1 -1
- package/lib/components/Ticks.d.ts +6 -5
- package/lib/components/Ticks.d.ts.map +1 -1
- package/lib/components/Ticks.js +272 -82
- package/lib/components/Ticks.js.map +1 -1
- package/lib/components/TouchableOpacity.d.ts.map +1 -1
- package/lib/components/TouchableOpacity.js +154 -48
- package/lib/components/TouchableOpacity.js.map +1 -1
- package/lib/components/TranscribeButton.d.ts +45 -0
- package/lib/components/TranscribeButton.d.ts.map +1 -0
- package/lib/components/TranscribeButton.js +549 -0
- package/lib/components/TranscribeButton.js.map +1 -0
- package/lib/components/TypingStatus.d.ts +29 -0
- package/lib/components/TypingStatus.d.ts.map +1 -0
- package/lib/components/TypingStatus.js +446 -0
- package/lib/components/TypingStatus.js.map +1 -0
- package/lib/components/UnreadSeparator.d.ts +8 -0
- package/lib/components/UnreadSeparator.d.ts.map +1 -0
- package/lib/components/UnreadSeparator.js +101 -0
- package/lib/components/UnreadSeparator.js.map +1 -0
- package/lib/components/VideoNoteCapture/ProgressRing.d.ts +16 -0
- package/lib/components/VideoNoteCapture/ProgressRing.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/ProgressRing.js +75 -0
- package/lib/components/VideoNoteCapture/ProgressRing.js.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNoteCaptureView.d.ts +31 -0
- package/lib/components/VideoNoteCapture/VideoNoteCaptureView.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNoteCaptureView.js +500 -0
- package/lib/components/VideoNoteCapture/VideoNoteCaptureView.js.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNotePreviewView.d.ts +12 -0
- package/lib/components/VideoNoteCapture/VideoNotePreviewView.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNotePreviewView.js +105 -0
- package/lib/components/VideoNoteCapture/VideoNotePreviewView.js.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNoteStage.d.ts +12 -0
- package/lib/components/VideoNoteCapture/VideoNoteStage.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNoteStage.js +95 -0
- package/lib/components/VideoNoteCapture/VideoNoteStage.js.map +1 -0
- package/lib/components/VideoNoteCapture/constants.d.ts +50 -0
- package/lib/components/VideoNoteCapture/constants.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/constants.js +53 -0
- package/lib/components/VideoNoteCapture/constants.js.map +1 -0
- package/lib/components/VideoNoteCapture/index.d.ts +3 -0
- package/lib/components/VideoNoteCapture/index.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/index.js +2 -0
- package/lib/components/VideoNoteCapture/index.js.map +1 -0
- package/lib/components/VideoNoteCapture/optional.d.ts +6 -0
- package/lib/components/VideoNoteCapture/optional.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/optional.js +15 -0
- package/lib/components/VideoNoteCapture/optional.js.map +1 -0
- package/lib/components/VideoNoteCapture/sessionState.d.ts +10 -0
- package/lib/components/VideoNoteCapture/sessionState.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/sessionState.js +19 -0
- package/lib/components/VideoNoteCapture/sessionState.js.map +1 -0
- package/lib/components/VideoNoteCapture/styles.d.ts +84 -0
- package/lib/components/VideoNoteCapture/styles.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/styles.js +86 -0
- package/lib/components/VideoNoteCapture/styles.js.map +1 -0
- package/lib/components/VideoNoteCapture/types.d.ts +54 -0
- package/lib/components/VideoNoteCapture/types.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/types.js +2 -0
- package/lib/components/VideoNoteCapture/types.js.map +1 -0
- package/lib/components/VideoNoteCapture/useRoundAnimation.d.ts +47 -0
- package/lib/components/VideoNoteCapture/useRoundAnimation.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/useRoundAnimation.js +216 -0
- package/lib/components/VideoNoteCapture/useRoundAnimation.js.map +1 -0
- package/lib/components/VideoNoteCapture/useRoundLayout.d.ts +14 -0
- package/lib/components/VideoNoteCapture/useRoundLayout.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/useRoundLayout.js +61 -0
- package/lib/components/VideoNoteCapture/useRoundLayout.js.map +1 -0
- package/lib/components/VideoNoteCapture/useVideoNoteSession.d.ts +25 -0
- package/lib/components/VideoNoteCapture/useVideoNoteSession.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/useVideoNoteSession.js +611 -0
- package/lib/components/VideoNoteCapture/useVideoNoteSession.js.map +1 -0
- package/lib/components/VideoNoteOverlay.d.ts +42 -11
- package/lib/components/VideoNoteOverlay.d.ts.map +1 -1
- package/lib/components/VideoNoteOverlay.js +722 -135
- package/lib/components/VideoNoteOverlay.js.map +1 -1
- package/lib/components/VideoNoteRecorder/LiveVideoNote.d.ts +6 -0
- package/lib/components/VideoNoteRecorder/LiveVideoNote.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/LiveVideoNote.js +205 -0
- package/lib/components/VideoNoteRecorder/LiveVideoNote.js.map +1 -0
- package/lib/components/VideoNoteRecorder/RecorderChrome.d.ts +35 -0
- package/lib/components/VideoNoteRecorder/RecorderChrome.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/RecorderChrome.js +350 -0
- package/lib/components/VideoNoteRecorder/RecorderChrome.js.map +1 -0
- package/lib/components/VideoNoteRecorder/UnavailableVideoNote.d.ts +10 -0
- package/lib/components/VideoNoteRecorder/UnavailableVideoNote.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/UnavailableVideoNote.js +52 -0
- package/lib/components/VideoNoteRecorder/UnavailableVideoNote.js.map +1 -0
- package/lib/components/VideoNoteRecorder/constants.d.ts +16 -0
- package/lib/components/VideoNoteRecorder/constants.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/constants.js +30 -0
- package/lib/components/VideoNoteRecorder/constants.js.map +1 -0
- package/lib/components/{VideoNoteRecorder.d.ts → VideoNoteRecorder/index.d.ts} +5 -10
- package/lib/components/VideoNoteRecorder/index.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/index.js +26 -0
- package/lib/components/VideoNoteRecorder/index.js.map +1 -0
- package/lib/components/VideoNoteRecorder/styles.d.ts +159 -0
- package/lib/components/VideoNoteRecorder/styles.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/styles.js +170 -0
- package/lib/components/VideoNoteRecorder/styles.js.map +1 -0
- package/lib/components/VideoNoteRecorder/types.d.ts +7 -0
- package/lib/components/VideoNoteRecorder/types.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/types.js +2 -0
- package/lib/components/VideoNoteRecorder/types.js.map +1 -0
- package/lib/components/VideoNoteRecorder/useRecordingTimer.d.ts +10 -0
- package/lib/components/VideoNoteRecorder/useRecordingTimer.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/useRecordingTimer.js +134 -0
- package/lib/components/VideoNoteRecorder/useRecordingTimer.js.map +1 -0
- package/lib/components/VideoNoteRecorder/useVideoNoteRecording.d.ts +28 -0
- package/lib/components/VideoNoteRecorder/useVideoNoteRecording.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/useVideoNoteRecording.js +287 -0
- package/lib/components/VideoNoteRecorder/useVideoNoteRecording.js.map +1 -0
- package/lib/components/VideoNoteRecorder/visionCameraHooks.d.ts +6 -0
- package/lib/components/VideoNoteRecorder/visionCameraHooks.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/visionCameraHooks.js +11 -0
- package/lib/components/VideoNoteRecorder/visionCameraHooks.js.map +1 -0
- package/lib/components/VideoRecordButton.d.ts +1 -1
- package/lib/components/VideoRecordButton.d.ts.map +1 -1
- package/lib/components/VideoRecordButton.js +221 -92
- package/lib/components/VideoRecordButton.js.map +1 -1
- package/lib/components/ViewOnceBadge.d.ts +23 -0
- package/lib/components/ViewOnceBadge.d.ts.map +1 -0
- package/lib/components/ViewOnceBadge.js +233 -0
- package/lib/components/ViewOnceBadge.js.map +1 -0
- package/lib/components/VoiceMessageInput/RecordedVoicePreview.d.ts +16 -0
- package/lib/components/VoiceMessageInput/RecordedVoicePreview.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/RecordedVoicePreview.js +503 -0
- package/lib/components/VoiceMessageInput/RecordedVoicePreview.js.map +1 -0
- package/lib/components/VoiceMessageInput/constants.d.ts +16 -0
- package/lib/components/VoiceMessageInput/constants.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/constants.js +22 -0
- package/lib/components/VoiceMessageInput/constants.js.map +1 -0
- package/lib/components/VoiceMessageInput/formatElapsed.d.ts +2 -0
- package/lib/components/VoiceMessageInput/formatElapsed.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/formatElapsed.js +7 -0
- package/lib/components/VoiceMessageInput/formatElapsed.js.map +1 -0
- package/lib/components/VoiceMessageInput/index.d.ts +9 -0
- package/lib/components/VoiceMessageInput/index.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/index.js +148 -0
- package/lib/components/VoiceMessageInput/index.js.map +1 -0
- package/lib/components/VoiceMessageInput/previewStyles.d.ts +77 -0
- package/lib/components/VoiceMessageInput/previewStyles.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/previewStyles.js +80 -0
- package/lib/components/VoiceMessageInput/previewStyles.js.map +1 -0
- package/lib/components/VoiceMessageInput/previewWaveform.d.ts +15 -0
- package/lib/components/VoiceMessageInput/previewWaveform.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/previewWaveform.js +27 -0
- package/lib/components/VoiceMessageInput/previewWaveform.js.map +1 -0
- package/lib/components/VoiceMessageInput/recorder.d.ts +18 -0
- package/lib/components/VoiceMessageInput/recorder.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/recorder.js +80 -0
- package/lib/components/VoiceMessageInput/recorder.js.map +1 -0
- package/lib/components/VoiceMessageInput/types.d.ts +56 -0
- package/lib/components/VoiceMessageInput/types.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/types.js +2 -0
- package/lib/components/VoiceMessageInput/types.js.map +1 -0
- package/lib/components/VoiceMessageInput/useLazyRecorder.d.ts +7 -0
- package/lib/components/VoiceMessageInput/useLazyRecorder.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/useLazyRecorder.js +61 -0
- package/lib/components/VoiceMessageInput/useLazyRecorder.js.map +1 -0
- package/lib/components/VoiceMessageInput/useStateReport.d.ts +16 -0
- package/lib/components/VoiceMessageInput/useStateReport.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/useStateReport.js +81 -0
- package/lib/components/VoiceMessageInput/useStateReport.js.map +1 -0
- package/lib/components/VoiceMessageInput/useTakePreviewActions.d.ts +34 -0
- package/lib/components/VoiceMessageInput/useTakePreviewActions.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/useTakePreviewActions.js +207 -0
- package/lib/components/VoiceMessageInput/useTakePreviewActions.js.map +1 -0
- package/lib/components/VoiceMessageInput/useVoiceTake.d.ts +25 -0
- package/lib/components/VoiceMessageInput/useVoiceTake.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/useVoiceTake.js +424 -0
- package/lib/components/VoiceMessageInput/useVoiceTake.js.map +1 -0
- package/lib/components/WaveformPlayer/Bars.d.ts +30 -0
- package/lib/components/WaveformPlayer/Bars.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/Bars.js +171 -0
- package/lib/components/WaveformPlayer/Bars.js.map +1 -0
- package/lib/components/WaveformPlayer/VoiceButton.d.ts +23 -0
- package/lib/components/WaveformPlayer/VoiceButton.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/VoiceButton.js +111 -0
- package/lib/components/WaveformPlayer/VoiceButton.js.map +1 -0
- package/lib/components/WaveformPlayer/WaveformTrack.d.ts +31 -0
- package/lib/components/WaveformPlayer/WaveformTrack.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/WaveformTrack.js +199 -0
- package/lib/components/WaveformPlayer/WaveformTrack.js.map +1 -0
- package/lib/components/WaveformPlayer/audio.d.ts +23 -0
- package/lib/components/WaveformPlayer/audio.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/audio.js +97 -0
- package/lib/components/WaveformPlayer/audio.js.map +1 -0
- package/lib/components/WaveformPlayer/index.d.ts +13 -0
- package/lib/components/WaveformPlayer/index.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/index.js +475 -0
- package/lib/components/WaveformPlayer/index.js.map +1 -0
- package/lib/components/WaveformPlayer/styles.d.ts +257 -0
- package/lib/components/WaveformPlayer/styles.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/styles.js +120 -0
- package/lib/components/WaveformPlayer/styles.js.map +1 -0
- package/lib/components/WaveformPlayer/types.d.ts +32 -0
- package/lib/components/WaveformPlayer/types.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/types.js +2 -0
- package/lib/components/WaveformPlayer/types.js.map +1 -0
- package/lib/components/WaveformPlayer/useSendFlightReveal.d.ts +21 -0
- package/lib/components/WaveformPlayer/useSendFlightReveal.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useSendFlightReveal.js +105 -0
- package/lib/components/WaveformPlayer/useSendFlightReveal.js.map +1 -0
- package/lib/components/WaveformPlayer/useVoicePlayback.d.ts +39 -0
- package/lib/components/WaveformPlayer/useVoicePlayback.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useVoicePlayback.js +401 -0
- package/lib/components/WaveformPlayer/useVoicePlayback.js.map +1 -0
- package/lib/components/WaveformPlayer/useVoiceSource.d.ts +38 -0
- package/lib/components/WaveformPlayer/useVoiceSource.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useVoiceSource.js +244 -0
- package/lib/components/WaveformPlayer/useVoiceSource.js.map +1 -0
- package/lib/components/WaveformPlayer/useWaveformMotion.d.ts +16 -0
- package/lib/components/WaveformPlayer/useWaveformMotion.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useWaveformMotion.js +135 -0
- package/lib/components/WaveformPlayer/useWaveformMotion.js.map +1 -0
- package/lib/components/WaveformPlayer/useWaveformScrub.d.ts +16 -0
- package/lib/components/WaveformPlayer/useWaveformScrub.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useWaveformScrub.js +168 -0
- package/lib/components/WaveformPlayer/useWaveformScrub.js.map +1 -0
- package/lib/components/composerPanels.d.ts +13 -0
- package/lib/components/composerPanels.d.ts.map +1 -0
- package/lib/components/composerPanels.js +22 -0
- package/lib/components/composerPanels.js.map +1 -0
- package/lib/components/defaultMessageActions.d.ts +30 -0
- package/lib/components/defaultMessageActions.d.ts.map +1 -0
- package/lib/components/defaultMessageActions.js +124 -0
- package/lib/components/defaultMessageActions.js.map +1 -0
- package/lib/components/earpiece.d.ts +56 -0
- package/lib/components/earpiece.d.ts.map +1 -0
- package/lib/components/earpiece.js +218 -0
- package/lib/components/earpiece.js.map +1 -0
- package/lib/components/floatingNoteMath.d.ts +66 -0
- package/lib/components/floatingNoteMath.d.ts.map +1 -0
- package/lib/components/floatingNoteMath.js +143 -0
- package/lib/components/floatingNoteMath.js.map +1 -0
- package/lib/components/haptics.d.ts +5 -0
- package/lib/components/haptics.d.ts.map +1 -0
- package/lib/components/haptics.js +26 -0
- package/lib/components/haptics.js.map +1 -0
- package/lib/components/mediaDownload.d.ts +14 -0
- package/lib/components/mediaDownload.d.ts.map +1 -0
- package/lib/components/mediaDownload.js +43 -0
- package/lib/components/mediaDownload.js.map +1 -0
- package/lib/components/mediaPalette.d.ts +7 -2
- package/lib/components/mediaPalette.d.ts.map +1 -1
- package/lib/components/mediaPalette.js +27 -15
- package/lib/components/mediaPalette.js.map +1 -1
- package/lib/components/mediaPlayback.d.ts +204 -5
- package/lib/components/mediaPlayback.d.ts.map +1 -1
- package/lib/components/mediaPlayback.js +746 -17
- package/lib/components/mediaPlayback.js.map +1 -1
- package/lib/components/mediaTransfer.d.ts +29 -0
- package/lib/components/mediaTransfer.d.ts.map +1 -0
- package/lib/components/mediaTransfer.js +52 -0
- package/lib/components/mediaTransfer.js.map +1 -0
- package/lib/components/mediaViewer/MediaViewer.d.ts +17 -0
- package/lib/components/mediaViewer/MediaViewer.d.ts.map +1 -0
- package/lib/components/mediaViewer/MediaViewer.js +347 -0
- package/lib/components/mediaViewer/MediaViewer.js.map +1 -0
- package/lib/components/mediaViewer/MediaViewerChrome.d.ts +14 -0
- package/lib/components/mediaViewer/MediaViewerChrome.d.ts.map +1 -0
- package/lib/components/mediaViewer/MediaViewerChrome.js +164 -0
- package/lib/components/mediaViewer/MediaViewerChrome.js.map +1 -0
- package/lib/components/mediaViewer/MediaViewerHost.d.ts +10 -0
- package/lib/components/mediaViewer/MediaViewerHost.d.ts.map +1 -0
- package/lib/components/mediaViewer/MediaViewerHost.js +76 -0
- package/lib/components/mediaViewer/MediaViewerHost.js.map +1 -0
- package/lib/components/mediaViewer/MediaViewerPage.d.ts +25 -0
- package/lib/components/mediaViewer/MediaViewerPage.d.ts.map +1 -0
- package/lib/components/mediaViewer/MediaViewerPage.js +194 -0
- package/lib/components/mediaViewer/MediaViewerPage.js.map +1 -0
- package/lib/components/mediaViewer/gallery.d.ts +27 -0
- package/lib/components/mediaViewer/gallery.d.ts.map +1 -0
- package/lib/components/mediaViewer/gallery.js +41 -0
- package/lib/components/mediaViewer/gallery.js.map +1 -0
- package/lib/components/messageHighlight.d.ts +41 -0
- package/lib/components/messageHighlight.d.ts.map +1 -0
- package/lib/components/messageHighlight.js +157 -0
- package/lib/components/messageHighlight.js.map +1 -0
- package/lib/components/messagePress.d.ts +14 -0
- package/lib/components/messagePress.d.ts.map +1 -0
- package/lib/components/messagePress.js +18 -0
- package/lib/components/messagePress.js.map +1 -0
- package/lib/components/messageSelection.d.ts +39 -0
- package/lib/components/messageSelection.d.ts.map +1 -0
- package/lib/components/messageSelection.js +135 -0
- package/lib/components/messageSelection.js.map +1 -0
- package/lib/components/recordingFeedback.d.ts +22 -0
- package/lib/components/recordingFeedback.d.ts.map +1 -0
- package/lib/components/recordingFeedback.js +80 -0
- package/lib/components/recordingFeedback.js.map +1 -0
- package/lib/components/recordingMeter.d.ts +19 -0
- package/lib/components/recordingMeter.d.ts.map +1 -0
- package/lib/components/recordingMeter.js +21 -0
- package/lib/components/recordingMeter.js.map +1 -0
- package/lib/components/roundNoteChrome.d.ts +107 -0
- package/lib/components/roundNoteChrome.d.ts.map +1 -0
- package/lib/components/roundNoteChrome.js +249 -0
- package/lib/components/roundNoteChrome.js.map +1 -0
- package/lib/components/roundNotePlayers.d.ts +78 -0
- package/lib/components/roundNotePlayers.d.ts.map +1 -0
- package/lib/components/roundNotePlayers.js +230 -0
- package/lib/components/roundNotePlayers.js.map +1 -0
- package/lib/components/sendFlight.d.ts +88 -0
- package/lib/components/sendFlight.d.ts.map +1 -0
- package/lib/components/sendFlight.js +146 -0
- package/lib/components/sendFlight.js.map +1 -0
- package/lib/components/viewOnce.d.ts +27 -0
- package/lib/components/viewOnce.d.ts.map +1 -0
- package/lib/components/viewOnce.js +168 -0
- package/lib/components/viewOnce.js.map +1 -0
- package/lib/components/visionCamera.d.ts +45 -0
- package/lib/components/visionCamera.d.ts.map +1 -0
- package/lib/components/visionCamera.js +117 -0
- package/lib/components/visionCamera.js.map +1 -0
- package/lib/components/voiceEditing.d.ts +34 -0
- package/lib/components/voiceEditing.d.ts.map +1 -0
- package/lib/components/voiceEditing.js +159 -0
- package/lib/components/voiceEditing.js.map +1 -0
- package/lib/components/voiceWaveform.d.ts +108 -0
- package/lib/components/voiceWaveform.d.ts.map +1 -0
- package/lib/components/voiceWaveform.js +165 -0
- package/lib/components/voiceWaveform.js.map +1 -0
- package/lib/components/wallpaperGradient.d.ts +16 -0
- package/lib/components/wallpaperGradient.d.ts.map +1 -0
- package/lib/components/wallpaperGradient.js +186 -0
- package/lib/components/wallpaperGradient.js.map +1 -0
- package/lib/components/windowInsets.d.ts +11 -0
- package/lib/components/windowInsets.d.ts.map +1 -0
- package/lib/components/windowInsets.js +44 -0
- package/lib/components/windowInsets.js.map +1 -0
- package/lib/dayjsLocales.js +15 -2
- package/lib/dayjsLocales.js.map +1 -1
- package/lib/emoji/EmojiGrid/BackspaceButton.d.ts +11 -0
- package/lib/emoji/EmojiGrid/BackspaceButton.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/BackspaceButton.js +111 -0
- package/lib/emoji/EmojiGrid/BackspaceButton.js.map +1 -0
- package/lib/emoji/EmojiGrid/EmojiRow.d.ts +15 -0
- package/lib/emoji/EmojiGrid/EmojiRow.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/EmojiRow.js +71 -0
- package/lib/emoji/EmojiGrid/EmojiRow.js.map +1 -0
- package/lib/emoji/EmojiGrid/Search.d.ts +29 -0
- package/lib/emoji/EmojiGrid/Search.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/Search.js +234 -0
- package/lib/emoji/EmojiGrid/Search.js.map +1 -0
- package/lib/emoji/EmojiGrid/TabStrip.d.ts +16 -0
- package/lib/emoji/EmojiGrid/TabStrip.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/TabStrip.js +237 -0
- package/lib/emoji/EmojiGrid/TabStrip.js.map +1 -0
- package/lib/emoji/EmojiGrid/TonePopup.d.ts +12 -0
- package/lib/emoji/EmojiGrid/TonePopup.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/TonePopup.js +137 -0
- package/lib/emoji/EmojiGrid/TonePopup.js.map +1 -0
- package/lib/emoji/EmojiGrid/constants.d.ts +29 -0
- package/lib/emoji/EmojiGrid/constants.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/constants.js +65 -0
- package/lib/emoji/EmojiGrid/constants.js.map +1 -0
- package/lib/emoji/EmojiGrid/index.d.ts +10 -0
- package/lib/emoji/EmojiGrid/index.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/index.js +450 -0
- package/lib/emoji/EmojiGrid/index.js.map +1 -0
- package/lib/emoji/EmojiGrid/items.d.ts +25 -0
- package/lib/emoji/EmojiGrid/items.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/items.js +75 -0
- package/lib/emoji/EmojiGrid/items.js.map +1 -0
- package/lib/emoji/EmojiGrid/styles.d.ts +181 -0
- package/lib/emoji/EmojiGrid/styles.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/styles.js +184 -0
- package/lib/emoji/EmojiGrid/styles.js.map +1 -0
- package/lib/emoji/EmojiGrid/types.d.ts +53 -0
- package/lib/emoji/EmojiGrid/types.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/types.js +2 -0
- package/lib/emoji/EmojiGrid/types.js.map +1 -0
- package/lib/emoji/EmojiGrid/useTabScroll.d.ts +19 -0
- package/lib/emoji/EmojiGrid/useTabScroll.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/useTabScroll.js +124 -0
- package/lib/emoji/EmojiGrid/useTabScroll.js.map +1 -0
- package/lib/emoji/EmojiKeyboard.d.ts +79 -0
- package/lib/emoji/EmojiKeyboard.d.ts.map +1 -0
- package/lib/emoji/EmojiKeyboard.js +445 -0
- package/lib/emoji/EmojiKeyboard.js.map +1 -0
- package/lib/emoji/defaultExpandedPicker.d.ts +5 -0
- package/lib/emoji/defaultExpandedPicker.d.ts.map +1 -0
- package/lib/emoji/defaultExpandedPicker.js +11 -0
- package/lib/emoji/defaultExpandedPicker.js.map +1 -0
- package/lib/emoji/emojiData.d.ts +2 -0
- package/lib/emoji/emojiData.d.ts.map +1 -0
- package/lib/emoji/emojiData.js +5 -0
- package/lib/emoji/emojiData.js.map +1 -0
- package/lib/emoji/emojiStore.d.ts +70 -0
- package/lib/emoji/emojiStore.d.ts.map +1 -0
- package/lib/emoji/emojiStore.js +246 -0
- package/lib/emoji/emojiStore.js.map +1 -0
- package/lib/emoji/textEditing.d.ts +20 -0
- package/lib/emoji/textEditing.d.ts.map +1 -0
- package/lib/emoji/textEditing.js +97 -0
- package/lib/emoji/textEditing.js.map +1 -0
- package/lib/emojiOnly.d.ts +11 -0
- package/lib/emojiOnly.d.ts.map +1 -0
- package/lib/emojiOnly.js +79 -0
- package/lib/emojiOnly.js.map +1 -0
- package/lib/gestures/useRowSwipe.d.ts +43 -0
- package/lib/gestures/useRowSwipe.d.ts.map +1 -0
- package/lib/gestures/useRowSwipe.js +74 -0
- package/lib/gestures/useRowSwipe.js.map +1 -0
- package/lib/hooks/useAnimatedPresence.d.ts +22 -0
- package/lib/hooks/useAnimatedPresence.d.ts.map +1 -0
- package/lib/hooks/useAnimatedPresence.js +97 -0
- package/lib/hooks/useAnimatedPresence.js.map +1 -0
- package/lib/hooks/useChatMessages.d.ts +39 -0
- package/lib/hooks/useChatMessages.d.ts.map +1 -0
- package/lib/hooks/useChatMessages.js +125 -0
- package/lib/hooks/useChatMessages.js.map +1 -0
- package/lib/hooks/useColorScheme.d.ts +7 -1
- package/lib/hooks/useColorScheme.d.ts.map +1 -1
- package/lib/hooks/useColorScheme.js +46 -8
- package/lib/hooks/useColorScheme.js.map +1 -1
- package/lib/hooks/useHasKeyboardProvider.js +18 -7
- package/lib/hooks/useHasKeyboardProvider.js.map +1 -1
- package/lib/hooks/useIcons.js +15 -2
- package/lib/hooks/useIcons.js.map +1 -1
- package/lib/hooks/useIsKeyboardVisible.js +39 -17
- package/lib/hooks/useIsKeyboardVisible.js.map +1 -1
- package/lib/hooks/useIsRTL.js +15 -2
- package/lib/hooks/useIsRTL.js.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +5 -3
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +52 -18
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
- package/lib/hooks/useLabels.js +15 -2
- package/lib/hooks/useLabels.js.map +1 -1
- package/lib/hooks/useStreamingMessages.js +200 -86
- package/lib/hooks/useStreamingMessages.js.map +1 -1
- package/lib/hooks/useTheme.js +56 -7
- package/lib/hooks/useTheme.js.map +1 -1
- package/lib/hooks/useUpdateLayoutEffect.d.ts.map +1 -1
- package/lib/hooks/useUpdateLayoutEffect.js +35 -11
- package/lib/hooks/useUpdateLayoutEffect.js.map +1 -1
- package/lib/i18n.d.ts +182 -0
- package/lib/i18n.d.ts.map +1 -1
- package/lib/i18n.js +121 -23
- package/lib/i18n.js.map +1 -1
- package/lib/index.d.ts +31 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +18 -1
- package/lib/index.js.map +1 -1
- package/lib/linkParser.d.ts +2 -1
- package/lib/linkParser.d.ts.map +1 -1
- package/lib/linkParser.js +323 -185
- package/lib/linkParser.js.map +1 -1
- package/lib/locales/ar.d.ts.map +1 -1
- package/lib/locales/ar.js +110 -19
- package/lib/locales/ar.js.map +1 -1
- package/lib/locales/de.d.ts.map +1 -1
- package/lib/locales/de.js +110 -19
- package/lib/locales/de.js.map +1 -1
- package/lib/locales/es.d.ts.map +1 -1
- package/lib/locales/es.js +110 -19
- package/lib/locales/es.js.map +1 -1
- package/lib/locales/fr.d.ts.map +1 -1
- package/lib/locales/fr.js +110 -19
- package/lib/locales/fr.js.map +1 -1
- package/lib/locales/hi.d.ts.map +1 -1
- package/lib/locales/hi.js +110 -19
- package/lib/locales/hi.js.map +1 -1
- package/lib/locales/id.d.ts.map +1 -1
- package/lib/locales/id.js +110 -19
- package/lib/locales/id.js.map +1 -1
- package/lib/locales/index.js +19 -5
- package/lib/locales/index.js.map +1 -1
- package/lib/locales/it.d.ts.map +1 -1
- package/lib/locales/it.js +110 -19
- package/lib/locales/it.js.map +1 -1
- package/lib/locales/ja.d.ts.map +1 -1
- package/lib/locales/ja.js +110 -19
- package/lib/locales/ja.js.map +1 -1
- package/lib/locales/ko.d.ts.map +1 -1
- package/lib/locales/ko.js +110 -19
- package/lib/locales/ko.js.map +1 -1
- package/lib/locales/nl.d.ts.map +1 -1
- package/lib/locales/nl.js +110 -19
- package/lib/locales/nl.js.map +1 -1
- package/lib/locales/pl.d.ts.map +1 -1
- package/lib/locales/pl.js +110 -19
- package/lib/locales/pl.js.map +1 -1
- package/lib/locales/pt.d.ts.map +1 -1
- package/lib/locales/pt.js +110 -19
- package/lib/locales/pt.js.map +1 -1
- package/lib/locales/ru.d.ts.map +1 -1
- package/lib/locales/ru.js +110 -19
- package/lib/locales/ru.js.map +1 -1
- package/lib/locales/tr.d.ts.map +1 -1
- package/lib/locales/tr.js +110 -19
- package/lib/locales/tr.js.map +1 -1
- package/lib/locales/zh.d.ts.map +1 -1
- package/lib/locales/zh.js +110 -19
- package/lib/locales/zh.js.map +1 -1
- package/lib/logging.d.ts +5 -0
- package/lib/logging.d.ts.map +1 -1
- package/lib/logging.js +13 -1
- package/lib/logging.js.map +1 -1
- package/lib/messageUtils.d.ts +19 -0
- package/lib/messageUtils.d.ts.map +1 -0
- package/lib/messageUtils.js +61 -0
- package/lib/messageUtils.js.map +1 -0
- package/lib/motion.d.ts +21 -0
- package/lib/motion.d.ts.map +1 -0
- package/lib/motion.js +30 -0
- package/lib/motion.js.map +1 -0
- package/lib/optional/index.d.ts +99 -0
- package/lib/optional/index.d.ts.map +1 -0
- package/lib/optional/index.js +284 -0
- package/lib/optional/index.js.map +1 -0
- package/lib/rtl.js +7 -5
- package/lib/rtl.js.map +1 -1
- package/lib/store.d.ts +40 -0
- package/lib/store.d.ts.map +1 -0
- package/lib/store.js +127 -0
- package/lib/store.js.map +1 -0
- package/lib/styles.d.ts +2 -2
- package/lib/styles.d.ts.map +1 -1
- package/lib/styles.js +15 -15
- package/lib/styles.js.map +1 -1
- package/lib/types.js +1 -0
- package/lib/types.js.map +1 -1
- package/lib/utils.d.ts +15 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +199 -94
- package/lib/utils.js.map +1 -1
- package/llms.txt +133 -31
- package/package.json +89 -46
- package/lib/InputToolbar.d.ts +0 -49
- package/lib/InputToolbar.d.ts.map +0 -1
- package/lib/InputToolbar.js +0 -338
- package/lib/InputToolbar.js.map +0 -1
- package/lib/MessageVideo.d.ts.map +0 -1
- package/lib/MessageVideo.js +0 -162
- package/lib/MessageVideo.js.map +0 -1
- package/lib/MessagesContainer/FlashList.d.ts +0 -9
- package/lib/MessagesContainer/FlashList.d.ts.map +0 -1
- package/lib/MessagesContainer/FlashList.js +0 -23
- package/lib/MessagesContainer/FlashList.js.map +0 -1
- package/lib/components/ContextMenu.d.ts +0 -25
- package/lib/components/ContextMenu.d.ts.map +0 -1
- package/lib/components/ContextMenu.js +0 -122
- package/lib/components/ContextMenu.js.map +0 -1
- package/lib/components/VideoNoteRecorder.d.ts.map +0 -1
- package/lib/components/VideoNoteRecorder.js +0 -634
- package/lib/components/VideoNoteRecorder.js.map +0 -1
- package/lib/components/VoiceMessageInput.d.ts +0 -33
- package/lib/components/VoiceMessageInput.d.ts.map +0 -1
- package/lib/components/VoiceMessageInput.js +0 -403
- package/lib/components/VoiceMessageInput.js.map +0 -1
- package/lib/components/WaveformPlayer.d.ts +0 -19
- package/lib/components/WaveformPlayer.d.ts.map +0 -1
- package/lib/components/WaveformPlayer.js +0 -367
- package/lib/components/WaveformPlayer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaPlayback.js","sourceRoot":"","sources":["../../src/components/mediaPlayback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAA;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,IAAiB,EAAE,EAAE;IAC7D,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,OAAO;QACxC,IAAI,OAAO,KAAK,EAAE;YAChB,IAAI,CAAC;gBACH,SAAS,EAAE,CAAA;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,yDAAyD;YAC3D,CAAC;IAEL,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AACvB,CAAC,CAAA;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE;IAC5C,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"mediaPlayback.js","names":["createContext","useContext","useEffect","useLayoutEffect","useRef","useSyncExternalStore","createNotePlayerCache","detachRoundNote","players","Map","claimPlayback","id","stop","otherId","stopOther","clear","set","releasePlayback","delete","stopAllPlayback","values","PLAYBACK_RATES","PLAYBACK_RATE_PRESETS","playbackRate","rateListeners","Set","getPlaybackRate","setPlaybackRate","rate","Number","isFinite","listener","nextPlaybackRate","index","indexOf","length","subscribeRate","add","usePlaybackRate","subscribePlaybackRate","isPlayableNote","message","audio","video","videoNote","createMediaPlaybackController","messages","isInverted","options","isAutoPlayNextEnabled","isRoundVideoAutoplayEnabled","entries","nearEarListeners","grownNote","grownTimeShift","grownListeners","scroller","nowPlaying","nowPlayingListeners","notifyNowPlaying","forEach","viewable","viewableListeners","floatingNote","floatingListeners","notePlayers","setViewableMessages","messageIds","next","size","every","has","isMessageViewable","messageId","undefined","subscribeViewable","setFloatingNote","getFloatingNote","subscribeFloatingNote","setNowPlaying","entry","clearNowPlaying","getNowPlaying","subscribeNowPlaying","getMessage","find","_id","setScroller","scrollToMessage","setGrownNote","timeShift","getGrownTimeShift","getGrownNote","subscribeGrownNote","setMessages","inverted","setOptions","wasNearEar","isNearEar","subscribeNearEar","getOptions","markRead","m","isMediaUnread","onMediaRead","register","get","onEnded","findIndex","step","i","play","MediaPlaybackContext","LiftedPlaybackContext","noteGrowShifts","liftedMedia","liftedListeners","subscribeLifted","setMediaLifted","key","isLifted","useIsMediaLifted","$","_c","t0","_temp","useReadablePlayback","controller","lifted","usePlaylistEntry","playRef","current","t1","t2","onEndedRef","_temp2","t3","useNotePlaybackOptions","markReadRef","_temp3","t4","onTranscribe","t5","onViewOnceEnd","t6","noSubscription","useIsNoteGrown","_temp4","useReportNoteGrown","isGrown","useNoteTimeShift","_temp5","useReportNowPlaying","kind","isCurrent","isPlaying","toggle","player","actionsRef","useScrollToMessage","useNowPlaying","_temp6","useIsNearEar","_temp7","useIsMessageViewable","_temp8","useIsNoteFloating","_temp9","sharedNotePlayers","useNotePlayerCache","detachRoundNoteFromRow","cache","cacheKey","canFloat","isActive","isFloatingRoundNoteEnabled","pause","keep","claim","unclaim","getRate","report","state","useMediaPlaybackController"],"sources":["../../src/components/mediaPlayback.ts"],"sourcesContent":["import { createContext, useContext, useEffect, useLayoutEffect, useRef, useSyncExternalStore } from 'react'\nimport { NotePlayer, NotePlayerCache, createNotePlayerCache, detachRoundNote } from './roundNotePlayers'\n\n/**\n * Module-level registry so only one piece of media plays at a time.\n *\n * Every voice note and round video note owns its own player, and nothing\n * coordinated them: starting a second note left the first one playing, and a\n * chat with several round notes played all of them at once. Now the current\n * one always stops when a new one starts.\n *\n * Deliberately not React context - bubbles are recycled by the list, and the\n * registry has to outlive individual mounts to stop a player whose row has\n * already scrolled away.\n */\n\n/**\n * Why a player is told to stop. `replaced`: another note started, so this one\n * is no longer current and resets its progress. `paused`: something else took the audio (a\n * recording), so it pauses and stays current.\n */\nexport type StopReason = 'replaced' | 'paused'\n\ntype StopHandler = (reason: StopReason) => void\n\nconst players = new Map<string, StopHandler>()\n\n/**\n * Claim playback for `id`, stopping whatever else was playing.\n * Call when a player actually starts. A paused note may keep its claim, so a\n * later note can still reset it.\n */\nexport const claimPlayback = (id: string, stop: StopHandler) => {\n for (const [otherId, stopOther] of players)\n if (otherId !== id)\n try {\n stopOther('replaced')\n } catch {\n // a player that fails to stop must not block the new one\n }\n\n players.clear()\n players.set(id, stop)\n}\n\n/** Give up the claim (on completion, reset or unmount). */\nexport const releasePlayback = (id: string) => {\n players.delete(id)\n}\n\n/**\n * Pause whatever is playing. Recording calls this first: opening the mic takes\n * audio focus, which pauses the playing note - otherwise it would bleed straight into the new take. The\n * paused note keeps its claim and stays current.\n */\nexport const stopAllPlayback = () => {\n for (const stop of [...players.values()])\n try {\n stop('paused')\n } catch {\n // a player that fails to stop must not block the others\n }\n}\n\n/** A tap of the speed pill cycles through these. */\nexport const PLAYBACK_RATES = [1, 1.5, 2] as const\n\n/**\n * The presets a long press on the speed pill offers: Slow, Normal, Medium,\n * Fast, Very fast and Super fast.\n */\nexport const PLAYBACK_RATE_PRESETS = [0.5, 1, 1.2, 1.5, 1.7, 2] as const\n\n/*\n * One playback speed for every voice and round note: picking 2x on one note keeps 2x for\n * the next instead of resetting each bubble to 1x. Module-level so it survives\n * rows being recycled; apps that want it across launches persist it through\n * `mediaPlayback.onPlaybackRateChange` and hand it back as `playbackRate`.\n */\nlet playbackRate = 1\nconst rateListeners = new Set<() => void>()\n\nexport const getPlaybackRate = () => playbackRate\n\nexport const setPlaybackRate = (rate: number) => {\n if (!Number.isFinite(rate) || rate <= 0 || rate === playbackRate)\n return\n\n playbackRate = rate\n for (const listener of rateListeners)\n listener()\n}\n\n/** The next step on the speed pill after `rate`. */\nexport const nextPlaybackRate = (rate: number) => {\n const index = PLAYBACK_RATES.indexOf(rate as typeof PLAYBACK_RATES[number])\n return PLAYBACK_RATES[(index + 1) % PLAYBACK_RATES.length]\n}\n\nconst subscribeRate = (listener: () => void) => {\n rateListeners.add(listener)\n return () => {\n rateListeners.delete(listener)\n }\n}\n\n/** The shared playback speed, re-rendering when any note changes it. */\nexport const usePlaybackRate = () =>\n useSyncExternalStore(subscribeRate, getPlaybackRate, getPlaybackRate)\n\nexport const subscribePlaybackRate = (listener: (rate: number) => void) =>\n subscribeRate(() => listener(playbackRate))\n\n/** What a message needs for the \"play the next note\" lookup. */\ninterface PlaylistMessage {\n _id: string | number\n audio?: string\n video?: string\n videoNote?: boolean\n isMediaUnread?: boolean\n}\n\n/** Chat-level playback options, from the `mediaPlayback` prop. */\nexport interface MediaPlaybackOptions {\n isAutoPlayNextEnabled: boolean\n isRoundVideoAutoplayEnabled: boolean\n onMediaRead?: (message: any) => void\n isNearEar?: boolean\n onTranscribe?: (message: any) => void\n onViewOnceEnd?: (message: any) => void\n isFloatingRoundNoteEnabled?: boolean\n}\n\n/** A mounted player the controller can start when the previous note ends. */\ninterface PlaylistEntry {\n play: () => void\n}\n\n/**\n * Per-chat coordinator for auto-playing the next note. When a voice or round\n * note finishes on its own, playback moves on to the next newer voice/round\n * message in the chat, so a run of notes plays as one.\n *\n * The chat feeds it the current messages on every render (a ref write, no\n * re-render), and players register by message id while they are mounted. The\n * next note can only be started if its row is mounted - the list virtualizes,\n * but the next note sits right below the current one, so it nearly always is.\n */\nexport interface MediaPlaybackController {\n setMessages: (messages: readonly PlaylistMessage[], isInverted: boolean) => void\n setOptions: (options: MediaPlaybackOptions) => void\n getOptions: () => MediaPlaybackOptions\n /** Notified when `isNearEar` flips (raise to listen). */\n subscribeNearEar: (listener: () => void) => () => void\n register: (messageId: string | number, entry: PlaylistEntry) => () => void\n /** Called by a player whose note reached its end without being paused. */\n onEnded: (messageId: string | number) => void\n /**\n * An incoming unread note started playing: report it, since playing\n * marks the content read.\n */\n markRead: (messageId: string | number) => void\n /**\n * The round note grown to play, if any. Its row hides the sender's avatar\n * meanwhile.\n */\n setGrownNote: (messageId: string | number | null, timeShift?: number) => void\n getGrownNote: () => string | number | null\n /**\n * How far the grown note's right edge moved from where it rests, so the\n * bubble can carry the sent time along with the circle.\n */\n getGrownTimeShift: () => number\n subscribeGrownNote: (listener: () => void) => () => void\n /**\n * The note that owns playback, playing or paused, for the \"now playing\" bar\n * at the top of the chat.\n */\n setNowPlaying: (entry: NowPlayingEntry | null) => void\n /** Clears the bar only if `messageId` still owns it. */\n clearNowPlaying: (messageId: string | number) => void\n getNowPlaying: () => NowPlayingEntry | null\n subscribeNowPlaying: (listener: () => void) => () => void\n getMessage: (messageId: string | number) => PlaylistMessage | undefined\n /** Set by the chat: scrolls the list so a message sits mid-screen. */\n setScroller: (scroll: ((messageId: string | number) => void) | null) => void\n /**\n * Centres a message in the list, used when a round note starts playing.\n */\n scrollToMessage: (messageId: string | number) => void\n /**\n * The messages whose rows are at least partly on screen, from the list's\n * viewability. The playing round note floats once its row is no longer\n * among them.\n */\n setViewableMessages: (messageIds: readonly (string | number)[]) => void\n /** `undefined` until the list first reports, so nothing floats before layout. */\n isMessageViewable: (messageId: string | number) => boolean | undefined\n subscribeViewable: (listener: () => void) => () => void\n /** The round note drawn floating over the list, while its view is mounted. */\n setFloatingNote: (messageId: string | number | null) => void\n getFloatingNote: () => string | number | null\n subscribeFloatingNote: (listener: () => void) => () => void\n /** Round note players, which outlive their rows while the note is current. */\n notePlayers: NotePlayerCache\n}\n\n/** What the \"now playing\" bar shows and controls. */\nexport interface NowPlayingEntry {\n messageId: string | number\n kind: 'voice' | 'round'\n isPlaying: boolean\n toggle: () => void\n stop: () => void\n /** A round note's expo-video player, so the floating note shows the same video. */\n player?: unknown\n}\n\nconst isPlayableNote = (message: PlaylistMessage) =>\n !!message.audio || (!!message.video && !!message.videoNote)\n\nexport const createMediaPlaybackController = (): MediaPlaybackController => {\n let messages: readonly PlaylistMessage[] = []\n let isInverted = true\n let options: MediaPlaybackOptions = { isAutoPlayNextEnabled: true, isRoundVideoAutoplayEnabled: false }\n const entries = new Map<string | number, PlaylistEntry>()\n const nearEarListeners = new Set<() => void>()\n let grownNote: string | number | null = null\n let grownTimeShift = 0\n const grownListeners = new Set<() => void>()\n let scroller: ((messageId: string | number) => void) | null = null\n let nowPlaying: NowPlayingEntry | null = null\n const nowPlayingListeners = new Set<() => void>()\n const notifyNowPlaying = () => nowPlayingListeners.forEach(listener => listener())\n let viewable: Set<string | number> | null = null\n const viewableListeners = new Set<() => void>()\n let floatingNote: string | number | null = null\n const floatingListeners = new Set<() => void>()\n const notePlayers = createNotePlayerCache()\n\n return {\n notePlayers,\n setViewableMessages (messageIds) {\n const next = new Set(messageIds)\n if (viewable && viewable.size === next.size && [...next].every(id => viewable!.has(id)))\n return\n viewable = next\n viewableListeners.forEach(listener => listener())\n },\n isMessageViewable (messageId) {\n return viewable ? viewable.has(messageId) : undefined\n },\n subscribeViewable (listener) {\n viewableListeners.add(listener)\n return () => {\n viewableListeners.delete(listener)\n }\n },\n setFloatingNote (messageId) {\n if (floatingNote === messageId)\n return\n floatingNote = messageId\n floatingListeners.forEach(listener => listener())\n },\n getFloatingNote () {\n return floatingNote\n },\n subscribeFloatingNote (listener) {\n floatingListeners.add(listener)\n return () => {\n floatingListeners.delete(listener)\n }\n },\n setNowPlaying (entry) {\n nowPlaying = entry\n notifyNowPlaying()\n },\n clearNowPlaying (messageId) {\n if (nowPlaying?.messageId !== messageId)\n return\n nowPlaying = null\n notifyNowPlaying()\n },\n getNowPlaying () {\n return nowPlaying\n },\n subscribeNowPlaying (listener) {\n nowPlayingListeners.add(listener)\n return () => {\n nowPlayingListeners.delete(listener)\n }\n },\n getMessage (messageId) {\n return messages.find(message => message._id === messageId)\n },\n setScroller (next) {\n scroller = next\n },\n scrollToMessage (messageId) {\n scroller?.(messageId)\n },\n setGrownNote (messageId, timeShift = 0) {\n if (grownNote === messageId && grownTimeShift === timeShift)\n return\n grownTimeShift = messageId == null ? 0 : timeShift\n grownNote = messageId\n grownListeners.forEach(listener => listener())\n },\n getGrownTimeShift () {\n return grownTimeShift\n },\n getGrownNote () {\n return grownNote\n },\n subscribeGrownNote (listener) {\n grownListeners.add(listener)\n return () => {\n grownListeners.delete(listener)\n }\n },\n setMessages (next, inverted) {\n messages = next\n isInverted = inverted\n },\n setOptions (next) {\n const wasNearEar = !!options.isNearEar\n options = next\n // Rows do not re-render when the chat's options change, so the sensor\n // reaches players through a subscription.\n if (wasNearEar !== !!next.isNearEar)\n nearEarListeners.forEach(listener => listener())\n },\n subscribeNearEar (listener) {\n nearEarListeners.add(listener)\n return () => {\n nearEarListeners.delete(listener)\n }\n },\n getOptions () {\n return options\n },\n markRead (messageId) {\n const message = messages.find(m => m._id === messageId)\n if (message?.isMediaUnread)\n options.onMediaRead?.(message)\n },\n register (messageId, entry) {\n entries.set(messageId, entry)\n return () => {\n if (entries.get(messageId) === entry)\n entries.delete(messageId)\n }\n },\n onEnded (messageId) {\n if (!options.isAutoPlayNextEnabled)\n return\n\n const index = messages.findIndex(message => message._id === messageId)\n if (index < 0)\n return\n\n // An inverted list keeps the newest message first, so \"newer\" walks\n // towards index 0; a non-inverted one walks the other way.\n const step = isInverted ? -1 : 1\n for (let i = index + step; i >= 0 && i < messages.length; i += step) {\n const message = messages[i]\n if (!isPlayableNote(message))\n continue\n\n entries.get(message._id)?.play()\n return\n }\n },\n }\n}\n\nexport const MediaPlaybackContext = createContext<MediaPlaybackController | null>(null)\n\n/**\n * Inside the long-press copy of a message: the chat's playback, to show (never drive). The copy\n * sits over its hidden original while the menu is open; its media mirrors what the original is\n * playing, as Telegram's lifted message does, instead of starting a player of its own.\n */\nexport const LiftedPlaybackContext = createContext<MediaPlaybackController | null>(null)\n\n/**\n * The horizontal shift of each grown round note, by its player key, so a lifted copy of it sits\n * exactly over the original.\n */\nexport const noteGrowShifts = new Map<string, number>()\n\n// Media a lifted copy is showing, by player key. On Android a player draws into one view at a\n// time, so the hidden original lets go of it while the copy holds it, and takes it back after.\nconst liftedMedia = new Set<string>()\nconst liftedListeners = new Set<() => void>()\nconst subscribeLifted = (listener: () => void) => {\n liftedListeners.add(listener)\n return () => {\n liftedListeners.delete(listener)\n }\n}\n\n/** A lifted copy started (or stopped) showing the media under `key`. */\nexport const setMediaLifted = (key: string, isLifted: boolean) => {\n if (isLifted)\n liftedMedia.add(key)\n else\n liftedMedia.delete(key)\n liftedListeners.forEach(listener => listener())\n}\n\n/** Whether a lifted copy is showing the media under `key`. */\nexport const useIsMediaLifted = (key: string) => useSyncExternalStore(\n subscribeLifted,\n () => liftedMedia.has(key),\n () => false\n)\n\n/** The chat's controller, or, inside a lifted copy, the one it mirrors. Read-only uses only. */\nconst useReadablePlayback = () => {\n const controller = useContext(MediaPlaybackContext)\n const lifted = useContext(LiftedPlaybackContext)\n return controller ?? lifted\n}\n\n/**\n * Registers a player for auto-play-next and returns the `onEnded` callback it\n * should fire when its note finishes on its own. A no-op outside a `Chat`, or\n * when the message id is unknown.\n */\nexport const usePlaylistEntry = (messageId: string | number | undefined, play: () => void) => {\n const controller = useContext(MediaPlaybackContext)\n const playRef = useRef(play)\n useLayoutEffect(() => {\n playRef.current = play\n })\n\n useEffect(() => {\n if (!controller || messageId == null)\n return\n\n return controller.register(messageId, { play: () => playRef.current() })\n }, [controller, messageId])\n\n const onEndedRef = useRef(() => {})\n useLayoutEffect(() => {\n onEndedRef.current = () => {\n if (controller && messageId != null)\n controller.onEnded(messageId)\n }\n })\n\n return onEndedRef\n}\n\n/**\n * Whether round notes loop silently in the list, and a callback that reports\n * an incoming unread note as read. Both are no-ops outside a `Chat`.\n */\nexport const useNotePlaybackOptions = (messageId: string | number | undefined) => {\n const controller = useContext(MediaPlaybackContext)\n const markReadRef = useRef(() => {})\n useLayoutEffect(() => {\n markReadRef.current = () => {\n if (controller && messageId != null)\n controller.markRead(messageId)\n }\n })\n\n const options = controller?.getOptions()\n return {\n isRoundVideoAutoplayEnabled: options?.isRoundVideoAutoplayEnabled ?? false,\n isNearEar: options?.isNearEar ?? false,\n onTranscribe: options?.onTranscribe,\n onViewOnceEnd: options?.onViewOnceEnd,\n markReadRef,\n }\n}\n\nconst noSubscription = () => () => {}\n\n/** Whether this message's round note is grown to play; false outside a `Chat`. */\nexport const useIsNoteGrown = (messageId: string | number | undefined) => {\n const controller = useReadablePlayback()\n return useSyncExternalStore(\n controller?.subscribeGrownNote ?? noSubscription,\n () => messageId != null && controller?.getGrownNote() === messageId,\n () => false\n )\n}\n\n/** Reports this note growing or shrinking back, so its row can hide the avatar. */\nexport const useReportNoteGrown = (messageId: string | number | undefined, isGrown: boolean, timeShift = 0) => {\n const controller = useContext(MediaPlaybackContext)\n useEffect(() => {\n if (!controller || messageId == null || !isGrown)\n return\n\n controller.setGrownNote(messageId, timeShift)\n }, [controller, messageId, isGrown, timeShift])\n\n useEffect(() => {\n if (!controller || messageId == null || !isGrown)\n return\n\n return () => {\n if (controller.getGrownNote() === messageId)\n controller.setGrownNote(null)\n }\n }, [controller, messageId, isGrown])\n}\n\n/** How far this message's grown round note moved its right edge; 0 at rest. */\nexport const useNoteTimeShift = (messageId: string | number | undefined) => {\n const controller = useReadablePlayback()\n return useSyncExternalStore(\n controller?.subscribeGrownNote ?? noSubscription,\n () => messageId != null && controller?.getGrownNote() === messageId ? controller.getGrownTimeShift() : 0,\n () => 0\n )\n}\n\n/**\n * Puts this note in the \"now playing\" bar while it owns playback, playing or\n * paused, and takes it out when it stops, is replaced or unmounts.\n */\nexport const useReportNowPlaying = (\n messageId: string | number | undefined,\n kind: 'voice' | 'round',\n isCurrent: boolean,\n isPlaying: boolean,\n toggle: () => void,\n stop: () => void,\n player?: unknown\n) => {\n const controller = useContext(MediaPlaybackContext)\n const actionsRef = useRef({ toggle, stop })\n useLayoutEffect(() => {\n actionsRef.current = { toggle, stop }\n })\n\n useEffect(() => {\n if (!controller || messageId == null || !isCurrent)\n return\n\n controller.setNowPlaying({\n messageId,\n kind,\n isPlaying,\n toggle: () => actionsRef.current.toggle(),\n stop: () => actionsRef.current.stop(),\n player,\n })\n }, [controller, messageId, kind, isCurrent, isPlaying, player])\n\n useEffect(() => {\n if (!controller || messageId == null || !isCurrent)\n return\n\n return () => controller.clearNowPlaying(messageId)\n }, [controller, messageId, isCurrent])\n}\n\n/** Centres a message in the chat's list; a no-op outside a `Chat`. */\nexport const useScrollToMessage = () => {\n const controller = useContext(MediaPlaybackContext)\n return (messageId: string | number | undefined) => {\n if (controller && messageId != null)\n controller.scrollToMessage(messageId)\n }\n}\n\n/** The note in the \"now playing\" bar, or null; null outside a `Chat`. */\nexport const useNowPlaying = () => {\n const controller = useContext(MediaPlaybackContext)\n return useSyncExternalStore(\n controller?.subscribeNowPlaying ?? noSubscription,\n () => controller?.getNowPlaying() ?? null,\n () => null\n )\n}\n\n/** The phone is held to the ear (raise to listen); false outside a `Chat`. */\nexport const useIsNearEar = () => {\n const controller = useContext(MediaPlaybackContext)\n return useSyncExternalStore(\n controller?.subscribeNearEar ?? noSubscription,\n () => !!controller?.getOptions().isNearEar,\n () => false\n )\n}\n\n/**\n * Whether a message's row is on screen: `undefined` outside a `Chat` or before\n * the list has reported, so callers can tell \"scrolled away\" from \"unknown\".\n */\nexport const useIsMessageViewable = (messageId: string | number | undefined) => {\n const controller = useContext(MediaPlaybackContext)\n return useSyncExternalStore(\n controller?.subscribeViewable ?? noSubscription,\n () => (controller && messageId != null ? controller.isMessageViewable(messageId) : undefined),\n () => undefined\n )\n}\n\n/** Whether this message's round note is currently drawn floating over the list. */\nexport const useIsNoteFloating = (messageId: string | number | undefined) => {\n const controller = useContext(MediaPlaybackContext)\n return useSyncExternalStore(\n controller?.subscribeFloatingNote ?? noSubscription,\n () => messageId != null && controller?.getFloatingNote() === messageId,\n () => false\n )\n}\n\n// Round notes rendered outside a `Chat` still borrow their players from a\n// cache, so React's strict effects (unmount, mount again) do not release a\n// player that is still on screen.\nconst sharedNotePlayers = createNotePlayerCache()\n\n/** The chat's round note players, or a shared cache outside a `Chat`. */\nexport const useNotePlayerCache = () => {\n const controller = useContext(MediaPlaybackContext)\n return controller?.notePlayers ?? sharedNotePlayers\n}\n\n/**\n * Hands a current round note whose row is unmounting over to a detached\n * session, so it keeps playing (and floating) until it ends, another note\n * starts, or its row mounts again and takes it back. Without a `Chat`, or\n * while the chat itself is going away, the note just stops.\n */\nexport const detachRoundNoteFromRow = (\n controller: MediaPlaybackController | null,\n cache: NotePlayerCache,\n cacheKey: string | number,\n messageId: string | number | undefined,\n player: NotePlayer,\n isPlaying: boolean,\n /** False for a note that must not outlive its row (a view-once one). */\n canFloat = true\n) => {\n if (\n !canFloat ||\n !controller ||\n messageId == null ||\n !cache.isActive() ||\n controller.getOptions().isFloatingRoundNoteEnabled === false\n ) {\n try {\n player.pause()\n } catch {\n // already torn down\n }\n cache.keep(cacheKey, false)\n return\n }\n\n detachRoundNote(cacheKey, player, isPlaying, {\n cache,\n claim: claimPlayback,\n unclaim: releasePlayback,\n getRate: getPlaybackRate,\n subscribeRate: subscribePlaybackRate,\n report: state => {\n if (state)\n controller.setNowPlaying({ messageId, kind: 'round', player, ...state })\n else\n controller.clearNowPlaying(messageId)\n },\n onEnded: () => controller.onEnded(messageId),\n })\n}\n\n/** The chat's playback controller, or `null` outside a `Chat`. */\nexport const useMediaPlaybackController = () => useContext(MediaPlaybackContext)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IMessage, MediaTransferProps } from '../Models';
|
|
2
|
+
/**
|
|
3
|
+
* The app's download and cancel handlers, read at press time so a new handler
|
|
4
|
+
* on every render of `Chat` never re-renders a bubble.
|
|
5
|
+
*/
|
|
6
|
+
export interface MediaTransferController {
|
|
7
|
+
get: () => MediaTransferProps | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare const createMediaTransferController: () => {
|
|
10
|
+
get: () => MediaTransferProps | undefined;
|
|
11
|
+
set: (next: MediaTransferProps | undefined) => void;
|
|
12
|
+
};
|
|
13
|
+
export declare const MediaTransferContext: import("react").Context<MediaTransferController | null>;
|
|
14
|
+
/** The handlers `Chat` was given; empty outside a `Chat`. */
|
|
15
|
+
export declare const useMediaTransfer: () => {
|
|
16
|
+
onDownload: (message: IMessage) => void | undefined;
|
|
17
|
+
onCancel: (message: IMessage) => void | undefined;
|
|
18
|
+
hasDownloadHandler: () => boolean;
|
|
19
|
+
};
|
|
20
|
+
/** What a media button shows for a message's `transfer` / `isDownloadRequired`. */
|
|
21
|
+
export declare const transferState: (message: IMessage | undefined) => {
|
|
22
|
+
icon: "cancel";
|
|
23
|
+
progress: number;
|
|
24
|
+
} | {
|
|
25
|
+
icon: "download";
|
|
26
|
+
progress: number;
|
|
27
|
+
} | null;
|
|
28
|
+
export declare const clampProgress: (value: number | undefined) => number;
|
|
29
|
+
//# sourceMappingURL=mediaTransfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaTransfer.d.ts","sourceRoot":"","sources":["../../src/components/mediaTransfer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAExD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,kBAAkB,GAAG,SAAS,CAAA;CAC1C;AAED,eAAO,MAAM,6BAA6B;;gBAI1B,kBAAkB,GAAG,SAAS;CAI7C,CAAA;AAED,eAAO,MAAM,oBAAoB,yDAAsD,CAAA;AAEvF,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB;0BAGH,QAAQ;wBACV,QAAQ;;CAG/B,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,aAAa,GAAI,SAAS,QAAQ,GAAG,SAAS;;;;;;QAM1D,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,GAAG,SAAS,WACyB,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { c as _c } from "react/compiler-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The app's download and cancel handlers, read at press time so a new handler
|
|
6
|
+
* on every render of `Chat` never re-renders a bubble.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const createMediaTransferController = () => {
|
|
10
|
+
let props;
|
|
11
|
+
return {
|
|
12
|
+
get: () => props,
|
|
13
|
+
set: next => {
|
|
14
|
+
props = next;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export const MediaTransferContext = createContext(null);
|
|
19
|
+
|
|
20
|
+
/** The handlers `Chat` was given; empty outside a `Chat`. */
|
|
21
|
+
export const useMediaTransfer = () => {
|
|
22
|
+
const $ = _c(2);
|
|
23
|
+
const controller = useContext(MediaTransferContext);
|
|
24
|
+
let t0;
|
|
25
|
+
if ($[0] !== controller) {
|
|
26
|
+
t0 = {
|
|
27
|
+
onDownload: message => controller?.get()?.onDownload?.(message),
|
|
28
|
+
onCancel: message_0 => controller?.get()?.onCancel?.(message_0),
|
|
29
|
+
hasDownloadHandler: () => !!controller?.get()?.onDownload
|
|
30
|
+
};
|
|
31
|
+
$[0] = controller;
|
|
32
|
+
$[1] = t0;
|
|
33
|
+
} else {
|
|
34
|
+
t0 = $[1];
|
|
35
|
+
}
|
|
36
|
+
return t0;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/** What a media button shows for a message's `transfer` / `isDownloadRequired`. */
|
|
40
|
+
export const transferState = message => {
|
|
41
|
+
if (message?.transfer) return {
|
|
42
|
+
icon: 'cancel',
|
|
43
|
+
progress: clampProgress(message.transfer.progress)
|
|
44
|
+
};
|
|
45
|
+
if (message?.isDownloadRequired) return {
|
|
46
|
+
icon: 'download',
|
|
47
|
+
progress: 0
|
|
48
|
+
};
|
|
49
|
+
return null;
|
|
50
|
+
};
|
|
51
|
+
export const clampProgress = value => value == null || !Number.isFinite(value) ? 0 : Math.max(0, Math.min(1, value));
|
|
52
|
+
//# sourceMappingURL=mediaTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaTransfer.js","names":["createContext","useContext","createMediaTransferController","props","get","set","next","MediaTransferContext","useMediaTransfer","$","_c","controller","t0","onDownload","message","onCancel","message_0","hasDownloadHandler","transferState","transfer","icon","progress","clampProgress","isDownloadRequired","value","Number","isFinite","Math","max","min"],"sources":["../../src/components/mediaTransfer.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport { IMessage, MediaTransferProps } from '../Models'\n\n/**\n * The app's download and cancel handlers, read at press time so a new handler\n * on every render of `Chat` never re-renders a bubble.\n */\nexport interface MediaTransferController {\n get: () => MediaTransferProps | undefined\n}\n\nexport const createMediaTransferController = () => {\n let props: MediaTransferProps | undefined\n return {\n get: () => props,\n set: (next: MediaTransferProps | undefined) => {\n props = next\n },\n }\n}\n\nexport const MediaTransferContext = createContext<MediaTransferController | null>(null)\n\n/** The handlers `Chat` was given; empty outside a `Chat`. */\nexport const useMediaTransfer = () => {\n const controller = useContext(MediaTransferContext)\n return {\n onDownload: (message: IMessage) => controller?.get()?.onDownload?.(message),\n onCancel: (message: IMessage) => controller?.get()?.onCancel?.(message),\n hasDownloadHandler: () => !!controller?.get()?.onDownload,\n }\n}\n\n/** What a media button shows for a message's `transfer` / `isDownloadRequired`. */\nexport const transferState = (message: IMessage | undefined) => {\n if (message?.transfer)\n return { icon: 'cancel' as const, progress: clampProgress(message.transfer.progress) }\n if (message?.isDownloadRequired)\n return { icon: 'download' as const, progress: 0 }\n return null\n}\n\nexport const clampProgress = (value: number | undefined) =>\n value == null || !Number.isFinite(value) ? 0 : Math.max(0, Math.min(1, value))\n"],"mappings":";AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAIjD;AACA;AACA;AACA;;AAKA,OAAO,MAAMC,6BAA6B,GAAGA,CAAA,KAAM;EACjD,IAAIC,KAAqC;EACzC,OAAO;IACLC,GAAG,EAAEA,CAAA,KAAMD,KAAK;IAChBE,GAAG,EAAGC,IAAoC,IAAK;MAC7CH,KAAK,GAAGG,IAAI;IACd;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGP,aAAa,CAAiC,IAAI,CAAC;;AAEvF;AACA,OAAO,MAAMQ,gBAAgB,GAAGA,CAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAC9B,MAAAC,UAAA,GAAmBV,UAAU,CAACM,oBAAoB,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAAH,CAAA,QAAAE,UAAA;IAC5CC,EAAA;MAAAC,UAAA,EACOC,OAAA,IAAuBH,UAAU,EAAAP,GAAO,CAAW,CAAC,EAAAS,UAAW,GAARC,OAAO,CAAC;MAAAC,QAAA,EACjEC,SAAA,IAAuBL,UAAU,EAAAP,GAAO,CAAS,CAAC,EAAAW,QAAW,GAARD,SAAO,CAAC;MAAAG,kBAAA,EACnDA,CAAA,KAAM,CAAC,CAACN,UAAU,EAAAP,GAAO,CAAW,CAAC,EAAAS;IAC3D,CAAC;IAAAJ,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,OAJMG,EAIN;AAAA,CACF;;AAED;AACA,OAAO,MAAMM,aAAa,GAAIJ,OAA6B,IAAK;EAC9D,IAAIA,OAAO,EAAEK,QAAQ,EACnB,OAAO;IAAEC,IAAI,EAAE,QAAiB;IAAEC,QAAQ,EAAEC,aAAa,CAACR,OAAO,CAACK,QAAQ,CAACE,QAAQ;EAAE,CAAC;EACxF,IAAIP,OAAO,EAAES,kBAAkB,EAC7B,OAAO;IAAEH,IAAI,EAAE,UAAmB;IAAEC,QAAQ,EAAE;EAAE,CAAC;EACnD,OAAO,IAAI;AACb,CAAC;AAED,OAAO,MAAMC,aAAa,GAAIE,KAAyB,IACrDA,KAAK,IAAI,IAAI,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,GAAG,CAAC,GAAGG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEL,KAAK,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ImageProps } from 'react-native';
|
|
3
|
+
import { IMessage } from '../../Models';
|
|
4
|
+
export interface MediaViewerProps {
|
|
5
|
+
/** The photos to page through, oldest first. */
|
|
6
|
+
items: IMessage[];
|
|
7
|
+
initialIndex: number;
|
|
8
|
+
imageProps?: Partial<ImageProps>;
|
|
9
|
+
onClose: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The full-screen photo viewer: every photo in the chat, side by side, swiped through as in
|
|
13
|
+
* Telegram (left for newer, right for older), pinch and double tap to zoom, and a drag up or
|
|
14
|
+
* down to put it away.
|
|
15
|
+
*/
|
|
16
|
+
export declare function MediaViewer({ items, initialIndex, imageProps, onClose }: MediaViewerProps): React.JSX.Element;
|
|
17
|
+
//# sourceMappingURL=MediaViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaViewer.d.ts","sourceRoot":"","sources":["../../../src/components/mediaViewer/MediaViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AACvE,OAAO,EAAe,UAAU,EAAuF,MAAM,cAAc,CAAA;AAM3I,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAevC,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAChC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAE,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,gBAAgB,qBA+H1F"}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import { c as _c } from "react/compiler-runtime";
|
|
2
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { BackHandler, StatusBar, StyleSheet, useWindowDimensions } from 'react-native';
|
|
4
|
+
import { FlatList, GestureDetector, GestureHandlerRootView, usePanGesture } from 'react-native-gesture-handler';
|
|
5
|
+
import { OverKeyboardView } from 'react-native-keyboard-controller';
|
|
6
|
+
import Animated, { runOnJS, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
7
|
+
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
8
|
+
import { DECELERATE, EASE_OUT_QUINT } from '../../motion';
|
|
9
|
+
import { MediaViewerChrome } from './MediaViewerChrome';
|
|
10
|
+
import { MediaViewerPage } from './MediaViewerPage';
|
|
11
|
+
|
|
12
|
+
// Telegram's viewer keeps 15dp between neighbouring photos, and a release past a third of the
|
|
13
|
+
// screen or faster than 650dp/s turns the page (`PhotoViewer.onTouchEvent`); a native paging
|
|
14
|
+
// list gives the same feel and the platform's own fling.
|
|
15
|
+
const PAGE_GAP = 15;
|
|
16
|
+
const OPEN = {
|
|
17
|
+
duration: 250,
|
|
18
|
+
easing: EASE_OUT_QUINT
|
|
19
|
+
};
|
|
20
|
+
const CLOSE = {
|
|
21
|
+
duration: 200,
|
|
22
|
+
easing: DECELERATE
|
|
23
|
+
};
|
|
24
|
+
// Dragged this share of the screen down (or flung), the photo is let go.
|
|
25
|
+
const DISMISS_SHARE = 0.15;
|
|
26
|
+
const DISMISS_VELOCITY = 1000;
|
|
27
|
+
/**
|
|
28
|
+
* The full-screen photo viewer: every photo in the chat, side by side, swiped through as in
|
|
29
|
+
* Telegram (left for newer, right for older), pinch and double tap to zoom, and a drag up or
|
|
30
|
+
* down to put it away.
|
|
31
|
+
*/
|
|
32
|
+
export function MediaViewer(t0) {
|
|
33
|
+
const $ = _c(68);
|
|
34
|
+
const {
|
|
35
|
+
items,
|
|
36
|
+
initialIndex,
|
|
37
|
+
imageProps,
|
|
38
|
+
onClose
|
|
39
|
+
} = t0;
|
|
40
|
+
const {
|
|
41
|
+
width,
|
|
42
|
+
height
|
|
43
|
+
} = useWindowDimensions();
|
|
44
|
+
const pageWidth = width + PAGE_GAP;
|
|
45
|
+
const listRef = useRef(null);
|
|
46
|
+
const [index, setIndex] = useState(initialIndex);
|
|
47
|
+
const [zoomedIndex, setZoomedIndex] = useState(null);
|
|
48
|
+
const isZoomed = zoomedIndex === index;
|
|
49
|
+
const progress = useSharedValue(0);
|
|
50
|
+
const dragY = useSharedValue(0);
|
|
51
|
+
const [isClosing, setIsClosing] = useState(false);
|
|
52
|
+
let t1;
|
|
53
|
+
let t2;
|
|
54
|
+
if ($[0] !== progress) {
|
|
55
|
+
t1 = () => {
|
|
56
|
+
progress.set(withTiming(1, OPEN));
|
|
57
|
+
};
|
|
58
|
+
t2 = [progress];
|
|
59
|
+
$[0] = progress;
|
|
60
|
+
$[1] = t1;
|
|
61
|
+
$[2] = t2;
|
|
62
|
+
} else {
|
|
63
|
+
t1 = $[1];
|
|
64
|
+
t2 = $[2];
|
|
65
|
+
}
|
|
66
|
+
useEffect(t1, t2);
|
|
67
|
+
let t3;
|
|
68
|
+
if ($[3] !== isClosing || $[4] !== onClose || $[5] !== progress) {
|
|
69
|
+
t3 = () => {
|
|
70
|
+
if (isClosing) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
setIsClosing(true);
|
|
74
|
+
progress.set(withTiming(0, CLOSE, isFinished => {
|
|
75
|
+
if (isFinished) {
|
|
76
|
+
runOnJS(onClose)();
|
|
77
|
+
}
|
|
78
|
+
}));
|
|
79
|
+
};
|
|
80
|
+
$[3] = isClosing;
|
|
81
|
+
$[4] = onClose;
|
|
82
|
+
$[5] = progress;
|
|
83
|
+
$[6] = t3;
|
|
84
|
+
} else {
|
|
85
|
+
t3 = $[6];
|
|
86
|
+
}
|
|
87
|
+
const close = t3;
|
|
88
|
+
let t4;
|
|
89
|
+
let t5;
|
|
90
|
+
if ($[7] !== close) {
|
|
91
|
+
t4 = () => {
|
|
92
|
+
const subscription = BackHandler.addEventListener("hardwareBackPress", () => {
|
|
93
|
+
close();
|
|
94
|
+
return true;
|
|
95
|
+
});
|
|
96
|
+
return () => subscription.remove();
|
|
97
|
+
};
|
|
98
|
+
t5 = [close];
|
|
99
|
+
$[7] = close;
|
|
100
|
+
$[8] = t4;
|
|
101
|
+
$[9] = t5;
|
|
102
|
+
} else {
|
|
103
|
+
t4 = $[8];
|
|
104
|
+
t5 = $[9];
|
|
105
|
+
}
|
|
106
|
+
useEffect(t4, t5);
|
|
107
|
+
let t6;
|
|
108
|
+
if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
|
|
109
|
+
t6 = (pageIndex, isPageZoomed) => {
|
|
110
|
+
setZoomedIndex(current => isPageZoomed ? pageIndex : current === pageIndex ? null : current);
|
|
111
|
+
};
|
|
112
|
+
$[10] = t6;
|
|
113
|
+
} else {
|
|
114
|
+
t6 = $[10];
|
|
115
|
+
}
|
|
116
|
+
const onZoomStateChange = t6;
|
|
117
|
+
let t7;
|
|
118
|
+
if ($[11] !== items.length || $[12] !== pageWidth) {
|
|
119
|
+
t7 = event => {
|
|
120
|
+
const next = Math.round(event.nativeEvent.contentOffset.x / pageWidth);
|
|
121
|
+
setIndex(Math.max(0, Math.min(items.length - 1, next)));
|
|
122
|
+
};
|
|
123
|
+
$[11] = items.length;
|
|
124
|
+
$[12] = pageWidth;
|
|
125
|
+
$[13] = t7;
|
|
126
|
+
} else {
|
|
127
|
+
t7 = $[13];
|
|
128
|
+
}
|
|
129
|
+
const onMomentumScrollEnd = t7;
|
|
130
|
+
const t8 = !isZoomed && !isClosing;
|
|
131
|
+
let t10;
|
|
132
|
+
let t9;
|
|
133
|
+
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
134
|
+
t9 = [-12, 12];
|
|
135
|
+
t10 = [-12, 12];
|
|
136
|
+
$[14] = t10;
|
|
137
|
+
$[15] = t9;
|
|
138
|
+
} else {
|
|
139
|
+
t10 = $[14];
|
|
140
|
+
t9 = $[15];
|
|
141
|
+
}
|
|
142
|
+
let t11;
|
|
143
|
+
if ($[16] !== dragY) {
|
|
144
|
+
t11 = event_0 => {
|
|
145
|
+
dragY.set(event_0.translationY);
|
|
146
|
+
};
|
|
147
|
+
$[16] = dragY;
|
|
148
|
+
$[17] = t11;
|
|
149
|
+
} else {
|
|
150
|
+
t11 = $[17];
|
|
151
|
+
}
|
|
152
|
+
let t12;
|
|
153
|
+
if ($[18] !== close || $[19] !== dragY || $[20] !== height) {
|
|
154
|
+
t12 = event_1 => {
|
|
155
|
+
const y = dragY.get();
|
|
156
|
+
if (Math.abs(y) > height * DISMISS_SHARE || Math.abs(event_1.velocityY) > DISMISS_VELOCITY) {
|
|
157
|
+
dragY.set(withTiming(Math.sign(y || event_1.velocityY) * height, CLOSE));
|
|
158
|
+
runOnJS(close)();
|
|
159
|
+
} else {
|
|
160
|
+
dragY.set(withTiming(0, OPEN));
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
$[18] = close;
|
|
164
|
+
$[19] = dragY;
|
|
165
|
+
$[20] = height;
|
|
166
|
+
$[21] = t12;
|
|
167
|
+
} else {
|
|
168
|
+
t12 = $[21];
|
|
169
|
+
}
|
|
170
|
+
let t13;
|
|
171
|
+
if ($[22] !== t11 || $[23] !== t12 || $[24] !== t8) {
|
|
172
|
+
t13 = {
|
|
173
|
+
enabled: t8,
|
|
174
|
+
activeOffsetY: t9,
|
|
175
|
+
failOffsetX: t10,
|
|
176
|
+
onUpdate: t11,
|
|
177
|
+
onDeactivate: t12
|
|
178
|
+
};
|
|
179
|
+
$[22] = t11;
|
|
180
|
+
$[23] = t12;
|
|
181
|
+
$[24] = t8;
|
|
182
|
+
$[25] = t13;
|
|
183
|
+
} else {
|
|
184
|
+
t13 = $[25];
|
|
185
|
+
}
|
|
186
|
+
const dismissPan = usePanGesture(t13);
|
|
187
|
+
const backdropStyle = useAnimatedStyle(() => ({
|
|
188
|
+
opacity: progress.get() * (1 - Math.min(1, Math.abs(dragY.get()) / (height / 2)))
|
|
189
|
+
}));
|
|
190
|
+
const contentStyle = useAnimatedStyle(() => ({
|
|
191
|
+
opacity: progress.get(),
|
|
192
|
+
transform: [{
|
|
193
|
+
translateY: dragY.get()
|
|
194
|
+
}, {
|
|
195
|
+
scale: 0.9 + 0.1 * progress.get()
|
|
196
|
+
}]
|
|
197
|
+
}));
|
|
198
|
+
const chromeStyle = useAnimatedStyle(() => ({
|
|
199
|
+
opacity: progress.get() * (dragY.get() === 0 ? 1 : 0)
|
|
200
|
+
}));
|
|
201
|
+
let t14;
|
|
202
|
+
if ($[26] !== height || $[27] !== imageProps || $[28] !== pageWidth || $[29] !== width) {
|
|
203
|
+
t14 = t15 => {
|
|
204
|
+
const {
|
|
205
|
+
item,
|
|
206
|
+
index: pageIndex_0
|
|
207
|
+
} = t15;
|
|
208
|
+
return <MediaViewerPage message={item} index={pageIndex_0} width={width} height={height} pageWidth={pageWidth} listRef={listRef} imageProps={imageProps} onZoomStateChange={onZoomStateChange} />;
|
|
209
|
+
};
|
|
210
|
+
$[26] = height;
|
|
211
|
+
$[27] = imageProps;
|
|
212
|
+
$[28] = pageWidth;
|
|
213
|
+
$[29] = width;
|
|
214
|
+
$[30] = t14;
|
|
215
|
+
} else {
|
|
216
|
+
t14 = $[30];
|
|
217
|
+
}
|
|
218
|
+
const renderItem = t14;
|
|
219
|
+
let t15;
|
|
220
|
+
if ($[31] !== pageWidth) {
|
|
221
|
+
t15 = (_, itemIndex) => ({
|
|
222
|
+
length: pageWidth,
|
|
223
|
+
offset: pageWidth * itemIndex,
|
|
224
|
+
index: itemIndex
|
|
225
|
+
});
|
|
226
|
+
$[31] = pageWidth;
|
|
227
|
+
$[32] = t15;
|
|
228
|
+
} else {
|
|
229
|
+
t15 = $[32];
|
|
230
|
+
}
|
|
231
|
+
const getItemLayout = t15;
|
|
232
|
+
let t16;
|
|
233
|
+
if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
|
|
234
|
+
t16 = <StatusBar animated={true} barStyle="light-content" />;
|
|
235
|
+
$[33] = t16;
|
|
236
|
+
} else {
|
|
237
|
+
t16 = $[33];
|
|
238
|
+
}
|
|
239
|
+
let t17;
|
|
240
|
+
if ($[34] !== backdropStyle) {
|
|
241
|
+
t17 = <Animated.View style={[StyleSheet.absoluteFill, styles.backdrop, backdropStyle]} />;
|
|
242
|
+
$[34] = backdropStyle;
|
|
243
|
+
$[35] = t17;
|
|
244
|
+
} else {
|
|
245
|
+
t17 = $[35];
|
|
246
|
+
}
|
|
247
|
+
let t18;
|
|
248
|
+
if ($[36] !== contentStyle) {
|
|
249
|
+
t18 = [StyleSheet.absoluteFill, contentStyle];
|
|
250
|
+
$[36] = contentStyle;
|
|
251
|
+
$[37] = t18;
|
|
252
|
+
} else {
|
|
253
|
+
t18 = $[37];
|
|
254
|
+
}
|
|
255
|
+
const t19 = !isZoomed;
|
|
256
|
+
let t20;
|
|
257
|
+
if ($[38] !== pageWidth) {
|
|
258
|
+
t20 = {
|
|
259
|
+
width: pageWidth
|
|
260
|
+
};
|
|
261
|
+
$[38] = pageWidth;
|
|
262
|
+
$[39] = t20;
|
|
263
|
+
} else {
|
|
264
|
+
t20 = $[39];
|
|
265
|
+
}
|
|
266
|
+
let t21;
|
|
267
|
+
if ($[40] !== getItemLayout || $[41] !== initialIndex || $[42] !== items || $[43] !== onMomentumScrollEnd || $[44] !== renderItem || $[45] !== t19 || $[46] !== t20) {
|
|
268
|
+
t21 = <FlatList ref={listRef} testID="media-viewer-pager" data={items} keyExtractor={_temp} renderItem={renderItem} getItemLayout={getItemLayout} initialScrollIndex={initialIndex} horizontal={true} pagingEnabled={true} scrollEnabled={t19} showsHorizontalScrollIndicator={false} onMomentumScrollEnd={onMomentumScrollEnd} initialNumToRender={1} maxToRenderPerBatch={2} windowSize={3} style={t20} />;
|
|
269
|
+
$[40] = getItemLayout;
|
|
270
|
+
$[41] = initialIndex;
|
|
271
|
+
$[42] = items;
|
|
272
|
+
$[43] = onMomentumScrollEnd;
|
|
273
|
+
$[44] = renderItem;
|
|
274
|
+
$[45] = t19;
|
|
275
|
+
$[46] = t20;
|
|
276
|
+
$[47] = t21;
|
|
277
|
+
} else {
|
|
278
|
+
t21 = $[47];
|
|
279
|
+
}
|
|
280
|
+
let t22;
|
|
281
|
+
if ($[48] !== t18 || $[49] !== t21) {
|
|
282
|
+
t22 = <Animated.View style={t18}>{t21}</Animated.View>;
|
|
283
|
+
$[48] = t18;
|
|
284
|
+
$[49] = t21;
|
|
285
|
+
$[50] = t22;
|
|
286
|
+
} else {
|
|
287
|
+
t22 = $[50];
|
|
288
|
+
}
|
|
289
|
+
let t23;
|
|
290
|
+
if ($[51] !== dismissPan || $[52] !== t22) {
|
|
291
|
+
t23 = <GestureDetector gesture={dismissPan}>{t22}</GestureDetector>;
|
|
292
|
+
$[51] = dismissPan;
|
|
293
|
+
$[52] = t22;
|
|
294
|
+
$[53] = t23;
|
|
295
|
+
} else {
|
|
296
|
+
t23 = $[53];
|
|
297
|
+
}
|
|
298
|
+
let t24;
|
|
299
|
+
if ($[54] !== chromeStyle) {
|
|
300
|
+
t24 = [StyleSheet.absoluteFill, chromeStyle];
|
|
301
|
+
$[54] = chromeStyle;
|
|
302
|
+
$[55] = t24;
|
|
303
|
+
} else {
|
|
304
|
+
t24 = $[55];
|
|
305
|
+
}
|
|
306
|
+
const t25 = items[index];
|
|
307
|
+
let t26;
|
|
308
|
+
if ($[56] !== close || $[57] !== index || $[58] !== items.length || $[59] !== t25) {
|
|
309
|
+
t26 = <MediaViewerChrome message={t25} index={index} count={items.length} onClose={close} />;
|
|
310
|
+
$[56] = close;
|
|
311
|
+
$[57] = index;
|
|
312
|
+
$[58] = items.length;
|
|
313
|
+
$[59] = t25;
|
|
314
|
+
$[60] = t26;
|
|
315
|
+
} else {
|
|
316
|
+
t26 = $[60];
|
|
317
|
+
}
|
|
318
|
+
let t27;
|
|
319
|
+
if ($[61] !== t24 || $[62] !== t26) {
|
|
320
|
+
t27 = <Animated.View style={t24} pointerEvents="box-none">{t26}</Animated.View>;
|
|
321
|
+
$[61] = t24;
|
|
322
|
+
$[62] = t26;
|
|
323
|
+
$[63] = t27;
|
|
324
|
+
} else {
|
|
325
|
+
t27 = $[63];
|
|
326
|
+
}
|
|
327
|
+
let t28;
|
|
328
|
+
if ($[64] !== t17 || $[65] !== t23 || $[66] !== t27) {
|
|
329
|
+
t28 = <OverKeyboardView visible={true}><SafeAreaProvider>{t16}<GestureHandlerRootView style={StyleSheet.absoluteFill}>{t17}{t23}{t27}</GestureHandlerRootView></SafeAreaProvider></OverKeyboardView>;
|
|
330
|
+
$[64] = t17;
|
|
331
|
+
$[65] = t23;
|
|
332
|
+
$[66] = t27;
|
|
333
|
+
$[67] = t28;
|
|
334
|
+
} else {
|
|
335
|
+
t28 = $[67];
|
|
336
|
+
}
|
|
337
|
+
return t28;
|
|
338
|
+
}
|
|
339
|
+
function _temp(item_0) {
|
|
340
|
+
return String(item_0._id);
|
|
341
|
+
}
|
|
342
|
+
const styles = StyleSheet.create({
|
|
343
|
+
backdrop: {
|
|
344
|
+
backgroundColor: '#000000'
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
//# sourceMappingURL=MediaViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaViewer.js","names":["React","useCallback","useEffect","useRef","useState","BackHandler","StatusBar","StyleSheet","useWindowDimensions","FlatList","GestureDetector","GestureHandlerRootView","usePanGesture","OverKeyboardView","Animated","runOnJS","useAnimatedStyle","useSharedValue","withTiming","SafeAreaProvider","DECELERATE","EASE_OUT_QUINT","MediaViewerChrome","MediaViewerPage","PAGE_GAP","OPEN","duration","easing","CLOSE","DISMISS_SHARE","DISMISS_VELOCITY","MediaViewer","t0","$","_c","items","initialIndex","imageProps","onClose","width","height","pageWidth","listRef","index","setIndex","zoomedIndex","setZoomedIndex","isZoomed","progress","dragY","isClosing","setIsClosing","t1","t2","set","t3","isFinished","close","t4","t5","subscription","addEventListener","remove","t6","Symbol","for","pageIndex","isPageZoomed","current","onZoomStateChange","t7","length","event","next","Math","round","nativeEvent","contentOffset","x","max","min","onMomentumScrollEnd","t8","t10","t9","t11","event_0","translationY","t12","event_1","y","get","abs","velocityY","sign","t13","enabled","activeOffsetY","failOffsetX","onUpdate","onDeactivate","dismissPan","backdropStyle","opacity","contentStyle","transform","translateY","scale","chromeStyle","t14","t15","item","pageIndex_0","renderItem","_","itemIndex","offset","getItemLayout","t16","t17","absoluteFill","styles","backdrop","t18","t19","t20","t21","_temp","t22","t23","t24","t25","t26","t27","t28","item_0","String","_id","create","backgroundColor"],"sources":["../../../src/components/mediaViewer/MediaViewer.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { BackHandler, ImageProps, NativeScrollEvent, NativeSyntheticEvent, StatusBar, StyleSheet, useWindowDimensions } from 'react-native'\nimport { FlatList, GestureDetector, GestureHandlerRootView, usePanGesture } from 'react-native-gesture-handler'\nimport { OverKeyboardView } from 'react-native-keyboard-controller'\nimport Animated, { runOnJS, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated'\nimport { SafeAreaProvider } from 'react-native-safe-area-context'\n\nimport { IMessage } from '../../Models'\nimport { DECELERATE, EASE_OUT_QUINT } from '../../motion'\nimport { MediaViewerChrome } from './MediaViewerChrome'\nimport { MediaViewerPage } from './MediaViewerPage'\n\n// Telegram's viewer keeps 15dp between neighbouring photos, and a release past a third of the\n// screen or faster than 650dp/s turns the page (`PhotoViewer.onTouchEvent`); a native paging\n// list gives the same feel and the platform's own fling.\nconst PAGE_GAP = 15\nconst OPEN = { duration: 250, easing: EASE_OUT_QUINT }\nconst CLOSE = { duration: 200, easing: DECELERATE }\n// Dragged this share of the screen down (or flung), the photo is let go.\nconst DISMISS_SHARE = 0.15\nconst DISMISS_VELOCITY = 1000\n\nexport interface MediaViewerProps {\n /** The photos to page through, oldest first. */\n items: IMessage[]\n initialIndex: number\n imageProps?: Partial<ImageProps>\n onClose: () => void\n}\n\n/**\n * The full-screen photo viewer: every photo in the chat, side by side, swiped through as in\n * Telegram (left for newer, right for older), pinch and double tap to zoom, and a drag up or\n * down to put it away.\n */\nexport function MediaViewer ({ items, initialIndex, imageProps, onClose }: MediaViewerProps) {\n const { width, height } = useWindowDimensions()\n const pageWidth = width + PAGE_GAP\n const listRef = useRef<React.ComponentRef<typeof FlatList<IMessage>>>(null)\n const [index, setIndex] = useState(initialIndex)\n const [zoomedIndex, setZoomedIndex] = useState<number | null>(null)\n const isZoomed = zoomedIndex === index\n\n const progress = useSharedValue(0)\n const dragY = useSharedValue(0)\n const [isClosing, setIsClosing] = useState(false)\n\n useEffect(() => {\n progress.set(withTiming(1, OPEN))\n }, [progress])\n\n const close = useCallback(() => {\n if (isClosing)\n return\n setIsClosing(true)\n progress.set(withTiming(0, CLOSE, isFinished => {\n if (isFinished)\n runOnJS(onClose)()\n }))\n }, [isClosing, progress, onClose])\n\n useEffect(() => {\n const subscription = BackHandler.addEventListener('hardwareBackPress', () => {\n close()\n return true\n })\n return () => subscription.remove()\n }, [close])\n\n const onZoomStateChange = useCallback((pageIndex: number, isPageZoomed: boolean) => {\n setZoomedIndex(current => (isPageZoomed ? pageIndex : current === pageIndex ? null : current))\n }, [])\n\n // The counter and the bottom bar follow the page once it has settled, as Telegram's do.\n const onMomentumScrollEnd = useCallback((event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const next = Math.round(event.nativeEvent.contentOffset.x / pageWidth)\n setIndex(Math.max(0, Math.min(items.length - 1, next)))\n }, [pageWidth, items.length])\n\n const dismissPan = usePanGesture({\n enabled: !isZoomed && !isClosing,\n activeOffsetY: [-12, 12],\n failOffsetX: [-12, 12],\n onUpdate: event => {\n dragY.set(event.translationY)\n },\n onDeactivate: event => {\n const y = dragY.get()\n if (Math.abs(y) > height * DISMISS_SHARE || Math.abs(event.velocityY) > DISMISS_VELOCITY) {\n // The photo carries on the way it was thrown while the backdrop fades.\n dragY.set(withTiming(Math.sign(y || event.velocityY) * height, CLOSE))\n runOnJS(close)()\n } else {\n dragY.set(withTiming(0, OPEN))\n }\n },\n })\n\n const backdropStyle = useAnimatedStyle(() => ({\n opacity: progress.get() * (1 - Math.min(1, Math.abs(dragY.get()) / (height / 2))),\n }))\n const contentStyle = useAnimatedStyle(() => ({\n opacity: progress.get(),\n transform: [{ translateY: dragY.get() }, { scale: 0.9 + 0.1 * progress.get() }],\n }))\n const chromeStyle = useAnimatedStyle(() => ({\n opacity: progress.get() * (dragY.get() === 0 ? 1 : 0),\n }))\n\n const renderItem = useCallback(({ item, index: pageIndex }: { item: IMessage, index: number }) => (\n <MediaViewerPage\n message={item}\n index={pageIndex}\n width={width}\n height={height}\n pageWidth={pageWidth}\n listRef={listRef}\n imageProps={imageProps}\n onZoomStateChange={onZoomStateChange}\n />\n ), [width, height, pageWidth, imageProps, onZoomStateChange])\n\n const getItemLayout = useCallback((_: unknown, itemIndex: number) => (\n { length: pageWidth, offset: pageWidth * itemIndex, index: itemIndex }\n ), [pageWidth])\n\n return (\n <OverKeyboardView visible>\n <SafeAreaProvider>\n {/* White on the black viewer, whatever the app's own bar style. */}\n <StatusBar animated barStyle='light-content' />\n <GestureHandlerRootView style={StyleSheet.absoluteFill}>\n <Animated.View style={[StyleSheet.absoluteFill, styles.backdrop, backdropStyle]} />\n <GestureDetector gesture={dismissPan}>\n <Animated.View style={[StyleSheet.absoluteFill, contentStyle]}>\n <FlatList\n ref={listRef}\n testID='media-viewer-pager'\n data={items}\n keyExtractor={item => String(item._id)}\n renderItem={renderItem}\n getItemLayout={getItemLayout}\n initialScrollIndex={initialIndex}\n horizontal\n pagingEnabled\n scrollEnabled={!isZoomed}\n showsHorizontalScrollIndicator={false}\n onMomentumScrollEnd={onMomentumScrollEnd}\n initialNumToRender={1}\n maxToRenderPerBatch={2}\n windowSize={3}\n style={{ width: pageWidth }}\n />\n </Animated.View>\n </GestureDetector>\n <Animated.View style={[StyleSheet.absoluteFill, chromeStyle]} pointerEvents='box-none'>\n <MediaViewerChrome message={items[index]} index={index} count={items.length} onClose={close} />\n </Animated.View>\n </GestureHandlerRootView>\n </SafeAreaProvider>\n </OverKeyboardView>\n )\n}\n\nconst styles = StyleSheet.create({\n backdrop: {\n backgroundColor: '#000000',\n },\n})\n\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IMessage } from '../../Models';
|
|
3
|
+
export interface MediaViewerChromeProps {
|
|
4
|
+
message: IMessage | undefined;
|
|
5
|
+
index: number;
|
|
6
|
+
count: number;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The viewer's bars, as in Telegram's: a close button and "3 of 12" on top; the caption, the
|
|
11
|
+
* sender and when it was sent at the bottom, over a shade so they read on any photo.
|
|
12
|
+
*/
|
|
13
|
+
export declare function MediaViewerChrome({ message, index, count, onClose }: MediaViewerChromeProps): React.JSX.Element;
|
|
14
|
+
//# sourceMappingURL=MediaViewerChrome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaViewerChrome.d.ts","sourceRoot":"","sources":["../../../src/components/mediaViewer/MediaViewerChrome.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAIvC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,sBAAsB,qBAoC5F"}
|