stream-chat-react-native-core 5.15.0 → 5.15.1-beta.2
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/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/AttachmentActions.js.map +1 -1
- package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileIcon.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -1
- package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/Attachment/ImageReloadIndicator.js.map +1 -1
- package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/getAspectRatio.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/openUrlSafely.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +14 -16
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useTargetedMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelList.js +4 -2
- package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelList/Skeleton.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +2 -0
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/ChannelList/utils.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +2 -4
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +4 -5
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useMutedUsers.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/commonjs/components/ImageBackground.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingDot.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingDots.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/AttachButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/CommandsButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MoreOptionsButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js.map +1 -1
- package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -1
- package/lib/commonjs/components/MessageList/DateHeader.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineDateSeparator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageSystem.js.map +1 -1
- package/lib/commonjs/components/MessageList/NetworkDownIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/commonjs/components/MessageList/TypingIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useTypingString.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getReadStates.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -1
- package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js.map +1 -1
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/components/Spinner/Spinner.js.map +1 -1
- package/lib/commonjs/components/Thread/Thread.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/components/docs/data.js.map +1 -1
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +2 -2
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/debugContext/DebugContext.js.map +1 -1
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js.map +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
- package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
- package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/commonjs/contexts/typingContext/TypingContext.js.map +1 -1
- package/lib/commonjs/emoji-data/compile.js.map +1 -1
- package/lib/commonjs/emoji-data/index.js.map +1 -1
- package/lib/commonjs/hooks/useAppStateListener.js.map +1 -1
- package/lib/commonjs/hooks/useIsMountedRef.js.map +1 -1
- package/lib/commonjs/hooks/useLoadingImage.js.map +1 -1
- package/lib/commonjs/hooks/useStreami18n.js.map +1 -1
- package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/commonjs/icons/ArrowRight.js.map +1 -1
- package/lib/commonjs/icons/AtMentions.js.map +1 -1
- package/lib/commonjs/icons/Attach.js.map +1 -1
- package/lib/commonjs/icons/Audio.js.map +1 -1
- package/lib/commonjs/icons/CSV.js.map +1 -1
- package/lib/commonjs/icons/Camera.js.map +1 -1
- package/lib/commonjs/icons/Check.js.map +1 -1
- package/lib/commonjs/icons/CheckAll.js.map +1 -1
- package/lib/commonjs/icons/CheckSend.js.map +1 -1
- package/lib/commonjs/icons/CircleClose.js.map +1 -1
- package/lib/commonjs/icons/CirclePlus.js.map +1 -1
- package/lib/commonjs/icons/CircleRight.js.map +1 -1
- package/lib/commonjs/icons/Close.js.map +1 -1
- package/lib/commonjs/icons/Copy.js.map +1 -1
- package/lib/commonjs/icons/CurveLineLeftUp.js.map +1 -1
- package/lib/commonjs/icons/DOC.js.map +1 -1
- package/lib/commonjs/icons/DOCX.js.map +1 -1
- package/lib/commonjs/icons/Delete.js.map +1 -1
- package/lib/commonjs/icons/Down.js.map +1 -1
- package/lib/commonjs/icons/DownloadArrow.js.map +1 -1
- package/lib/commonjs/icons/DownloadCloud.js.map +1 -1
- package/lib/commonjs/icons/Edit.js.map +1 -1
- package/lib/commonjs/icons/Error.js.map +1 -1
- package/lib/commonjs/icons/Eye.js.map +1 -1
- package/lib/commonjs/icons/Flag.js.map +1 -1
- package/lib/commonjs/icons/Folder.js.map +1 -1
- package/lib/commonjs/icons/GenericFile.js.map +1 -1
- package/lib/commonjs/icons/GiphyIcon.js.map +1 -1
- package/lib/commonjs/icons/Grid.js.map +1 -1
- package/lib/commonjs/icons/Group.js.map +1 -1
- package/lib/commonjs/icons/HTML.js.map +1 -1
- package/lib/commonjs/icons/Imgur.js.map +1 -1
- package/lib/commonjs/icons/LOLReaction.js.map +1 -1
- package/lib/commonjs/icons/Lightning.js.map +1 -1
- package/lib/commonjs/icons/Link.js.map +1 -1
- package/lib/commonjs/icons/Loading.js.map +1 -1
- package/lib/commonjs/icons/Logo.js.map +1 -1
- package/lib/commonjs/icons/LoveReaction.js.map +1 -1
- package/lib/commonjs/icons/MD.js.map +1 -1
- package/lib/commonjs/icons/MailOpen.js.map +1 -1
- package/lib/commonjs/icons/MenuPointHorizontal.js.map +1 -1
- package/lib/commonjs/icons/MenuPointVertical.js.map +1 -1
- package/lib/commonjs/icons/MessageFlag.js.map +1 -1
- package/lib/commonjs/icons/MessageIcon.js.map +1 -1
- package/lib/commonjs/icons/Mute.js.map +1 -1
- package/lib/commonjs/icons/Notification.js.map +1 -1
- package/lib/commonjs/icons/ODT.js.map +1 -1
- package/lib/commonjs/icons/PDF.js.map +1 -1
- package/lib/commonjs/icons/PPT.js.map +1 -1
- package/lib/commonjs/icons/PPTX.js.map +1 -1
- package/lib/commonjs/icons/Pause.js.map +1 -1
- package/lib/commonjs/icons/Picture.js.map +1 -1
- package/lib/commonjs/icons/Pin.js.map +1 -1
- package/lib/commonjs/icons/PinHeader.js.map +1 -1
- package/lib/commonjs/icons/Play.js.map +1 -1
- package/lib/commonjs/icons/RAR.js.map +1 -1
- package/lib/commonjs/icons/RTF.js.map +1 -1
- package/lib/commonjs/icons/Recorder.js.map +1 -1
- package/lib/commonjs/icons/Refresh.js.map +1 -1
- package/lib/commonjs/icons/SEVEN_Z.js.map +1 -1
- package/lib/commonjs/icons/Search.js.map +1 -1
- package/lib/commonjs/icons/SendRight.js.map +1 -1
- package/lib/commonjs/icons/SendUp.js.map +1 -1
- package/lib/commonjs/icons/Share.js.map +1 -1
- package/lib/commonjs/icons/ShareRightArrow.js.map +1 -1
- package/lib/commonjs/icons/Smile.js.map +1 -1
- package/lib/commonjs/icons/Sound.js.map +1 -1
- package/lib/commonjs/icons/TAR.js.map +1 -1
- package/lib/commonjs/icons/TXT.js.map +1 -1
- package/lib/commonjs/icons/ThreadReply.js.map +1 -1
- package/lib/commonjs/icons/ThumbsDownReaction.js.map +1 -1
- package/lib/commonjs/icons/ThumbsUpReaction.js.map +1 -1
- package/lib/commonjs/icons/Time.js.map +1 -1
- package/lib/commonjs/icons/Unknown.js.map +1 -1
- package/lib/commonjs/icons/Unpin.js.map +1 -1
- package/lib/commonjs/icons/User.js.map +1 -1
- package/lib/commonjs/icons/UserAdd.js.map +1 -1
- package/lib/commonjs/icons/UserAdmin.js.map +1 -1
- package/lib/commonjs/icons/UserDelete.js.map +1 -1
- package/lib/commonjs/icons/UserMinus.js.map +1 -1
- package/lib/commonjs/icons/Video.js.map +1 -1
- package/lib/commonjs/icons/Warning.js.map +1 -1
- package/lib/commonjs/icons/WutReaction.js.map +1 -1
- package/lib/commonjs/icons/XLS.js.map +1 -1
- package/lib/commonjs/icons/XLSX.js.map +1 -1
- package/lib/commonjs/icons/ZIP.js.map +1 -1
- package/lib/commonjs/icons/utils/base.js.map +1 -1
- package/lib/commonjs/init.js.map +1 -1
- package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
- package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -1
- package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -1
- package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -1
- package/lib/commonjs/mock-builders/api/useMockedApis.js.map +1 -1
- package/lib/commonjs/mock-builders/event/messageRead.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/member.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/message.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/reaction.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
- package/lib/commonjs/mock-builders/mock.js.map +1 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
- package/lib/commonjs/store/apis/deleteReactions.js.map +1 -1
- package/lib/commonjs/store/apis/getAllChannelIds.js.map +1 -1
- package/lib/commonjs/store/apis/getAppSettings.js.map +1 -1
- package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
- package/lib/commonjs/store/apis/getLastSyncedAt.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectMembersForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectReadsForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/updateMessage.js.map +1 -1
- package/lib/commonjs/store/apis/updateReaction.js.map +1 -1
- package/lib/commonjs/store/apis/upsertChannels.js.map +1 -1
- package/lib/commonjs/store/apis/upsertMembers.js.map +1 -1
- package/lib/commonjs/store/apis/upsertReads.js.map +1 -1
- package/lib/commonjs/store/apis/utils/convertFilterSortToQuery.js.map +1 -1
- package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapTaskToStorable.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
- package/lib/commonjs/utils/Streami18n.js.map +1 -1
- package/lib/commonjs/utils/addReactionToLocalState.js.map +1 -1
- package/lib/commonjs/utils/date.js.map +1 -1
- package/lib/commonjs/utils/getResizedImageUrl.js.map +1 -1
- package/lib/commonjs/utils/patchMessageTextCommand.js.map +1 -1
- package/lib/commonjs/utils/removeReactionFromLocalState.js.map +1 -1
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Attachment.js.map +1 -1
- package/lib/module/components/Attachment/AttachmentActions.js.map +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/module/components/Attachment/FileIcon.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -1
- package/lib/module/components/Attachment/ImageLoadingIndicator.js.map +1 -1
- package/lib/module/components/Attachment/ImageReloadIndicator.js.map +1 -1
- package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -1
- package/lib/module/components/Attachment/utils/getAspectRatio.js.map +1 -1
- package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -1
- package/lib/module/components/Attachment/utils/openUrlSafely.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +14 -16
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/module/components/Avatar/Avatar.js.map +1 -1
- package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useTargetedMessage.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelList.js +4 -2
- package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/module/components/ChannelList/Skeleton.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +2 -0
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/ChannelList/utils.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +2 -4
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +4 -5
- package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/module/components/Chat/hooks/useMutedUsers.js.map +1 -1
- package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/module/components/ImageBackground.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
- package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
- package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/module/components/Indicators/LoadingDot.js.map +1 -1
- package/lib/module/components/Indicators/LoadingDots.js.map +1 -1
- package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/module/components/Indicators/LoadingIndicator.js.map +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.test.js.map +1 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/module/components/MessageInput/AttachButton.js.map +1 -1
- package/lib/module/components/MessageInput/CommandsButton.js.map +1 -1
- package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/MoreOptionsButton.js.map +1 -1
- package/lib/module/components/MessageInput/SendButton.js.map +1 -1
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
- package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
- package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/module/components/MessageInput/components/InputEditingStateHeader.js.map +1 -1
- package/lib/module/components/MessageInput/components/InputGiphySearch.js.map +1 -1
- package/lib/module/components/MessageInput/components/InputReplyStateHeader.js.map +1 -1
- package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -1
- package/lib/module/components/MessageList/DateHeader.js.map +1 -1
- package/lib/module/components/MessageList/InlineDateSeparator.js.map +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js.map +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js.map +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js.map +1 -1
- package/lib/module/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/MessageSystem.js.map +1 -1
- package/lib/module/components/MessageList/NetworkDownIndicator.js.map +1 -1
- package/lib/module/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/module/components/MessageList/TypingIndicator.js.map +1 -1
- package/lib/module/components/MessageList/TypingIndicatorContainer.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useTypingString.js.map +1 -1
- package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/module/components/MessageList/utils/getReadStates.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -1
- package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -1
- package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/module/components/RTLComponents/WritingDirectionAwareText.js.map +1 -1
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/components/Spinner/Spinner.js.map +1 -1
- package/lib/module/components/Thread/Thread.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/components/docs/data.js.map +1 -1
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/channelsContext/ChannelsContext.js +2 -2
- package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/debugContext/DebugContext.js.map +1 -1
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/module/contexts/keyboardContext/KeyboardContext.js.map +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
- package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
- package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/module/contexts/typingContext/TypingContext.js.map +1 -1
- package/lib/module/emoji-data/compile.js.map +1 -1
- package/lib/module/emoji-data/index.js.map +1 -1
- package/lib/module/hooks/useAppStateListener.js.map +1 -1
- package/lib/module/hooks/useIsMountedRef.js.map +1 -1
- package/lib/module/hooks/useLoadingImage.js.map +1 -1
- package/lib/module/hooks/useStreami18n.js.map +1 -1
- package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/module/icons/ArrowRight.js.map +1 -1
- package/lib/module/icons/AtMentions.js.map +1 -1
- package/lib/module/icons/Attach.js.map +1 -1
- package/lib/module/icons/Audio.js.map +1 -1
- package/lib/module/icons/CSV.js.map +1 -1
- package/lib/module/icons/Camera.js.map +1 -1
- package/lib/module/icons/Check.js.map +1 -1
- package/lib/module/icons/CheckAll.js.map +1 -1
- package/lib/module/icons/CheckSend.js.map +1 -1
- package/lib/module/icons/CircleClose.js.map +1 -1
- package/lib/module/icons/CirclePlus.js.map +1 -1
- package/lib/module/icons/CircleRight.js.map +1 -1
- package/lib/module/icons/Close.js.map +1 -1
- package/lib/module/icons/Copy.js.map +1 -1
- package/lib/module/icons/CurveLineLeftUp.js.map +1 -1
- package/lib/module/icons/DOC.js.map +1 -1
- package/lib/module/icons/DOCX.js.map +1 -1
- package/lib/module/icons/Delete.js.map +1 -1
- package/lib/module/icons/Down.js.map +1 -1
- package/lib/module/icons/DownloadArrow.js.map +1 -1
- package/lib/module/icons/DownloadCloud.js.map +1 -1
- package/lib/module/icons/Edit.js.map +1 -1
- package/lib/module/icons/Error.js.map +1 -1
- package/lib/module/icons/Eye.js.map +1 -1
- package/lib/module/icons/Flag.js.map +1 -1
- package/lib/module/icons/Folder.js.map +1 -1
- package/lib/module/icons/GenericFile.js.map +1 -1
- package/lib/module/icons/GiphyIcon.js.map +1 -1
- package/lib/module/icons/Grid.js.map +1 -1
- package/lib/module/icons/Group.js.map +1 -1
- package/lib/module/icons/HTML.js.map +1 -1
- package/lib/module/icons/Imgur.js.map +1 -1
- package/lib/module/icons/LOLReaction.js.map +1 -1
- package/lib/module/icons/Lightning.js.map +1 -1
- package/lib/module/icons/Link.js.map +1 -1
- package/lib/module/icons/Loading.js.map +1 -1
- package/lib/module/icons/Logo.js.map +1 -1
- package/lib/module/icons/LoveReaction.js.map +1 -1
- package/lib/module/icons/MD.js.map +1 -1
- package/lib/module/icons/MailOpen.js.map +1 -1
- package/lib/module/icons/MenuPointHorizontal.js.map +1 -1
- package/lib/module/icons/MenuPointVertical.js.map +1 -1
- package/lib/module/icons/MessageFlag.js.map +1 -1
- package/lib/module/icons/MessageIcon.js.map +1 -1
- package/lib/module/icons/Mute.js.map +1 -1
- package/lib/module/icons/Notification.js.map +1 -1
- package/lib/module/icons/ODT.js.map +1 -1
- package/lib/module/icons/PDF.js.map +1 -1
- package/lib/module/icons/PPT.js.map +1 -1
- package/lib/module/icons/PPTX.js.map +1 -1
- package/lib/module/icons/Pause.js.map +1 -1
- package/lib/module/icons/Picture.js.map +1 -1
- package/lib/module/icons/Pin.js.map +1 -1
- package/lib/module/icons/PinHeader.js.map +1 -1
- package/lib/module/icons/Play.js.map +1 -1
- package/lib/module/icons/RAR.js.map +1 -1
- package/lib/module/icons/RTF.js.map +1 -1
- package/lib/module/icons/Recorder.js.map +1 -1
- package/lib/module/icons/Refresh.js.map +1 -1
- package/lib/module/icons/SEVEN_Z.js.map +1 -1
- package/lib/module/icons/Search.js.map +1 -1
- package/lib/module/icons/SendRight.js.map +1 -1
- package/lib/module/icons/SendUp.js.map +1 -1
- package/lib/module/icons/Share.js.map +1 -1
- package/lib/module/icons/ShareRightArrow.js.map +1 -1
- package/lib/module/icons/Smile.js.map +1 -1
- package/lib/module/icons/Sound.js.map +1 -1
- package/lib/module/icons/TAR.js.map +1 -1
- package/lib/module/icons/TXT.js.map +1 -1
- package/lib/module/icons/ThreadReply.js.map +1 -1
- package/lib/module/icons/ThumbsDownReaction.js.map +1 -1
- package/lib/module/icons/ThumbsUpReaction.js.map +1 -1
- package/lib/module/icons/Time.js.map +1 -1
- package/lib/module/icons/Unknown.js.map +1 -1
- package/lib/module/icons/Unpin.js.map +1 -1
- package/lib/module/icons/User.js.map +1 -1
- package/lib/module/icons/UserAdd.js.map +1 -1
- package/lib/module/icons/UserAdmin.js.map +1 -1
- package/lib/module/icons/UserDelete.js.map +1 -1
- package/lib/module/icons/UserMinus.js.map +1 -1
- package/lib/module/icons/Video.js.map +1 -1
- package/lib/module/icons/Warning.js.map +1 -1
- package/lib/module/icons/WutReaction.js.map +1 -1
- package/lib/module/icons/XLS.js.map +1 -1
- package/lib/module/icons/XLSX.js.map +1 -1
- package/lib/module/icons/ZIP.js.map +1 -1
- package/lib/module/icons/utils/base.js.map +1 -1
- package/lib/module/init.js.map +1 -1
- package/lib/module/mock-builders/DB/mock.js.map +1 -1
- package/lib/module/mock-builders/api/deleteMessage.js.map +1 -1
- package/lib/module/mock-builders/api/deleteReaction.js.map +1 -1
- package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/module/mock-builders/api/sendReaction.js.map +1 -1
- package/lib/module/mock-builders/api/useMockedApis.js.map +1 -1
- package/lib/module/mock-builders/event/messageRead.js.map +1 -1
- package/lib/module/mock-builders/generator/attachment.js.map +1 -1
- package/lib/module/mock-builders/generator/channel.js.map +1 -1
- package/lib/module/mock-builders/generator/member.js.map +1 -1
- package/lib/module/mock-builders/generator/message.js.map +1 -1
- package/lib/module/mock-builders/generator/reaction.js.map +1 -1
- package/lib/module/mock-builders/generator/user.js.map +1 -1
- package/lib/module/mock-builders/mock.js.map +1 -1
- package/lib/module/native.js.map +1 -1
- package/lib/module/store/QuickSqliteClient.js.map +1 -1
- package/lib/module/store/apis/deleteReactions.js.map +1 -1
- package/lib/module/store/apis/getAllChannelIds.js.map +1 -1
- package/lib/module/store/apis/getAppSettings.js.map +1 -1
- package/lib/module/store/apis/getChannelMessages.js.map +1 -1
- package/lib/module/store/apis/getLastSyncedAt.js.map +1 -1
- package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
- package/lib/module/store/apis/queries/selectChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectMembersForChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectMessagesForChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectReactionsForMessages.js.map +1 -1
- package/lib/module/store/apis/queries/selectReadsForChannels.js.map +1 -1
- package/lib/module/store/apis/updateMessage.js.map +1 -1
- package/lib/module/store/apis/updateReaction.js.map +1 -1
- package/lib/module/store/apis/upsertChannels.js.map +1 -1
- package/lib/module/store/apis/upsertMembers.js.map +1 -1
- package/lib/module/store/apis/upsertReads.js.map +1 -1
- package/lib/module/store/apis/utils/convertFilterSortToQuery.js.map +1 -1
- package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapTaskToStorable.js.map +1 -1
- package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -1
- package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
- package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/module/test-utils/BetterSqlite.js.map +1 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/utils/DBSyncManager.js.map +1 -1
- package/lib/module/utils/Streami18n.js.map +1 -1
- package/lib/module/utils/addReactionToLocalState.js.map +1 -1
- package/lib/module/utils/date.js.map +1 -1
- package/lib/module/utils/getResizedImageUrl.js.map +1 -1
- package/lib/module/utils/patchMessageTextCommand.js.map +1 -1
- package/lib/module/utils/removeReactionFromLocalState.js.map +1 -1
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/ChannelList/ChannelList.d.ts +1 -1
- package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelPreviewMutedStatus.d.ts +1 -6
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
- package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -2
- package/lib/typescript/types/types.d.ts +1 -2
- package/package.json +1 -1
- package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +1 -3
- package/src/components/ChannelList/ChannelList.tsx +3 -0
- package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +2 -0
- package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +1 -1
- package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx +3 -18
- package/src/contexts/channelsContext/ChannelsContext.tsx +1 -3
- package/src/types/types.ts +1 -2
- package/src/version.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeReanimated","_OverlayContext","_native","HasPinched","exports","IsSwiping","MARGIN","useImageGalleryGestures","_ref","currentImageHeight","halfScreenHeight","halfScreenWidth","headerFooterVisible","offsetScale","overlayOpacity","photoLength","scale","screenHeight","screenWidth","selectedIndex","setSelectedIndex","translateX","translateY","translationX","_useOverlayContext","useOverlayContext","setOverlay","isAndroid","Platform","OS","hasHitBottomScale","useSharedValue","hasHitTopScale","originX","originY","oldFocalX","oldFocalY","focalX","focalY","index","value","offsetX","offsetY","focalOffsetX","focalOffsetY","adjustedFocalX","adjustedFocalY","tapX","tapY","numberOfPinchFingers","isSwiping","isPinch","hasPinched","resetTouchValues","UNDETERMINED","resetMovementValues","onPan","useAnimatedGestureHandler","onActive","evt","numberOfPointers","TRUE","FALSE","translationY","maxXYRatio","Math","abs","localEvtScale","onFinish","finalXPosition","velocityX","finalYPosition","velocityY","cancelAnimation","withTiming","duration","easing","Easing","out","ease","runOnJS","withDecay","clamp","deceleration","velocity","onStart","onPinch","triggerHaptic","onSingleTap","onDoubleTap","absoluteX","absoluteY","translateYTopBottom","lowerBound","upperBound","min","max"],"sources":["useImageGalleryGestures.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport type {\n PanGestureHandlerGestureEvent,\n PinchGestureHandlerGestureEvent,\n TapGestureHandlerGestureEvent,\n} from 'react-native-gesture-handler';\nimport {\n cancelAnimation,\n Easing,\n runOnJS,\n SharedValue,\n useAnimatedGestureHandler,\n useSharedValue,\n withDecay,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { useOverlayContext } from '../../../contexts/overlayContext/OverlayContext';\nimport { triggerHaptic } from '../../../native';\n\nexport enum HasPinched {\n FALSE = 0,\n TRUE,\n}\n\nexport enum IsSwiping {\n UNDETERMINED = 0,\n TRUE,\n FALSE,\n}\n\nconst MARGIN = 32;\n\nexport const useImageGalleryGestures = ({\n currentImageHeight,\n halfScreenHeight,\n halfScreenWidth,\n headerFooterVisible,\n offsetScale,\n overlayOpacity,\n photoLength,\n scale,\n screenHeight,\n screenWidth,\n selectedIndex,\n setSelectedIndex,\n translateX,\n translateY,\n translationX,\n}: {\n currentImageHeight: number;\n halfScreenHeight: number;\n halfScreenWidth: number;\n headerFooterVisible: SharedValue<number>;\n offsetScale: SharedValue<number>;\n overlayOpacity: SharedValue<number>;\n photoLength: number;\n scale: SharedValue<number>;\n screenHeight: number;\n screenWidth: number;\n selectedIndex: number;\n setSelectedIndex: React.Dispatch<React.SetStateAction<number>>;\n translateX: SharedValue<number>;\n translateY: SharedValue<number>;\n translationX: SharedValue<number>;\n}) => {\n const { setOverlay } = useOverlayContext();\n const isAndroid = Platform.OS === 'android';\n\n /**\n * Values to track scale for haptic feedback firing\n */\n const hasHitBottomScale = useSharedValue(1);\n const hasHitTopScale = useSharedValue(0);\n\n /**\n * Shared values for touch tracking\n */\n const originX = useSharedValue(0);\n const originY = useSharedValue(0);\n const oldFocalX = useSharedValue(0);\n const oldFocalY = useSharedValue(0);\n const focalX = useSharedValue(0);\n const focalY = useSharedValue(0);\n const index = useSharedValue(0);\n\n /**\n * if a specific image index > 0 has been passed in\n * while creating the hook, set the value of the index\n * reference to its value.\n *\n * This makes it possible to seelct an image in the list,\n * and scroll/pan as normal. Prior to this,\n * it was always assumed that one started at index 0 in the\n * gallery.\n * */\n if (index.value !== selectedIndex) {\n index.value = selectedIndex;\n }\n\n /**\n * Shared values for movement\n */\n const offsetX = useSharedValue(0);\n const offsetY = useSharedValue(0);\n\n /**\n * Shared values for touch tracking\n */\n const focalOffsetX = useSharedValue(0);\n const focalOffsetY = useSharedValue(0);\n const adjustedFocalX = useSharedValue(0);\n const adjustedFocalY = useSharedValue(0);\n const tapX = useSharedValue(0);\n const tapY = useSharedValue(0);\n\n /**\n * Shared values for gesture tracking\n */\n const numberOfPinchFingers = useSharedValue(0);\n const isSwiping = useSharedValue(0);\n const isPinch = useSharedValue(false);\n const hasPinched = useSharedValue(0);\n\n /**\n * Reset gesture values for use on touch release\n */\n const resetTouchValues = () => {\n 'worklet';\n focalX.value = 0;\n focalY.value = 0;\n oldFocalX.value = 0;\n oldFocalY.value = 0;\n originX.value = 0;\n originY.value = 0;\n focalOffsetX.value = 0;\n focalOffsetY.value = 0;\n numberOfPinchFingers.value = 0;\n isPinch.value = false;\n isSwiping.value = IsSwiping.UNDETERMINED;\n };\n\n /**\n * Reset movement values for use on selected photo change\n */\n const resetMovementValues = () => {\n 'worklet';\n translateX.value = 0;\n translateY.value = 0;\n scale.value = 1;\n offsetScale.value = 1;\n };\n\n /**\n * We use simultaneousHandlers to allow pan and pinch gesture handlers\n * depending on the gesture. The touch is fully handled by the pinch\n * gesture handler once it has began so all interactions by the pan\n * handler are blocked if isPinch.value is true\n */\n const onPan = useAnimatedGestureHandler<PanGestureHandlerGestureEvent>(\n {\n onActive: (evt) => {\n if (evt.numberOfPointers === 1 && !isPinch.value) {\n /**\n * If Android where a second finger cannot be added back and\n * removing one finger returns to Pan Handler then adjust origin\n * on finger remove and set swiping false\n */\n if (isAndroid && hasPinched.value === HasPinched.TRUE) {\n hasPinched.value = HasPinched.FALSE;\n isSwiping.value = IsSwiping.FALSE;\n offsetX.value = translateX.value + evt.translationX;\n offsetY.value = translateY.value - evt.translationY;\n }\n\n /**\n * isSwiping is used to prevent Y movement if a clear swipe to next\n * or previous is begun when at the edge of a photo. The value is\n * either 0, 1, or 2, via the IsSwiping enum designating undetermined,\n * true, or false and is reset on releasing the touch\n */\n if (isSwiping.value === IsSwiping.UNDETERMINED) {\n const maxXYRatio = isAndroid ? 1 : 0.25;\n if (\n Math.abs(evt.translationX / evt.translationY) > maxXYRatio &&\n (Math.abs(-halfScreenWidth * (scale.value - 1) - offsetX.value) < 3 ||\n Math.abs(halfScreenWidth * (scale.value - 1) - offsetX.value) < 3)\n ) {\n isSwiping.value = IsSwiping.TRUE;\n }\n if (Math.abs(evt.translationY) > 25) {\n isSwiping.value = IsSwiping.FALSE;\n }\n }\n\n /**\n * localEvtScale is used for swipe away\n */\n const localEvtScale = scale.value / offsetScale.value;\n\n /**\n * If not swiping translate the image in X and Y to the event\n * translation plus offset. If swiping only translate X, if\n * swiping down when at top of screen or centered balance scale\n * using offset to a degree (this needs improvement the calculation\n * is incorrect but likely needs origin use to be 100%)\n */\n translateX.value =\n scale.value !== offsetScale.value\n ? offsetX.value * localEvtScale - evt.translationX\n : offsetX.value - evt.translationX;\n translateY.value =\n isSwiping.value !== IsSwiping.TRUE\n ? scale.value !== offsetScale.value\n ? offsetY.value * localEvtScale + evt.translationY\n : offsetY.value + evt.translationY\n : translateY.value;\n\n /**\n * If swiping down start scaling down the image for swipe\n * away effect\n */\n scale.value =\n currentImageHeight * offsetScale.value < screenHeight && translateY.value > 0\n ? offsetScale.value * (1 - (1 / 3) * (translateY.value / screenHeight))\n : currentImageHeight * offsetScale.value > screenHeight &&\n translateY.value > (currentImageHeight / 2) * offsetScale.value - halfScreenHeight\n ? offsetScale.value *\n (1 -\n (1 / 3) *\n ((translateY.value -\n ((currentImageHeight / 2) * offsetScale.value - halfScreenHeight)) /\n screenHeight))\n : scale.value;\n\n overlayOpacity.value = localEvtScale;\n }\n },\n onFinish: (evt) => {\n if (!isPinch.value && evt.numberOfPointers < 2) {\n /**\n * To determine if the fling should page to the next image we\n * calculate a final position based on the current position and\n * event velocity\n */\n const finalXPosition = evt.translationX - evt.velocityX * 0.3;\n const finalYPosition = evt.translationY + evt.velocityY * 0.1;\n\n /**\n * If there is a next photo, the image is lined up to the right\n * edge, the swipe is to the left, and the final position is more\n * than half the screen width, move to the next image\n */\n if (\n index.value < photoLength - 1 &&\n Math.abs(halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 &&\n translateX.value < 0 &&\n finalXPosition < -halfScreenWidth &&\n isSwiping.value === IsSwiping.TRUE\n ) {\n cancelAnimation(translationX);\n translationX.value = withTiming(\n -(screenWidth + MARGIN) * (index.value + 1),\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n resetMovementValues();\n index.value = index.value + 1;\n runOnJS(setSelectedIndex)(index.value);\n },\n );\n\n /**\n * If there is a previous photo, the image is lined up to the left\n * edge, the swipe is to the right, and the final position is more\n * than half the screen width, move to the previous image\n */\n } else if (\n index.value > 0 &&\n Math.abs(-halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 &&\n translateX.value > 0 &&\n finalXPosition > halfScreenWidth &&\n isSwiping.value === IsSwiping.TRUE\n ) {\n cancelAnimation(translationX);\n translationX.value = withTiming(\n -(screenWidth + MARGIN) * (index.value - 1),\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n resetMovementValues();\n index.value = index.value - 1;\n runOnJS(setSelectedIndex)(index.value);\n },\n );\n }\n\n /**\n * When the pan is finished if the scale is less than 1 return the\n * photo to center, if the photo is inside the edges of the screen\n * return the photo to line up with the edges, otherwise use decay\n * with a clamping at the edges to give the effect the image is\n * sliding along using velocity and friction\n */\n translateX.value =\n scale.value < 1\n ? withTiming(0)\n : translateX.value > halfScreenWidth * (scale.value - 1)\n ? withTiming(halfScreenWidth * (scale.value - 1), {\n duration: 200,\n })\n : translateX.value < -halfScreenWidth * (scale.value - 1)\n ? withTiming(-halfScreenWidth * (scale.value - 1), {\n duration: 200,\n })\n : withDecay({\n clamp: [\n -halfScreenWidth * (scale.value - 1),\n halfScreenWidth * (scale.value - 1),\n ],\n deceleration: 0.99,\n velocity: -evt.velocityX,\n });\n\n /**\n * When the pan is finished if the height is less than the screen\n * height return the photo to center, if the photo is inside the\n * edges of the screen return the photo to line up with the edges,\n * otherwise use decay with a clamping at the edges to give the effect\n * the image is sliding along using velocity and friction\n */\n translateY.value =\n currentImageHeight * scale.value < screenHeight\n ? withTiming(0)\n : translateY.value > (currentImageHeight / 2) * scale.value - halfScreenHeight\n ? withTiming((currentImageHeight / 2) * scale.value - halfScreenHeight)\n : translateY.value < (-currentImageHeight / 2) * scale.value + halfScreenHeight\n ? withTiming((-currentImageHeight / 2) * scale.value + halfScreenHeight)\n : withDecay({\n clamp: [\n (-currentImageHeight / 2) * scale.value + halfScreenHeight,\n (currentImageHeight / 2) * scale.value - halfScreenHeight,\n ],\n deceleration: 0.99,\n velocity: evt.velocityY,\n });\n\n resetTouchValues();\n\n /**\n * If the scale has been reduced below one, i.e. zoomed out, translate\n * the zoom back to one\n */\n scale.value =\n scale.value !== offsetScale.value ? withTiming(offsetScale.value) : offsetScale.value;\n\n /**\n * If the photo is centered or at the top of the screen if scaled larger\n * than the screen, and not paging left or right, and the final Y position\n * is greater than half the screen using swipe velocity and position, close\n * the overlay\n */\n if (\n finalYPosition > halfScreenHeight &&\n offsetY.value + 8 >= (currentImageHeight / 2) * scale.value - halfScreenHeight &&\n isSwiping.value !== IsSwiping.TRUE &&\n translateY.value !== 0 &&\n !(\n Math.abs(halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 &&\n translateX.value < 0 &&\n finalXPosition < -halfScreenWidth\n ) &&\n !(\n Math.abs(-halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 &&\n translateX.value > 0 &&\n finalXPosition > halfScreenWidth\n )\n ) {\n cancelAnimation(translateX);\n cancelAnimation(translateY);\n cancelAnimation(scale);\n overlayOpacity.value = withTiming(\n 0,\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n runOnJS(setOverlay)('none');\n },\n );\n scale.value = withTiming(0.6, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n translateY.value =\n evt.velocityY > 1000\n ? withDecay({\n velocity: evt.velocityY,\n })\n : withTiming(halfScreenHeight + (currentImageHeight / 2) * scale.value, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n translateX.value = withDecay({\n velocity: -evt.velocityX,\n });\n }\n }\n },\n onStart: () => {\n if (!isPinch.value) {\n /**\n * Cancel any previous motion animation on translations when a touch\n * begins to interrupt the animation and take over the position handling\n */\n cancelAnimation(translateX);\n cancelAnimation(translateY);\n cancelAnimation(scale);\n offsetX.value = translateX.value;\n offsetY.value = translateY.value;\n }\n\n /**\n * Reset hasPinched for Android single finger offset\n */\n hasPinched.value = HasPinched.FALSE;\n },\n },\n [currentImageHeight, photoLength],\n );\n\n /**\n * On pinch is run when two or more fingers touch the screen, it then takes over\n * all touch handling even if the number of fingers is reduced to one until the\n * touch is complete\n */\n const onPinch = useAnimatedGestureHandler<PinchGestureHandlerGestureEvent>(\n {\n onActive: (evt) => {\n /**\n * Android starts with a zero event with 1 touch instead of two\n * we therefore must wait to capture starting info until the double\n * touch begins\n */\n if (!isPinch.value && isAndroid) {\n /**\n * Set hasPinched to true so when removing one finger the pan active\n * state adjusts the offset\n */\n hasPinched.value = HasPinched.TRUE;\n\n /**\n * Cancel any previous motion animation on translations when a touch\n * begins to interrupt the animation and take over the position handling\n */\n cancelAnimation(translateX);\n cancelAnimation(translateY);\n cancelAnimation(scale);\n\n /**\n * Reset isSwiping as now the pan gesture handler is no longer running\n */\n isSwiping.value = IsSwiping.UNDETERMINED;\n\n /**\n * Set initial values for pinch gesture interaction handler\n */\n numberOfPinchFingers.value = evt.numberOfPointers;\n offsetX.value = translateX.value;\n offsetY.value = translateY.value;\n adjustedFocalX.value = evt.focalX - (halfScreenWidth - offsetX.value);\n adjustedFocalY.value = evt.focalY - (halfScreenHeight + offsetY.value);\n originX.value = adjustedFocalX.value;\n originY.value = adjustedFocalY.value;\n offsetScale.value = scale.value;\n }\n\n /**\n * Set pinch to true to stop all pan gesture interactions, we do this\n * again here for Android outside the check that creates type\n */\n isPinch.value = true;\n\n /**\n * The scale is clamped to a minimum of 1 and maximum of 8 for aesthetics.\n * We use the clamped value to determine a local event scale so the focal\n * point does not become out of sync with the actual photo scaling, e.g.\n * evt.scale is 20 but scale is 8, using evt.scale for offset will put the\n * photo and calculations out of sync\n */\n scale.value = clamp(offsetScale.value * evt.scale, 1, 8);\n const localEvtScale = scale.value / offsetScale.value;\n\n /**\n * When we hit the top or bottom of the scale clamping we run a haptic\n * trigger, we track if it has been run to not spam the trigger\n */\n if (scale.value !== 8 && scale.value !== 1) {\n hasHitTopScale.value = 0;\n hasHitBottomScale.value = 0;\n } else if (scale.value === 8 && hasHitTopScale.value === 0) {\n hasHitTopScale.value = 1;\n runOnJS(triggerHaptic)('impactLight');\n } else if (scale.value === 1 && hasHitBottomScale.value === 0) {\n hasHitBottomScale.value = 1;\n runOnJS(triggerHaptic)('impactLight');\n }\n\n /**\n * We calculate the adjusted focal point on the photo using the events\n * focal position on the screen, screen size, and current photo offset\n */\n adjustedFocalX.value = evt.focalX - (halfScreenWidth - offsetX.value);\n adjustedFocalY.value = evt.focalY - (halfScreenHeight + offsetY.value);\n\n /**\n * If the number of fingers on the screen changes, the position of the\n * focal point will change and this needs to be accounted for, e.g. if\n * two fingers are on the screen the focal is between them, but if one is\n * then removed the focal is now at the remaining fingers touch position.\n * If this happens without accounting for the change the image will jump\n * around, we keep track of the previous two finger focal to adjust for this\n * change in a reduction from two fingers to one, then if another finger\n * is added again we adjust the origin to account for the difference between\n * the original two finger touch and the new two finger touch position.\n */\n if (numberOfPinchFingers.value !== evt.numberOfPointers) {\n numberOfPinchFingers.value = evt.numberOfPointers;\n if (evt.numberOfPointers === 1) {\n focalOffsetX.value = oldFocalX.value - adjustedFocalX.value;\n focalOffsetY.value = oldFocalY.value - adjustedFocalY.value;\n } else if (numberOfPinchFingers.value > 1) {\n originX.value =\n originX.value -\n (oldFocalX.value / localEvtScale - adjustedFocalX.value / localEvtScale);\n originY.value =\n originY.value -\n (oldFocalY.value / localEvtScale - adjustedFocalY.value / localEvtScale);\n }\n }\n\n /**\n * If pinch handler has been activated via two fingers then the fingers\n * reduced to one we keep track of the old focal using the focal offset\n * from when the number of fingers was two. We then translate the photo\n * taking into account the offset, focal, focal offset, origin, and scale.\n */\n if (numberOfPinchFingers.value === 1) {\n oldFocalX.value = adjustedFocalX.value + focalOffsetX.value;\n oldFocalY.value = adjustedFocalY.value + focalOffsetY.value;\n translateX.value = offsetX.value - oldFocalX.value + localEvtScale * originX.value;\n translateY.value = offsetY.value + oldFocalY.value - localEvtScale * originY.value;\n\n /**\n * If the number of fingers in the gesture is greater than one the\n * adjusted focal point is saved as the old focal and the photo is\n * translated taking into account the offset, focal, origin, and scale.\n */\n } else if (numberOfPinchFingers.value > 1) {\n oldFocalX.value = adjustedFocalX.value;\n oldFocalY.value = adjustedFocalY.value;\n translateX.value = offsetX.value - adjustedFocalX.value + localEvtScale * originX.value;\n translateY.value = offsetY.value + adjustedFocalY.value - localEvtScale * originY.value;\n }\n },\n onFinish: () => {\n if (isPinch.value) {\n /**\n * When the pinch is finished if the scale is less than 1 return the\n * photo to center, if the photo is inside the edges of the screen\n * return the photo to line up with the edges, otherwise leave the\n * photo in its current position\n */\n translateX.value =\n scale.value < 1\n ? withTiming(0)\n : translateX.value > halfScreenWidth * (scale.value - 1)\n ? withTiming(halfScreenWidth * (scale.value - 1))\n : translateX.value < -halfScreenWidth * (scale.value - 1)\n ? withTiming(-halfScreenWidth * (scale.value - 1))\n : translateX.value;\n\n /**\n * When the pinch is finished if the height is less than the screen\n * height return the photo to center, if the photo is inside the\n * edges of the screen return the photo to line up with the edges,\n * otherwise leave the photo in its current position\n */\n translateY.value =\n currentImageHeight * scale.value < screenHeight\n ? withTiming(0)\n : translateY.value > (currentImageHeight / 2) * scale.value - screenHeight / 2\n ? withTiming((currentImageHeight / 2) * scale.value - screenHeight / 2)\n : translateY.value < (-currentImageHeight / 2) * scale.value + screenHeight / 2\n ? withTiming((-currentImageHeight / 2) * scale.value + screenHeight / 2)\n : translateY.value;\n\n /**\n * If the scale has been reduced below one, i.e. zoomed out, translate\n * the zoom back to one\n */\n offsetScale.value = scale.value < 1 ? 1 : scale.value;\n scale.value = scale.value < 1 ? withTiming(1) : scale.value;\n resetTouchValues();\n }\n },\n onStart: (evt) => {\n /**\n * Android starts with a zero event with 1 touch instead of two\n * we therefore must wait to capture starting info until the double\n * touch begins\n */\n if (!isAndroid) {\n /**\n * Cancel any previous motion animation on translations when a touch\n * begins to interrupt the animation and take over the position handling\n */\n cancelAnimation(translateX);\n cancelAnimation(translateY);\n cancelAnimation(scale);\n\n /**\n * Set pinch to true to stop all pan gesture interactions\n */\n isPinch.value = true;\n\n /**\n * Reset isSwiping as now the pan gesture handler is no longer running\n */\n isSwiping.value = IsSwiping.UNDETERMINED;\n\n /**\n * Set initial values for pinch gesture interaction handler\n */\n numberOfPinchFingers.value = evt.numberOfPointers;\n offsetX.value = translateX.value;\n offsetY.value = translateY.value;\n adjustedFocalX.value = evt.focalX - (halfScreenWidth - offsetX.value);\n adjustedFocalY.value = evt.focalY - (halfScreenHeight + offsetY.value);\n originX.value = adjustedFocalX.value;\n originY.value = adjustedFocalY.value;\n offsetScale.value = scale.value;\n }\n\n /**\n * Reset hasPinched for Android single finger offset\n */\n hasPinched.value = HasPinched.FALSE;\n },\n },\n [currentImageHeight],\n );\n\n /**\n * Single tap handler for header hiding and showing\n */\n const onSingleTap = useAnimatedGestureHandler<TapGestureHandlerGestureEvent>({\n onActive: () => {\n cancelAnimation(headerFooterVisible);\n headerFooterVisible.value = headerFooterVisible.value > 0 ? withTiming(0) : withTiming(1);\n },\n });\n\n /**\n * Double tap handler to zoom back out and hide header and footer\n */\n const onDoubleTap = useAnimatedGestureHandler<TapGestureHandlerGestureEvent>({\n onActive: (evt) => {\n if (Math.abs(tapX.value - evt.absoluteX) < 64 && Math.abs(tapY.value - evt.absoluteY) < 64) {\n if (offsetScale.value === 1 && offsetX.value === 0 && offsetY.value === 0) {\n offsetScale.value = 2;\n scale.value = withTiming(2, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n translateX.value = withTiming(evt.absoluteX - halfScreenWidth, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n if (currentImageHeight * 2 > screenHeight) {\n const translateYTopBottom =\n evt.absoluteY > halfScreenHeight\n ? -(currentImageHeight * 2 - screenHeight) / 2\n : (currentImageHeight * 2 - screenHeight) / 2;\n translateY.value = withTiming(translateYTopBottom, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n }\n } else {\n offsetScale.value = 1;\n scale.value = withTiming(1, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n offsetX.value = 0;\n offsetY.value = 0;\n translateX.value = withTiming(0, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n translateY.value = withTiming(0, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n if (headerFooterVisible.value !== 0) {\n cancelAnimation(headerFooterVisible);\n headerFooterVisible.value = withTiming(0);\n }\n }\n }\n },\n onStart: (evt) => {\n tapX.value = evt.absoluteX;\n tapY.value = evt.absoluteY;\n },\n });\n\n return {\n onDoubleTap,\n onPan,\n onPinch,\n onSingleTap,\n };\n};\n\n/**\n * Clamping worklet to clamp the scaling\n */\nexport const clamp = (value: number, lowerBound: number, upperBound: number) => {\n 'worklet';\n return Math.min(Math.max(lowerBound, value), upperBound);\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeReanimated","_OverlayContext","_native","HasPinched","exports","IsSwiping","MARGIN","useImageGalleryGestures","_ref","currentImageHeight","halfScreenHeight","halfScreenWidth","headerFooterVisible","offsetScale","overlayOpacity","photoLength","scale","screenHeight","screenWidth","selectedIndex","setSelectedIndex","translateX","translateY","translationX","_useOverlayContext","useOverlayContext","setOverlay","isAndroid","Platform","OS","hasHitBottomScale","useSharedValue","hasHitTopScale","originX","originY","oldFocalX","oldFocalY","focalX","focalY","index","value","offsetX","offsetY","focalOffsetX","focalOffsetY","adjustedFocalX","adjustedFocalY","tapX","tapY","numberOfPinchFingers","isSwiping","isPinch","hasPinched","resetTouchValues","UNDETERMINED","resetMovementValues","onPan","useAnimatedGestureHandler","onActive","evt","numberOfPointers","TRUE","FALSE","translationY","maxXYRatio","Math","abs","localEvtScale","onFinish","finalXPosition","velocityX","finalYPosition","velocityY","cancelAnimation","withTiming","duration","easing","Easing","out","ease","runOnJS","withDecay","clamp","deceleration","velocity","onStart","onPinch","triggerHaptic","onSingleTap","onDoubleTap","absoluteX","absoluteY","translateYTopBottom","lowerBound","upperBound","min","max"],"sources":["useImageGalleryGestures.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport type {\n PanGestureHandlerGestureEvent,\n PinchGestureHandlerGestureEvent,\n TapGestureHandlerGestureEvent,\n} from 'react-native-gesture-handler';\nimport {\n cancelAnimation,\n Easing,\n runOnJS,\n SharedValue,\n useAnimatedGestureHandler,\n useSharedValue,\n withDecay,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { useOverlayContext } from '../../../contexts/overlayContext/OverlayContext';\nimport { triggerHaptic } from '../../../native';\n\nexport enum HasPinched {\n FALSE = 0,\n TRUE,\n}\n\nexport enum IsSwiping {\n UNDETERMINED = 0,\n TRUE,\n FALSE,\n}\n\nconst MARGIN = 32;\n\nexport const useImageGalleryGestures = ({\n currentImageHeight,\n halfScreenHeight,\n halfScreenWidth,\n headerFooterVisible,\n offsetScale,\n overlayOpacity,\n photoLength,\n scale,\n screenHeight,\n screenWidth,\n selectedIndex,\n setSelectedIndex,\n translateX,\n translateY,\n translationX,\n}: {\n currentImageHeight: number;\n halfScreenHeight: number;\n halfScreenWidth: number;\n headerFooterVisible: SharedValue<number>;\n offsetScale: SharedValue<number>;\n overlayOpacity: SharedValue<number>;\n photoLength: number;\n scale: SharedValue<number>;\n screenHeight: number;\n screenWidth: number;\n selectedIndex: number;\n setSelectedIndex: React.Dispatch<React.SetStateAction<number>>;\n translateX: SharedValue<number>;\n translateY: SharedValue<number>;\n translationX: SharedValue<number>;\n}) => {\n const { setOverlay } = useOverlayContext();\n const isAndroid = Platform.OS === 'android';\n\n /**\n * Values to track scale for haptic feedback firing\n */\n const hasHitBottomScale = useSharedValue(1);\n const hasHitTopScale = useSharedValue(0);\n\n /**\n * Shared values for touch tracking\n */\n const originX = useSharedValue(0);\n const originY = useSharedValue(0);\n const oldFocalX = useSharedValue(0);\n const oldFocalY = useSharedValue(0);\n const focalX = useSharedValue(0);\n const focalY = useSharedValue(0);\n const index = useSharedValue(0);\n\n /**\n * if a specific image index > 0 has been passed in\n * while creating the hook, set the value of the index\n * reference to its value.\n *\n * This makes it possible to seelct an image in the list,\n * and scroll/pan as normal. Prior to this,\n * it was always assumed that one started at index 0 in the\n * gallery.\n * */\n if (index.value !== selectedIndex) {\n index.value = selectedIndex;\n }\n\n /**\n * Shared values for movement\n */\n const offsetX = useSharedValue(0);\n const offsetY = useSharedValue(0);\n\n /**\n * Shared values for touch tracking\n */\n const focalOffsetX = useSharedValue(0);\n const focalOffsetY = useSharedValue(0);\n const adjustedFocalX = useSharedValue(0);\n const adjustedFocalY = useSharedValue(0);\n const tapX = useSharedValue(0);\n const tapY = useSharedValue(0);\n\n /**\n * Shared values for gesture tracking\n */\n const numberOfPinchFingers = useSharedValue(0);\n const isSwiping = useSharedValue(0);\n const isPinch = useSharedValue(false);\n const hasPinched = useSharedValue(0);\n\n /**\n * Reset gesture values for use on touch release\n */\n const resetTouchValues = () => {\n 'worklet';\n focalX.value = 0;\n focalY.value = 0;\n oldFocalX.value = 0;\n oldFocalY.value = 0;\n originX.value = 0;\n originY.value = 0;\n focalOffsetX.value = 0;\n focalOffsetY.value = 0;\n numberOfPinchFingers.value = 0;\n isPinch.value = false;\n isSwiping.value = IsSwiping.UNDETERMINED;\n };\n\n /**\n * Reset movement values for use on selected photo change\n */\n const resetMovementValues = () => {\n 'worklet';\n translateX.value = 0;\n translateY.value = 0;\n scale.value = 1;\n offsetScale.value = 1;\n };\n\n /**\n * We use simultaneousHandlers to allow pan and pinch gesture handlers\n * depending on the gesture. The touch is fully handled by the pinch\n * gesture handler once it has began so all interactions by the pan\n * handler are blocked if isPinch.value is true\n */\n const onPan = useAnimatedGestureHandler<PanGestureHandlerGestureEvent>(\n {\n onActive: (evt) => {\n if (evt.numberOfPointers === 1 && !isPinch.value) {\n /**\n * If Android where a second finger cannot be added back and\n * removing one finger returns to Pan Handler then adjust origin\n * on finger remove and set swiping false\n */\n if (isAndroid && hasPinched.value === HasPinched.TRUE) {\n hasPinched.value = HasPinched.FALSE;\n isSwiping.value = IsSwiping.FALSE;\n offsetX.value = translateX.value + evt.translationX;\n offsetY.value = translateY.value - evt.translationY;\n }\n\n /**\n * isSwiping is used to prevent Y movement if a clear swipe to next\n * or previous is begun when at the edge of a photo. The value is\n * either 0, 1, or 2, via the IsSwiping enum designating undetermined,\n * true, or false and is reset on releasing the touch\n */\n if (isSwiping.value === IsSwiping.UNDETERMINED) {\n const maxXYRatio = isAndroid ? 1 : 0.25;\n if (\n Math.abs(evt.translationX / evt.translationY) > maxXYRatio &&\n (Math.abs(-halfScreenWidth * (scale.value - 1) - offsetX.value) < 3 ||\n Math.abs(halfScreenWidth * (scale.value - 1) - offsetX.value) < 3)\n ) {\n isSwiping.value = IsSwiping.TRUE;\n }\n if (Math.abs(evt.translationY) > 25) {\n isSwiping.value = IsSwiping.FALSE;\n }\n }\n\n /**\n * localEvtScale is used for swipe away\n */\n const localEvtScale = scale.value / offsetScale.value;\n\n /**\n * If not swiping translate the image in X and Y to the event\n * translation plus offset. If swiping only translate X, if\n * swiping down when at top of screen or centered balance scale\n * using offset to a degree (this needs improvement the calculation\n * is incorrect but likely needs origin use to be 100%)\n */\n translateX.value =\n scale.value !== offsetScale.value\n ? offsetX.value * localEvtScale - evt.translationX\n : offsetX.value - evt.translationX;\n translateY.value =\n isSwiping.value !== IsSwiping.TRUE\n ? scale.value !== offsetScale.value\n ? offsetY.value * localEvtScale + evt.translationY\n : offsetY.value + evt.translationY\n : translateY.value;\n\n /**\n * If swiping down start scaling down the image for swipe\n * away effect\n */\n scale.value =\n currentImageHeight * offsetScale.value < screenHeight && translateY.value > 0\n ? offsetScale.value * (1 - (1 / 3) * (translateY.value / screenHeight))\n : currentImageHeight * offsetScale.value > screenHeight &&\n translateY.value > (currentImageHeight / 2) * offsetScale.value - halfScreenHeight\n ? offsetScale.value *\n (1 -\n (1 / 3) *\n ((translateY.value -\n ((currentImageHeight / 2) * offsetScale.value - halfScreenHeight)) /\n screenHeight))\n : scale.value;\n\n overlayOpacity.value = localEvtScale;\n }\n },\n onFinish: (evt) => {\n if (!isPinch.value && evt.numberOfPointers < 2) {\n /**\n * To determine if the fling should page to the next image we\n * calculate a final position based on the current position and\n * event velocity\n */\n const finalXPosition = evt.translationX - evt.velocityX * 0.3;\n const finalYPosition = evt.translationY + evt.velocityY * 0.1;\n\n /**\n * If there is a next photo, the image is lined up to the right\n * edge, the swipe is to the left, and the final position is more\n * than half the screen width, move to the next image\n */\n if (\n index.value < photoLength - 1 &&\n Math.abs(halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 &&\n translateX.value < 0 &&\n finalXPosition < -halfScreenWidth &&\n isSwiping.value === IsSwiping.TRUE\n ) {\n cancelAnimation(translationX);\n translationX.value = withTiming(\n -(screenWidth + MARGIN) * (index.value + 1),\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n resetMovementValues();\n index.value = index.value + 1;\n runOnJS(setSelectedIndex)(index.value);\n },\n );\n\n /**\n * If there is a previous photo, the image is lined up to the left\n * edge, the swipe is to the right, and the final position is more\n * than half the screen width, move to the previous image\n */\n } else if (\n index.value > 0 &&\n Math.abs(-halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 &&\n translateX.value > 0 &&\n finalXPosition > halfScreenWidth &&\n isSwiping.value === IsSwiping.TRUE\n ) {\n cancelAnimation(translationX);\n translationX.value = withTiming(\n -(screenWidth + MARGIN) * (index.value - 1),\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n resetMovementValues();\n index.value = index.value - 1;\n runOnJS(setSelectedIndex)(index.value);\n },\n );\n }\n\n /**\n * When the pan is finished if the scale is less than 1 return the\n * photo to center, if the photo is inside the edges of the screen\n * return the photo to line up with the edges, otherwise use decay\n * with a clamping at the edges to give the effect the image is\n * sliding along using velocity and friction\n */\n translateX.value =\n scale.value < 1\n ? withTiming(0)\n : translateX.value > halfScreenWidth * (scale.value - 1)\n ? withTiming(halfScreenWidth * (scale.value - 1), {\n duration: 200,\n })\n : translateX.value < -halfScreenWidth * (scale.value - 1)\n ? withTiming(-halfScreenWidth * (scale.value - 1), {\n duration: 200,\n })\n : withDecay({\n clamp: [\n -halfScreenWidth * (scale.value - 1),\n halfScreenWidth * (scale.value - 1),\n ],\n deceleration: 0.99,\n velocity: -evt.velocityX,\n });\n\n /**\n * When the pan is finished if the height is less than the screen\n * height return the photo to center, if the photo is inside the\n * edges of the screen return the photo to line up with the edges,\n * otherwise use decay with a clamping at the edges to give the effect\n * the image is sliding along using velocity and friction\n */\n translateY.value =\n currentImageHeight * scale.value < screenHeight\n ? withTiming(0)\n : translateY.value > (currentImageHeight / 2) * scale.value - halfScreenHeight\n ? withTiming((currentImageHeight / 2) * scale.value - halfScreenHeight)\n : translateY.value < (-currentImageHeight / 2) * scale.value + halfScreenHeight\n ? withTiming((-currentImageHeight / 2) * scale.value + halfScreenHeight)\n : withDecay({\n clamp: [\n (-currentImageHeight / 2) * scale.value + halfScreenHeight,\n (currentImageHeight / 2) * scale.value - halfScreenHeight,\n ],\n deceleration: 0.99,\n velocity: evt.velocityY,\n });\n\n resetTouchValues();\n\n /**\n * If the scale has been reduced below one, i.e. zoomed out, translate\n * the zoom back to one\n */\n scale.value =\n scale.value !== offsetScale.value ? withTiming(offsetScale.value) : offsetScale.value;\n\n /**\n * If the photo is centered or at the top of the screen if scaled larger\n * than the screen, and not paging left or right, and the final Y position\n * is greater than half the screen using swipe velocity and position, close\n * the overlay\n */\n if (\n finalYPosition > halfScreenHeight &&\n offsetY.value + 8 >= (currentImageHeight / 2) * scale.value - halfScreenHeight &&\n isSwiping.value !== IsSwiping.TRUE &&\n translateY.value !== 0 &&\n !(\n Math.abs(halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 &&\n translateX.value < 0 &&\n finalXPosition < -halfScreenWidth\n ) &&\n !(\n Math.abs(-halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 &&\n translateX.value > 0 &&\n finalXPosition > halfScreenWidth\n )\n ) {\n cancelAnimation(translateX);\n cancelAnimation(translateY);\n cancelAnimation(scale);\n overlayOpacity.value = withTiming(\n 0,\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n runOnJS(setOverlay)('none');\n },\n );\n scale.value = withTiming(0.6, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n translateY.value =\n evt.velocityY > 1000\n ? withDecay({\n velocity: evt.velocityY,\n })\n : withTiming(halfScreenHeight + (currentImageHeight / 2) * scale.value, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n translateX.value = withDecay({\n velocity: -evt.velocityX,\n });\n }\n }\n },\n onStart: () => {\n if (!isPinch.value) {\n /**\n * Cancel any previous motion animation on translations when a touch\n * begins to interrupt the animation and take over the position handling\n */\n cancelAnimation(translateX);\n cancelAnimation(translateY);\n cancelAnimation(scale);\n offsetX.value = translateX.value;\n offsetY.value = translateY.value;\n }\n\n /**\n * Reset hasPinched for Android single finger offset\n */\n hasPinched.value = HasPinched.FALSE;\n },\n },\n [currentImageHeight, photoLength],\n );\n\n /**\n * On pinch is run when two or more fingers touch the screen, it then takes over\n * all touch handling even if the number of fingers is reduced to one until the\n * touch is complete\n */\n const onPinch = useAnimatedGestureHandler<PinchGestureHandlerGestureEvent>(\n {\n onActive: (evt) => {\n /**\n * Android starts with a zero event with 1 touch instead of two\n * we therefore must wait to capture starting info until the double\n * touch begins\n */\n if (!isPinch.value && isAndroid) {\n /**\n * Set hasPinched to true so when removing one finger the pan active\n * state adjusts the offset\n */\n hasPinched.value = HasPinched.TRUE;\n\n /**\n * Cancel any previous motion animation on translations when a touch\n * begins to interrupt the animation and take over the position handling\n */\n cancelAnimation(translateX);\n cancelAnimation(translateY);\n cancelAnimation(scale);\n\n /**\n * Reset isSwiping as now the pan gesture handler is no longer running\n */\n isSwiping.value = IsSwiping.UNDETERMINED;\n\n /**\n * Set initial values for pinch gesture interaction handler\n */\n numberOfPinchFingers.value = evt.numberOfPointers;\n offsetX.value = translateX.value;\n offsetY.value = translateY.value;\n adjustedFocalX.value = evt.focalX - (halfScreenWidth - offsetX.value);\n adjustedFocalY.value = evt.focalY - (halfScreenHeight + offsetY.value);\n originX.value = adjustedFocalX.value;\n originY.value = adjustedFocalY.value;\n offsetScale.value = scale.value;\n }\n\n /**\n * Set pinch to true to stop all pan gesture interactions, we do this\n * again here for Android outside the check that creates type\n */\n isPinch.value = true;\n\n /**\n * The scale is clamped to a minimum of 1 and maximum of 8 for aesthetics.\n * We use the clamped value to determine a local event scale so the focal\n * point does not become out of sync with the actual photo scaling, e.g.\n * evt.scale is 20 but scale is 8, using evt.scale for offset will put the\n * photo and calculations out of sync\n */\n scale.value = clamp(offsetScale.value * evt.scale, 1, 8);\n const localEvtScale = scale.value / offsetScale.value;\n\n /**\n * When we hit the top or bottom of the scale clamping we run a haptic\n * trigger, we track if it has been run to not spam the trigger\n */\n if (scale.value !== 8 && scale.value !== 1) {\n hasHitTopScale.value = 0;\n hasHitBottomScale.value = 0;\n } else if (scale.value === 8 && hasHitTopScale.value === 0) {\n hasHitTopScale.value = 1;\n runOnJS(triggerHaptic)('impactLight');\n } else if (scale.value === 1 && hasHitBottomScale.value === 0) {\n hasHitBottomScale.value = 1;\n runOnJS(triggerHaptic)('impactLight');\n }\n\n /**\n * We calculate the adjusted focal point on the photo using the events\n * focal position on the screen, screen size, and current photo offset\n */\n adjustedFocalX.value = evt.focalX - (halfScreenWidth - offsetX.value);\n adjustedFocalY.value = evt.focalY - (halfScreenHeight + offsetY.value);\n\n /**\n * If the number of fingers on the screen changes, the position of the\n * focal point will change and this needs to be accounted for, e.g. if\n * two fingers are on the screen the focal is between them, but if one is\n * then removed the focal is now at the remaining fingers touch position.\n * If this happens without accounting for the change the image will jump\n * around, we keep track of the previous two finger focal to adjust for this\n * change in a reduction from two fingers to one, then if another finger\n * is added again we adjust the origin to account for the difference between\n * the original two finger touch and the new two finger touch position.\n */\n if (numberOfPinchFingers.value !== evt.numberOfPointers) {\n numberOfPinchFingers.value = evt.numberOfPointers;\n if (evt.numberOfPointers === 1) {\n focalOffsetX.value = oldFocalX.value - adjustedFocalX.value;\n focalOffsetY.value = oldFocalY.value - adjustedFocalY.value;\n } else if (numberOfPinchFingers.value > 1) {\n originX.value =\n originX.value -\n (oldFocalX.value / localEvtScale - adjustedFocalX.value / localEvtScale);\n originY.value =\n originY.value -\n (oldFocalY.value / localEvtScale - adjustedFocalY.value / localEvtScale);\n }\n }\n\n /**\n * If pinch handler has been activated via two fingers then the fingers\n * reduced to one we keep track of the old focal using the focal offset\n * from when the number of fingers was two. We then translate the photo\n * taking into account the offset, focal, focal offset, origin, and scale.\n */\n if (numberOfPinchFingers.value === 1) {\n oldFocalX.value = adjustedFocalX.value + focalOffsetX.value;\n oldFocalY.value = adjustedFocalY.value + focalOffsetY.value;\n translateX.value = offsetX.value - oldFocalX.value + localEvtScale * originX.value;\n translateY.value = offsetY.value + oldFocalY.value - localEvtScale * originY.value;\n\n /**\n * If the number of fingers in the gesture is greater than one the\n * adjusted focal point is saved as the old focal and the photo is\n * translated taking into account the offset, focal, origin, and scale.\n */\n } else if (numberOfPinchFingers.value > 1) {\n oldFocalX.value = adjustedFocalX.value;\n oldFocalY.value = adjustedFocalY.value;\n translateX.value = offsetX.value - adjustedFocalX.value + localEvtScale * originX.value;\n translateY.value = offsetY.value + adjustedFocalY.value - localEvtScale * originY.value;\n }\n },\n onFinish: () => {\n if (isPinch.value) {\n /**\n * When the pinch is finished if the scale is less than 1 return the\n * photo to center, if the photo is inside the edges of the screen\n * return the photo to line up with the edges, otherwise leave the\n * photo in its current position\n */\n translateX.value =\n scale.value < 1\n ? withTiming(0)\n : translateX.value > halfScreenWidth * (scale.value - 1)\n ? withTiming(halfScreenWidth * (scale.value - 1))\n : translateX.value < -halfScreenWidth * (scale.value - 1)\n ? withTiming(-halfScreenWidth * (scale.value - 1))\n : translateX.value;\n\n /**\n * When the pinch is finished if the height is less than the screen\n * height return the photo to center, if the photo is inside the\n * edges of the screen return the photo to line up with the edges,\n * otherwise leave the photo in its current position\n */\n translateY.value =\n currentImageHeight * scale.value < screenHeight\n ? withTiming(0)\n : translateY.value > (currentImageHeight / 2) * scale.value - screenHeight / 2\n ? withTiming((currentImageHeight / 2) * scale.value - screenHeight / 2)\n : translateY.value < (-currentImageHeight / 2) * scale.value + screenHeight / 2\n ? withTiming((-currentImageHeight / 2) * scale.value + screenHeight / 2)\n : translateY.value;\n\n /**\n * If the scale has been reduced below one, i.e. zoomed out, translate\n * the zoom back to one\n */\n offsetScale.value = scale.value < 1 ? 1 : scale.value;\n scale.value = scale.value < 1 ? withTiming(1) : scale.value;\n resetTouchValues();\n }\n },\n onStart: (evt) => {\n /**\n * Android starts with a zero event with 1 touch instead of two\n * we therefore must wait to capture starting info until the double\n * touch begins\n */\n if (!isAndroid) {\n /**\n * Cancel any previous motion animation on translations when a touch\n * begins to interrupt the animation and take over the position handling\n */\n cancelAnimation(translateX);\n cancelAnimation(translateY);\n cancelAnimation(scale);\n\n /**\n * Set pinch to true to stop all pan gesture interactions\n */\n isPinch.value = true;\n\n /**\n * Reset isSwiping as now the pan gesture handler is no longer running\n */\n isSwiping.value = IsSwiping.UNDETERMINED;\n\n /**\n * Set initial values for pinch gesture interaction handler\n */\n numberOfPinchFingers.value = evt.numberOfPointers;\n offsetX.value = translateX.value;\n offsetY.value = translateY.value;\n adjustedFocalX.value = evt.focalX - (halfScreenWidth - offsetX.value);\n adjustedFocalY.value = evt.focalY - (halfScreenHeight + offsetY.value);\n originX.value = adjustedFocalX.value;\n originY.value = adjustedFocalY.value;\n offsetScale.value = scale.value;\n }\n\n /**\n * Reset hasPinched for Android single finger offset\n */\n hasPinched.value = HasPinched.FALSE;\n },\n },\n [currentImageHeight],\n );\n\n /**\n * Single tap handler for header hiding and showing\n */\n const onSingleTap = useAnimatedGestureHandler<TapGestureHandlerGestureEvent>({\n onActive: () => {\n cancelAnimation(headerFooterVisible);\n headerFooterVisible.value = headerFooterVisible.value > 0 ? withTiming(0) : withTiming(1);\n },\n });\n\n /**\n * Double tap handler to zoom back out and hide header and footer\n */\n const onDoubleTap = useAnimatedGestureHandler<TapGestureHandlerGestureEvent>({\n onActive: (evt) => {\n if (Math.abs(tapX.value - evt.absoluteX) < 64 && Math.abs(tapY.value - evt.absoluteY) < 64) {\n if (offsetScale.value === 1 && offsetX.value === 0 && offsetY.value === 0) {\n offsetScale.value = 2;\n scale.value = withTiming(2, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n translateX.value = withTiming(evt.absoluteX - halfScreenWidth, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n if (currentImageHeight * 2 > screenHeight) {\n const translateYTopBottom =\n evt.absoluteY > halfScreenHeight\n ? -(currentImageHeight * 2 - screenHeight) / 2\n : (currentImageHeight * 2 - screenHeight) / 2;\n translateY.value = withTiming(translateYTopBottom, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n }\n } else {\n offsetScale.value = 1;\n scale.value = withTiming(1, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n offsetX.value = 0;\n offsetY.value = 0;\n translateX.value = withTiming(0, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n translateY.value = withTiming(0, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n if (headerFooterVisible.value !== 0) {\n cancelAnimation(headerFooterVisible);\n headerFooterVisible.value = withTiming(0);\n }\n }\n }\n },\n onStart: (evt) => {\n tapX.value = evt.absoluteX;\n tapY.value = evt.absoluteY;\n },\n });\n\n return {\n onDoubleTap,\n onPan,\n onPinch,\n onSingleTap,\n };\n};\n\n/**\n * Clamping worklet to clamp the scaling\n */\nexport const clamp = (value: number, lowerBound: number, upperBound: number) => {\n 'worklet';\n return Math.min(Math.max(lowerBound, value), upperBound);\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_MessageIcon","_utils","_this","_jsxFileName","width","vw","styles","StyleSheet","create","channelContainer","alignItems","flex","justifyContent","channelDetails","fontSize","textAlign","channelTitle","paddingBottom","paddingTop","EmptyStateIndicator","_ref","listType","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","grey","grey_gainsboro","_useTheme$theme$empty","emptyStateIndicator","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","MessageIcon","height","pathFill","Text","color","testID","exports"],"sources":["EmptyStateIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { MessageIcon } from '../../icons/MessageIcon';\nimport { vw } from '../../utils/utils';\n\nconst width = vw(33);\n\nconst styles = StyleSheet.create({\n channelContainer: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n channelDetails: {\n fontSize: 14,\n textAlign: 'center',\n width: vw(66),\n },\n channelTitle: {\n fontSize: 16,\n paddingBottom: 8,\n paddingTop: 16,\n },\n});\n\nexport type EmptyStateProps = {\n listType?: 'channel' | 'message' | 'default';\n};\n\nexport const EmptyStateIndicator: React.FC<EmptyStateProps> = ({ listType }) => {\n const {\n theme: {\n colors: { black, grey, grey_gainsboro },\n emptyStateIndicator: { channelContainer, channelDetails, channelTitle },\n },\n } = useTheme();\n\n switch (listType) {\n case 'channel':\n return (\n <View style={[styles.channelContainer, channelContainer]}>\n <MessageIcon height={width} pathFill={grey_gainsboro} width={width} />\n <Text\n style={[styles.channelTitle, { color: black }, channelTitle]}\n testID='empty-channel-state-title'\n >\n {\"Let's start chatting!\"}\n </Text>\n <Text\n style={[styles.channelDetails, { color: grey }, channelDetails]}\n testID='empty-channel-state-details'\n >\n {'How about sending your first message to a friend?'}\n </Text>\n </View>\n );\n case 'message':\n return null;\n default:\n return <Text style={{ color: black }}>No items exist</Text>;\n }\n};\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAAuC,IAAAK,KAAA;EAAAC,YAAA;AAEvC,IAAMC,KAAK,GAAG,IAAAC,SAAE,EAAC,EAAE,CAAC;AAEpB,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,gBAAgB,EAAE;IAChBC,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE;EAClB,CAAC;EACDC,cAAc,EAAE;IACdC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,QAAQ;IACnBX,KAAK,EAAE,IAAAC,SAAE,EAAC,EAAE;EACd,CAAC;EACDW,YAAY,EAAE;IACZF,QAAQ,EAAE,EAAE;IACZG,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAMK,IAAMC,mBAA8C,GAAG,SAAjDA,mBAA8CA,CAAAC,IAAA,EAAqB;EAAA,IAAfC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACvE,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_MessageIcon","_utils","_this","_jsxFileName","width","vw","styles","StyleSheet","create","channelContainer","alignItems","flex","justifyContent","channelDetails","fontSize","textAlign","channelTitle","paddingBottom","paddingTop","EmptyStateIndicator","_ref","listType","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","grey","grey_gainsboro","_useTheme$theme$empty","emptyStateIndicator","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","MessageIcon","height","pathFill","Text","color","testID","exports"],"sources":["EmptyStateIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { MessageIcon } from '../../icons/MessageIcon';\nimport { vw } from '../../utils/utils';\n\nconst width = vw(33);\n\nconst styles = StyleSheet.create({\n channelContainer: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n channelDetails: {\n fontSize: 14,\n textAlign: 'center',\n width: vw(66),\n },\n channelTitle: {\n fontSize: 16,\n paddingBottom: 8,\n paddingTop: 16,\n },\n});\n\nexport type EmptyStateProps = {\n listType?: 'channel' | 'message' | 'default';\n};\n\nexport const EmptyStateIndicator: React.FC<EmptyStateProps> = ({ listType }) => {\n const {\n theme: {\n colors: { black, grey, grey_gainsboro },\n emptyStateIndicator: { channelContainer, channelDetails, channelTitle },\n },\n } = useTheme();\n\n switch (listType) {\n case 'channel':\n return (\n <View style={[styles.channelContainer, channelContainer]}>\n <MessageIcon height={width} pathFill={grey_gainsboro} width={width} />\n <Text\n style={[styles.channelTitle, { color: black }, channelTitle]}\n testID='empty-channel-state-title'\n >\n {\"Let's start chatting!\"}\n </Text>\n <Text\n style={[styles.channelDetails, { color: grey }, channelDetails]}\n testID='empty-channel-state-details'\n >\n {'How about sending your first message to a friend?'}\n </Text>\n </View>\n );\n case 'message':\n return null;\n default:\n return <Text style={{ color: black }}>No items exist</Text>;\n }\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeReanimated","_ThemeContext","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","LoadingDot","props","_props$diameter","diameter","_props$duration","duration","_props$offset","offset","style","halfDuration","startingOffset","_useTheme","useTheme","_useTheme$theme","theme","black","colors","loadingDot","loadingDots","opacity","useSharedValue","useEffect","value","withSequence","withTiming","easing","Easing","linear","withRepeat","dotStyle","useAnimatedStyle","createElement","View","backgroundColor","borderRadius","height","width","__self","__source","fileName","lineNumber","columnNumber","exports"],"sources":["LoadingDot.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport Animated, {\n Easing,\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withSequence,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\ntype Props = {\n diameter?: number;\n duration?: number;\n offset?: number;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const LoadingDot: React.FC<Props> = (props) => {\n const { diameter = 4, duration = 1500, offset = 0, style } = props;\n const halfDuration = duration / 2;\n const startingOffset = halfDuration - offset;\n\n const {\n theme: {\n colors: { black },\n loadingDots: { loadingDot },\n },\n } = useTheme();\n const opacity = useSharedValue(startingOffset / halfDuration);\n\n useEffect(() => {\n opacity.value = withSequence(\n withTiming(0, { duration: startingOffset, easing: Easing.linear }),\n withRepeat(\n withSequence(\n withTiming(1, { duration: halfDuration, easing: Easing.linear }),\n withTiming(0, { duration: halfDuration, easing: Easing.linear }),\n ),\n -1,\n ),\n );\n }, []);\n\n const dotStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n opacity: opacity.value,\n }),\n [],\n );\n\n return (\n <Animated.View\n style={[\n {\n backgroundColor: black,\n borderRadius: diameter / 2,\n height: diameter,\n width: diameter,\n },\n style,\n loadingDot,\n dotStyle,\n ]}\n />\n );\n};\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAF,uBAAA,CAAAC,OAAA;AASA,IAAAE,aAAA,GAAAF,OAAA;AAAoE,IAAAG,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAP,wBAAAW,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAS7D,IAAMW,UAA2B,GAAG,SAA9BA,UAA2BA,CAAIC,KAAK,EAAK;EACpD,IAAAC,eAAA,GAA6DD,KAAK,CAA1DE,QAAQ;IAARA,QAAQ,GAAAD,eAAA,cAAG,CAAC,GAAAA,eAAA;IAAAE,eAAA,GAAyCH,KAAK,CAA5CI,QAAQ;IAARA,QAAQ,GAAAD,eAAA,cAAG,IAAI,GAAAA,eAAA;IAAAE,aAAA,GAAwBL,KAAK,CAA3BM,MAAM;IAANA,MAAM,GAAAD,aAAA,cAAG,CAAC,GAAAA,aAAA;IAAEE,KAAK,GAAKP,KAAK,CAAfO,KAAK;EACxD,IAAMC,YAAY,GAAGJ,QAAQ,GAAG,CAAC;EACjC,IAAMK,cAAc,GAAGD,YAAY,GAAGF,MAAM;EAE5C,IAAAI,SAAA,GAKI,IAAAC,sBAAQ,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeReanimated","_ThemeContext","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","LoadingDot","props","_props$diameter","diameter","_props$duration","duration","_props$offset","offset","style","halfDuration","startingOffset","_useTheme","useTheme","_useTheme$theme","theme","black","colors","loadingDot","loadingDots","opacity","useSharedValue","useEffect","value","withSequence","withTiming","easing","Easing","linear","withRepeat","dotStyle","useAnimatedStyle","createElement","View","backgroundColor","borderRadius","height","width","__self","__source","fileName","lineNumber","columnNumber","exports"],"sources":["LoadingDot.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport Animated, {\n Easing,\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withSequence,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\ntype Props = {\n diameter?: number;\n duration?: number;\n offset?: number;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const LoadingDot: React.FC<Props> = (props) => {\n const { diameter = 4, duration = 1500, offset = 0, style } = props;\n const halfDuration = duration / 2;\n const startingOffset = halfDuration - offset;\n\n const {\n theme: {\n colors: { black },\n loadingDots: { loadingDot },\n },\n } = useTheme();\n const opacity = useSharedValue(startingOffset / halfDuration);\n\n useEffect(() => {\n opacity.value = withSequence(\n withTiming(0, { duration: startingOffset, easing: Easing.linear }),\n withRepeat(\n withSequence(\n withTiming(1, { duration: halfDuration, easing: Easing.linear }),\n withTiming(0, { duration: halfDuration, easing: Easing.linear }),\n ),\n -1,\n ),\n );\n }, []);\n\n const dotStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n opacity: opacity.value,\n }),\n [],\n );\n\n return (\n <Animated.View\n style={[\n {\n backgroundColor: black,\n borderRadius: diameter / 2,\n height: diameter,\n width: diameter,\n },\n style,\n loadingDot,\n dotStyle,\n ]}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_LoadingDot","_ThemeContext","_this","_jsxFileName","LoadingDots","props","_props$diameter","diameter","_props$duration","duration","_props$numberOfDots","numberOfDots","spacingProp","spacing","style","_useTheme","useTheme","_useTheme$theme$loadi","theme","loadingDots","container","halfSpacing","offsetLength","createElement","View","flexDirection","__self","__source","fileName","lineNumber","columnNumber","Array","from","map","_item","index","LoadingDot","key","offset","marginRight","marginLeft","marginHorizontal","exports"],"sources":["LoadingDots.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport { LoadingDot } from './LoadingDot';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\ntype Props = {\n diameter?: number;\n duration?: number;\n numberOfDots?: number;\n spacing?: number;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const LoadingDots: React.FC<Props> = (props) => {\n const { diameter = 4, duration = 1500, numberOfDots = 3, spacing: spacingProp, style } = props;\n\n const {\n theme: {\n loadingDots: { container, spacing },\n },\n } = useTheme();\n\n const halfSpacing = spacingProp ? spacingProp / 2 : spacing / 2;\n const offsetLength = duration / numberOfDots;\n\n return (\n <View style={[{ flexDirection: 'row' }, container, style]}>\n {Array.from(Array(numberOfDots)).map((_item, index) => (\n <LoadingDot\n diameter={diameter}\n duration={duration}\n key={index}\n offset={duration - offsetLength * (index + 1)}\n style={\n index === 0\n ? { marginRight: halfSpacing }\n : index === numberOfDots - 1\n ? { marginLeft: halfSpacing }\n : { marginHorizontal: halfSpacing }\n }\n />\n ))}\n </View>\n );\n};\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAAoE,IAAAI,KAAA;EAAAC,YAAA;AAU7D,IAAMC,WAA4B,GAAG,SAA/BA,WAA4BA,CAAIC,KAAK,EAAK;EACrD,IAAAC,eAAA,GAAyFD,KAAK,CAAtFE,QAAQ;IAARA,QAAQ,GAAAD,eAAA,cAAG,CAAC,GAAAA,eAAA;IAAAE,eAAA,GAAqEH,KAAK,CAAxEI,QAAQ;IAARA,QAAQ,GAAAD,eAAA,cAAG,IAAI,GAAAA,eAAA;IAAAE,mBAAA,GAAoDL,KAAK,CAAvDM,YAAY;IAAZA,YAAY,GAAAD,mBAAA,cAAG,CAAC,GAAAA,mBAAA;IAAWE,WAAW,GAAYP,KAAK,CAArCQ,OAAO;IAAeC,KAAK,GAAKT,KAAK,CAAfS,KAAK;EAEpF,IAAAC,SAAA,GAII,IAAAC,sBAAQ,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_LoadingDot","_ThemeContext","_this","_jsxFileName","LoadingDots","props","_props$diameter","diameter","_props$duration","duration","_props$numberOfDots","numberOfDots","spacingProp","spacing","style","_useTheme","useTheme","_useTheme$theme$loadi","theme","loadingDots","container","halfSpacing","offsetLength","createElement","View","flexDirection","__self","__source","fileName","lineNumber","columnNumber","Array","from","map","_item","index","LoadingDot","key","offset","marginRight","marginLeft","marginHorizontal","exports"],"sources":["LoadingDots.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport { LoadingDot } from './LoadingDot';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\ntype Props = {\n diameter?: number;\n duration?: number;\n numberOfDots?: number;\n spacing?: number;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const LoadingDots: React.FC<Props> = (props) => {\n const { diameter = 4, duration = 1500, numberOfDots = 3, spacing: spacingProp, style } = props;\n\n const {\n theme: {\n loadingDots: { container, spacing },\n },\n } = useTheme();\n\n const halfSpacing = spacingProp ? spacingProp / 2 : spacing / 2;\n const offsetLength = duration / numberOfDots;\n\n return (\n <View style={[{ flexDirection: 'row' }, container, style]}>\n {Array.from(Array(numberOfDots)).map((_item, index) => (\n <LoadingDot\n diameter={diameter}\n duration={duration}\n key={index}\n offset={duration - offsetLength * (index + 1)}\n style={\n index === 0\n ? { marginRight: halfSpacing }\n : index === numberOfDots - 1\n ? { marginLeft: halfSpacing }\n : { marginHorizontal: halfSpacing }\n }\n />\n ))}\n </View>\n );\n};\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAAoE,IAAAI,KAAA;EAAAC,YAAA;AAU7D,IAAMC,WAA4B,GAAG,SAA/BA,WAA4BA,CAAIC,KAAK,EAAK;EACrD,IAAAC,eAAA,GAAyFD,KAAK,CAAtFE,QAAQ;IAARA,QAAQ,GAAAD,eAAA,cAAG,CAAC,GAAAA,eAAA;IAAAE,eAAA,GAAqEH,KAAK,CAAxEI,QAAQ;IAARA,QAAQ,GAAAD,eAAA,cAAG,IAAI,GAAAA,eAAA;IAAAE,mBAAA,GAAoDL,KAAK,CAAvDM,YAAY;IAAZA,YAAY,GAAAD,mBAAA,cAAG,CAAC,GAAAA,mBAAA;IAAWE,WAAW,GAAYP,KAAK,CAArCQ,OAAO;IAAeC,KAAK,GAAKT,KAAK,CAAfS,KAAK;EAEpF,IAAAC,SAAA,GAII,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,qBAAA,GAAAF,SAAA,CAHZG,KAAK,CACHC,WAAW;IAAIC,SAAS,GAAAH,qBAAA,CAATG,SAAS;IAAEP,OAAO,GAAAI,qBAAA,CAAPJ,OAAO;EAIrC,IAAMQ,WAAW,GAAGT,WAAW,GAAGA,WAAW,GAAG,CAAC,GAAGC,OAAO,GAAG,CAAC;EAC/D,IAAMS,YAAY,GAAGb,QAAQ,GAAGE,YAAY;EAE5C,OACEf,MAAA,YAAA2B,aAAA,CAACxB,YAAA,CAAAyB,IAAI;IAACV,KAAK,EAAE,CAAC;MAAEW,aAAa,EAAE;IAAM,CAAC,EAAEL,SAAS,EAAEN,KAAK,CAAE;IAAAY,MAAA,EAAAxB,KAAA;IAAAyB,QAAA;MAAAC,QAAA,EAAAzB,YAAA;MAAA0B,UAAA;MAAAC,YAAA;IAAA;EAAA,GACvDC,KAAK,CAACC,IAAI,CAACD,KAAK,CAACpB,YAAY,CAAC,CAAC,CAACsB,GAAG,CAAC,UAACC,KAAK,EAAEC,KAAK;IAAA,OAChDvC,MAAA,YAAA2B,aAAA,CAACvB,WAAA,CAAAoC,UAAU;MACT7B,QAAQ,EAAEA,QAAS;MACnBE,QAAQ,EAAEA,QAAS;MACnB4B,GAAG,EAAEF,KAAM;MACXG,MAAM,EAAE7B,QAAQ,GAAGa,YAAY,IAAIa,KAAK,GAAG,CAAC,CAAE;MAC9CrB,KAAK,EACHqB,KAAK,KAAK,CAAC,GACP;QAAEI,WAAW,EAAElB;MAAY,CAAC,GAC5Bc,KAAK,KAAKxB,YAAY,GAAG,CAAC,GAC1B;QAAE6B,UAAU,EAAEnB;MAAY,CAAC,GAC3B;QAAEoB,gBAAgB,EAAEpB;MAAY,CACrC;MAAAK,MAAA,EAAAxB,KAAA;MAAAyB,QAAA;QAAAC,QAAA,EAAAzB,YAAA;QAAA0B,UAAA;QAAAC,YAAA;MAAA;IAAA,CACF,CAAC;EAAA,CACH,CACG,CAAC;AAEX,CAAC;AAACY,OAAA,CAAAtC,WAAA,GAAAA,WAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_TranslationContext","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","height","justifyContent","width","errorText","fontSize","fontWeight","marginTop","retryText","LoadingErrorWrapper","props","children","onPress","text","_useTheme","useTheme","_useTheme$theme","theme","accent_red","colors","_useTheme$theme$loadi","loadingErrorIndicator","createElement","TouchableOpacity","style","__self","__source","fileName","lineNumber","columnNumber","Text","color","testID","LoadingErrorIndicator","listType","_props$retry","retry","_useTheme2","_useTheme2$theme","black","_useTranslationContex","useTranslationContext","t","exports","displayName"],"sources":["LoadingErrorIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, TouchableOpacity } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n height: '100%',\n justifyContent: 'center',\n width: '100%',\n },\n errorText: {\n fontSize: 14,\n fontWeight: '600',\n marginTop: 20,\n },\n retryText: {\n fontSize: 30,\n fontWeight: '600',\n },\n});\n\ntype LoadingErrorWrapperProps = {\n text: string;\n onPress?: () => void;\n};\n\nconst LoadingErrorWrapper: React.FC<LoadingErrorWrapperProps> = (props) => {\n const { children, onPress, text } = props;\n\n const {\n theme: {\n colors: { accent_red },\n loadingErrorIndicator: { container, errorText },\n },\n } = useTheme();\n\n return (\n <TouchableOpacity onPress={onPress} style={[styles.container, container]}>\n <Text style={[styles.errorText, { color: accent_red }, errorText]} testID='loading-error'>\n {text}\n </Text>\n {children}\n </TouchableOpacity>\n );\n};\n\nexport type LoadingErrorProps = {\n error?: boolean | Error;\n listType?: 'channel' | 'message' | 'default';\n loadNextPage?: () => Promise<void>;\n retry?: () => void;\n};\n\nexport const LoadingErrorIndicator: React.FC<LoadingErrorProps> = (props) => {\n const { listType, retry = () => null } = props;\n\n const {\n theme: {\n colors: { black },\n loadingErrorIndicator: { retryText },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n switch (listType) {\n case 'channel':\n return (\n <LoadingErrorWrapper onPress={retry} text={t('Error loading channel list...')}>\n <Text style={[styles.retryText, { color: black }, retryText]}>⟳</Text>\n </LoadingErrorWrapper>\n );\n case 'message':\n return (\n <LoadingErrorWrapper\n onPress={retry}\n text={t('Error loading messages for this channel...')}\n />\n );\n default:\n return <LoadingErrorWrapper text={t('Error loading')} />;\n }\n};\n\nLoadingErrorIndicator.displayName = 'LoadingErrorIndicator{loadingErrorIndicator}';\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AAA6F,IAAAI,KAAA;EAAAC,YAAA;AAE7F,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE,MAAM;IACdC,cAAc,EAAE,QAAQ;IACxBC,KAAK,EAAE;EACT,CAAC;EACDC,SAAS,EAAE;IACTC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE;EACb,CAAC;EACDC,SAAS,EAAE;IACTH,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAOF,IAAMG,mBAAuD,GAAG,SAA1DA,mBAAuDA,CAAIC,KAAK,EAAK;EACzE,IAAQC,QAAQ,GAAoBD,KAAK,CAAjCC,QAAQ;IAAEC,OAAO,GAAWF,KAAK,CAAvBE,OAAO;IAAEC,IAAI,GAAKH,KAAK,CAAdG,IAAI;EAE/B,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_TranslationContext","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","height","justifyContent","width","errorText","fontSize","fontWeight","marginTop","retryText","LoadingErrorWrapper","props","children","onPress","text","_useTheme","useTheme","_useTheme$theme","theme","accent_red","colors","_useTheme$theme$loadi","loadingErrorIndicator","createElement","TouchableOpacity","style","__self","__source","fileName","lineNumber","columnNumber","Text","color","testID","LoadingErrorIndicator","listType","_props$retry","retry","_useTheme2","_useTheme2$theme","black","_useTranslationContex","useTranslationContext","t","exports","displayName"],"sources":["LoadingErrorIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, TouchableOpacity } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n height: '100%',\n justifyContent: 'center',\n width: '100%',\n },\n errorText: {\n fontSize: 14,\n fontWeight: '600',\n marginTop: 20,\n },\n retryText: {\n fontSize: 30,\n fontWeight: '600',\n },\n});\n\ntype LoadingErrorWrapperProps = {\n text: string;\n onPress?: () => void;\n};\n\nconst LoadingErrorWrapper: React.FC<LoadingErrorWrapperProps> = (props) => {\n const { children, onPress, text } = props;\n\n const {\n theme: {\n colors: { accent_red },\n loadingErrorIndicator: { container, errorText },\n },\n } = useTheme();\n\n return (\n <TouchableOpacity onPress={onPress} style={[styles.container, container]}>\n <Text style={[styles.errorText, { color: accent_red }, errorText]} testID='loading-error'>\n {text}\n </Text>\n {children}\n </TouchableOpacity>\n );\n};\n\nexport type LoadingErrorProps = {\n error?: boolean | Error;\n listType?: 'channel' | 'message' | 'default';\n loadNextPage?: () => Promise<void>;\n retry?: () => void;\n};\n\nexport const LoadingErrorIndicator: React.FC<LoadingErrorProps> = (props) => {\n const { listType, retry = () => null } = props;\n\n const {\n theme: {\n colors: { black },\n loadingErrorIndicator: { retryText },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n switch (listType) {\n case 'channel':\n return (\n <LoadingErrorWrapper onPress={retry} text={t('Error loading channel list...')}>\n <Text style={[styles.retryText, { color: black }, retryText]}>⟳</Text>\n </LoadingErrorWrapper>\n );\n case 'message':\n return (\n <LoadingErrorWrapper\n onPress={retry}\n text={t('Error loading messages for this channel...')}\n />\n );\n default:\n return <LoadingErrorWrapper text={t('Error loading')} />;\n }\n};\n\nLoadingErrorIndicator.displayName = 'LoadingErrorIndicator{loadingErrorIndicator}';\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_TranslationContext","_Spinner","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flex","justifyContent","loadingText","fontSize","fontWeight","marginTop","LoadingIndicatorWrapper","_ref","text","_useTheme","useTheme","_useTheme$theme","theme","black","colors","_useTheme$theme$loadi","loadingIndicator","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","Spinner","Text","color","testID","LoadingIndicator","props","listType","_useTranslationContex","useTranslationContext","t","exports","displayName"],"sources":["LoadingIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Spinner } from '../Spinner/Spinner';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n loadingText: {\n fontSize: 14,\n fontWeight: '600',\n marginTop: 20,\n },\n});\n\nconst LoadingIndicatorWrapper: React.FC<{ text: string }> = ({ text }) => {\n const {\n theme: {\n colors: { black },\n loadingIndicator: { container, loadingText },\n },\n } = useTheme();\n\n return (\n <View style={[styles.container, container]}>\n <Spinner />\n <Text style={[styles.loadingText, { color: black }, loadingText]} testID='loading'>\n {text}\n </Text>\n </View>\n );\n};\n\nexport type LoadingProps = {\n listType?: 'channel' | 'message' | 'default';\n loadingText?: string;\n};\n\n/**\n * UI Component for LoadingIndicator\n */\nexport const LoadingIndicator: React.FC<LoadingProps> = (props) => {\n const { listType, loadingText } = props;\n\n const { t } = useTranslationContext();\n\n if (loadingText) {\n return <LoadingIndicatorWrapper text={loadingText} />;\n }\n\n switch (listType) {\n case 'channel':\n return <LoadingIndicatorWrapper text={t('Loading channels...')} />;\n case 'message':\n return <LoadingIndicatorWrapper text={t('Loading messages...')} />;\n default:\n return <LoadingIndicatorWrapper text={t('Loading...')} />;\n }\n};\n\nLoadingIndicator.displayName = 'LoadingIndicator{loadingIndicator}';\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAA6C,IAAAK,KAAA;EAAAC,YAAA;AAE7C,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE;EAClB,CAAC;EACDC,WAAW,EAAE;IACXC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC;AAEF,IAAMC,uBAAmD,GAAG,SAAtDA,uBAAmDA,CAAAC,IAAA,EAAiB;EAAA,IAAXC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EACjE,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_TranslationContext","_Spinner","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flex","justifyContent","loadingText","fontSize","fontWeight","marginTop","LoadingIndicatorWrapper","_ref","text","_useTheme","useTheme","_useTheme$theme","theme","black","colors","_useTheme$theme$loadi","loadingIndicator","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","Spinner","Text","color","testID","LoadingIndicator","props","listType","_useTranslationContex","useTranslationContext","t","exports","displayName"],"sources":["LoadingIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Spinner } from '../Spinner/Spinner';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n loadingText: {\n fontSize: 14,\n fontWeight: '600',\n marginTop: 20,\n },\n});\n\nconst LoadingIndicatorWrapper: React.FC<{ text: string }> = ({ text }) => {\n const {\n theme: {\n colors: { black },\n loadingIndicator: { container, loadingText },\n },\n } = useTheme();\n\n return (\n <View style={[styles.container, container]}>\n <Spinner />\n <Text style={[styles.loadingText, { color: black }, loadingText]} testID='loading'>\n {text}\n </Text>\n </View>\n );\n};\n\nexport type LoadingProps = {\n listType?: 'channel' | 'message' | 'default';\n loadingText?: string;\n};\n\n/**\n * UI Component for LoadingIndicator\n */\nexport const LoadingIndicator: React.FC<LoadingProps> = (props) => {\n const { listType, loadingText } = props;\n\n const { t } = useTranslationContext();\n\n if (loadingText) {\n return <LoadingIndicatorWrapper text={loadingText} />;\n }\n\n switch (listType) {\n case 'channel':\n return <LoadingIndicatorWrapper text={t('Loading channels...')} />;\n case 'message':\n return <LoadingIndicatorWrapper text={t('Loading messages...')} />;\n default:\n return <LoadingIndicatorWrapper text={t('Loading...')} />;\n }\n};\n\nLoadingIndicator.displayName = 'LoadingIndicator{loadingIndicator}';\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_KeyboardContext","_jsxFileName","_excluded","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","KeyboardCompatibleView","_React$Component","_inherits2","_super","props","_this","_classCallCheck2","_frame","_keyboardEvent","_subscriptions","_appStateSubscription","_initialFrameHeight","_onKeyboardChange","event","_updateBottomIfNecessary","_onLayout","nativeEvent","layout","height","setState","bottom","_this$_keyboardEvent","duration","easing","endCoordinates","_relativeKeyboardHeight","state","LayoutAnimation","configureNext","update","type","Types","_handleAppStateChange","nextAppState","appState","match","setKeyboardListeners","unsetKeyboardListeners","Platform","OS","Keyboard","addListener","push","isKeyboardOpen","filter","subscription","remove","dismissKeyboard","Promise","resolve","dismiss","AppState","currentState","viewRef","React","createRef","_createClass2","key","value","keyboardFrame","_this$props$keyboardV","frame","keyboardY","screenY","keyboardVerticalOffset","relativeHeight","y","_StatusBar$currentHei","barHeights","Dimensions","get","Math","max","StatusBar","currentHeight","componentDidMount","addEventListener","componentWillUnmount","_this$_appStateSubscr","_this$_appStateSubscr2","removeEventListener","render","_this$props","behavior","children","contentContainerStyle","enabled","style","_objectWithoutProperties2","bottomHeight","heightStyle","flex","createElement","KeyboardProvider","__self","__source","fileName","lineNumber","columnNumber","View","_extends2","onLayout","ref","StyleSheet","compose","paddingBottom","Component","exports","defaultProps"],"sources":["KeyboardCompatibleView.tsx"],"sourcesContent":["import React from 'react';\nimport {\n AppState,\n AppStateStatus,\n Dimensions,\n EmitterSubscription,\n Keyboard,\n KeyboardAvoidingViewProps,\n KeyboardEvent,\n KeyboardEventListener,\n LayoutAnimation,\n LayoutChangeEvent,\n LayoutRectangle,\n NativeEventSubscription,\n Platform,\n ScreenRect,\n StatusBar,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport { KeyboardProvider } from '../../contexts/keyboardContext/KeyboardContext';\n\n/**\n * View that moves out of the way when the keyboard appears by automatically\n * adjusting its height, position, or bottom padding.\n *\n * Following piece of code has been mostly copied from KeyboardAvoidingView component, with few additional tweaks.\n */\nexport class KeyboardCompatibleView extends React.Component<\n KeyboardAvoidingViewProps,\n { appState: AppStateStatus; bottom: number; isKeyboardOpen: boolean }\n> {\n static defaultProps: Pick<\n KeyboardAvoidingViewProps,\n 'behavior' | 'enabled' | 'keyboardVerticalOffset'\n > = {\n behavior: Platform.OS === 'ios' ? 'padding' : 'position',\n enabled: true,\n keyboardVerticalOffset: Platform.OS === 'ios' ? 86.5 : -300, // default MessageInput height\n };\n\n _frame: LayoutRectangle | null = null;\n _keyboardEvent: KeyboardEvent | null = null;\n _subscriptions: EmitterSubscription[] = [];\n _appStateSubscription: NativeEventSubscription | null = null;\n viewRef: React.RefObject<View>;\n _initialFrameHeight = 0;\n constructor(props: KeyboardAvoidingViewProps) {\n super(props);\n this.state = {\n appState: AppState.currentState,\n bottom: 0,\n isKeyboardOpen: false,\n };\n this.viewRef = React.createRef();\n }\n\n _relativeKeyboardHeight(keyboardFrame: ScreenRect) {\n const frame = this._frame;\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n const keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset ?? 0);\n const relativeHeight = frame.y + frame.height - keyboardY;\n\n /**\n * When the StatusBar is translucent there is an issue\n * where the relative keyboard height is returned incorrectly\n * instead of 0 when closed.\n */\n if (Platform.OS === 'android') {\n const barHeights = Dimensions.get('screen').height - Dimensions.get('window').height;\n if (relativeHeight <= Math.max(barHeights, StatusBar.currentHeight ?? 0)) {\n return 0;\n }\n }\n\n // Calculate the displacement needed for the view such that it\n // no longer overlaps with the keyboard\n return Math.max(relativeHeight, 0);\n }\n\n _onKeyboardChange: KeyboardEventListener = (event) => {\n this._keyboardEvent = event;\n this._updateBottomIfNecessary();\n };\n\n _onLayout: (event: LayoutChangeEvent) => void = (event) => {\n this._frame = event.nativeEvent.layout;\n if (!this._initialFrameHeight) {\n // save the initial frame height, before the keyboard is visible\n this._initialFrameHeight = this._frame.height;\n }\n\n this._updateBottomIfNecessary();\n };\n\n _updateBottomIfNecessary = () => {\n if (this._keyboardEvent === null) {\n this.setState({ bottom: 0 });\n return;\n }\n\n const { duration, easing, endCoordinates } = this._keyboardEvent;\n const height = this._relativeKeyboardHeight(endCoordinates);\n\n if (this.state.bottom === height) {\n return;\n }\n\n if (duration && easing) {\n LayoutAnimation.configureNext({\n // We have to pass the duration equal to minimal accepted duration defined here: RCTLayoutAnimation.m\n duration: duration > 10 ? duration : 10,\n update: {\n duration: duration > 10 ? duration : 10,\n type: LayoutAnimation.Types[easing] || 'keyboard',\n },\n });\n }\n this.setState({ bottom: height });\n };\n\n _handleAppStateChange = (nextAppState: AppStateStatus) => {\n if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {\n this.setKeyboardListeners();\n }\n\n if (nextAppState.match(/inactive|background/)) {\n this.unsetKeyboardListeners();\n }\n\n this.setState({ appState: nextAppState });\n };\n\n setKeyboardListeners = () => {\n if (Platform.OS === 'ios') {\n this._subscriptions = [\n Keyboard.addListener('keyboardWillChangeFrame', this._onKeyboardChange),\n ];\n } else {\n this._subscriptions = [\n Keyboard.addListener('keyboardDidHide', this._onKeyboardChange),\n Keyboard.addListener('keyboardDidShow', this._onKeyboardChange),\n ];\n }\n\n this._subscriptions.push(\n Keyboard.addListener('keyboardDidHide', () => {\n this.setState({ isKeyboardOpen: false });\n }),\n Keyboard.addListener('keyboardDidShow', () => {\n this.setState({ isKeyboardOpen: true });\n }),\n );\n };\n\n unsetKeyboardListeners = () => {\n this._subscriptions = this._subscriptions.filter((subscription) => {\n subscription.remove();\n return false;\n });\n };\n\n dismissKeyboard: () => Promise<void> | undefined = () => {\n if (!this.state.isKeyboardOpen) {\n return;\n }\n\n return new Promise((resolve) => {\n const subscription = Keyboard.addListener('keyboardDidHide', () => {\n resolve();\n subscription.remove();\n });\n\n Keyboard.dismiss();\n });\n };\n\n componentDidMount() {\n this._appStateSubscription = AppState.addEventListener('change', this._handleAppStateChange);\n this.setKeyboardListeners();\n }\n\n componentWillUnmount() {\n // Following if-else condition to avoid deprecated warning coming RN 0.65\n if (this._appStateSubscription?.remove) {\n this._appStateSubscription?.remove();\n } else {\n AppState.removeEventListener('change', this._handleAppStateChange);\n }\n this.unsetKeyboardListeners();\n }\n\n render() {\n const { behavior, children, contentContainerStyle, enabled, style, ...props } = this.props;\n const bottomHeight = enabled ? this.state.bottom : 0;\n switch (behavior) {\n case 'height':\n // eslint-disable-next-line no-case-declarations\n let heightStyle;\n if (this._frame !== null && this.state.bottom > 0) {\n // Note that we only apply a height change when there is keyboard present,\n // i.e. this.state.bottom is greater than 0. If we remove that condition,\n // this.frame.height will never go back to its original value.\n // When height changes, we need to disable flex.\n heightStyle = {\n flex: 0,\n height: this._initialFrameHeight - bottomHeight,\n };\n }\n return (\n <KeyboardProvider value={{ dismissKeyboard: this.dismissKeyboard }}>\n <View\n onLayout={this._onLayout}\n ref={this.viewRef}\n style={StyleSheet.compose(style, heightStyle)}\n {...props}\n >\n {children}\n </View>\n </KeyboardProvider>\n );\n\n case 'position':\n return (\n <KeyboardProvider value={{ dismissKeyboard: this.dismissKeyboard }}>\n <View onLayout={this._onLayout} ref={this.viewRef} style={style} {...props}>\n <View\n style={StyleSheet.compose(contentContainerStyle, {\n bottom: bottomHeight,\n })}\n >\n {children}\n </View>\n </View>\n </KeyboardProvider>\n );\n\n case 'padding':\n return (\n <KeyboardProvider value={{ dismissKeyboard: this.dismissKeyboard }}>\n <View\n onLayout={this._onLayout}\n ref={this.viewRef}\n style={StyleSheet.compose(style, { paddingBottom: bottomHeight })}\n {...props}\n >\n {children}\n </View>\n </KeyboardProvider>\n );\n\n default:\n return (\n <KeyboardProvider value={{ dismissKeyboard: this.dismissKeyboard }}>\n <View onLayout={this._onLayout} ref={this.viewRef} style={style} {...props}>\n {children}\n </View>\n </KeyboardProvider>\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_KeyboardContext","_jsxFileName","_excluded","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","KeyboardCompatibleView","_React$Component","_inherits2","_super","props","_this","_classCallCheck2","_frame","_keyboardEvent","_subscriptions","_appStateSubscription","_initialFrameHeight","_onKeyboardChange","event","_updateBottomIfNecessary","_onLayout","nativeEvent","layout","height","setState","bottom","_this$_keyboardEvent","duration","easing","endCoordinates","_relativeKeyboardHeight","state","LayoutAnimation","configureNext","update","type","Types","_handleAppStateChange","nextAppState","appState","match","setKeyboardListeners","unsetKeyboardListeners","Platform","OS","Keyboard","addListener","push","isKeyboardOpen","filter","subscription","remove","dismissKeyboard","Promise","resolve","dismiss","AppState","currentState","viewRef","React","createRef","_createClass2","key","value","keyboardFrame","_this$props$keyboardV","frame","keyboardY","screenY","keyboardVerticalOffset","relativeHeight","y","_StatusBar$currentHei","barHeights","Dimensions","get","Math","max","StatusBar","currentHeight","componentDidMount","addEventListener","componentWillUnmount","_this$_appStateSubscr","_this$_appStateSubscr2","removeEventListener","render","_this$props","behavior","children","contentContainerStyle","enabled","style","_objectWithoutProperties2","bottomHeight","heightStyle","flex","createElement","KeyboardProvider","__self","__source","fileName","lineNumber","columnNumber","View","_extends2","onLayout","ref","StyleSheet","compose","paddingBottom","Component","exports","defaultProps"],"sources":["KeyboardCompatibleView.tsx"],"sourcesContent":["import React from 'react';\nimport {\n AppState,\n AppStateStatus,\n Dimensions,\n EmitterSubscription,\n Keyboard,\n KeyboardAvoidingViewProps,\n KeyboardEvent,\n KeyboardEventListener,\n LayoutAnimation,\n LayoutChangeEvent,\n LayoutRectangle,\n NativeEventSubscription,\n Platform,\n ScreenRect,\n StatusBar,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport { KeyboardProvider } from '../../contexts/keyboardContext/KeyboardContext';\n\n/**\n * View that moves out of the way when the keyboard appears by automatically\n * adjusting its height, position, or bottom padding.\n *\n * Following piece of code has been mostly copied from KeyboardAvoidingView component, with few additional tweaks.\n */\nexport class KeyboardCompatibleView extends React.Component<\n KeyboardAvoidingViewProps,\n { appState: AppStateStatus; bottom: number; isKeyboardOpen: boolean }\n> {\n static defaultProps: Pick<\n KeyboardAvoidingViewProps,\n 'behavior' | 'enabled' | 'keyboardVerticalOffset'\n > = {\n behavior: Platform.OS === 'ios' ? 'padding' : 'position',\n enabled: true,\n keyboardVerticalOffset: Platform.OS === 'ios' ? 86.5 : -300, // default MessageInput height\n };\n\n _frame: LayoutRectangle | null = null;\n _keyboardEvent: KeyboardEvent | null = null;\n _subscriptions: EmitterSubscription[] = [];\n _appStateSubscription: NativeEventSubscription | null = null;\n viewRef: React.RefObject<View>;\n _initialFrameHeight = 0;\n constructor(props: KeyboardAvoidingViewProps) {\n super(props);\n this.state = {\n appState: AppState.currentState,\n bottom: 0,\n isKeyboardOpen: false,\n };\n this.viewRef = React.createRef();\n }\n\n _relativeKeyboardHeight(keyboardFrame: ScreenRect) {\n const frame = this._frame;\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n const keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset ?? 0);\n const relativeHeight = frame.y + frame.height - keyboardY;\n\n /**\n * When the StatusBar is translucent there is an issue\n * where the relative keyboard height is returned incorrectly\n * instead of 0 when closed.\n */\n if (Platform.OS === 'android') {\n const barHeights = Dimensions.get('screen').height - Dimensions.get('window').height;\n if (relativeHeight <= Math.max(barHeights, StatusBar.currentHeight ?? 0)) {\n return 0;\n }\n }\n\n // Calculate the displacement needed for the view such that it\n // no longer overlaps with the keyboard\n return Math.max(relativeHeight, 0);\n }\n\n _onKeyboardChange: KeyboardEventListener = (event) => {\n this._keyboardEvent = event;\n this._updateBottomIfNecessary();\n };\n\n _onLayout: (event: LayoutChangeEvent) => void = (event) => {\n this._frame = event.nativeEvent.layout;\n if (!this._initialFrameHeight) {\n // save the initial frame height, before the keyboard is visible\n this._initialFrameHeight = this._frame.height;\n }\n\n this._updateBottomIfNecessary();\n };\n\n _updateBottomIfNecessary = () => {\n if (this._keyboardEvent === null) {\n this.setState({ bottom: 0 });\n return;\n }\n\n const { duration, easing, endCoordinates } = this._keyboardEvent;\n const height = this._relativeKeyboardHeight(endCoordinates);\n\n if (this.state.bottom === height) {\n return;\n }\n\n if (duration && easing) {\n LayoutAnimation.configureNext({\n // We have to pass the duration equal to minimal accepted duration defined here: RCTLayoutAnimation.m\n duration: duration > 10 ? duration : 10,\n update: {\n duration: duration > 10 ? duration : 10,\n type: LayoutAnimation.Types[easing] || 'keyboard',\n },\n });\n }\n this.setState({ bottom: height });\n };\n\n _handleAppStateChange = (nextAppState: AppStateStatus) => {\n if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {\n this.setKeyboardListeners();\n }\n\n if (nextAppState.match(/inactive|background/)) {\n this.unsetKeyboardListeners();\n }\n\n this.setState({ appState: nextAppState });\n };\n\n setKeyboardListeners = () => {\n if (Platform.OS === 'ios') {\n this._subscriptions = [\n Keyboard.addListener('keyboardWillChangeFrame', this._onKeyboardChange),\n ];\n } else {\n this._subscriptions = [\n Keyboard.addListener('keyboardDidHide', this._onKeyboardChange),\n Keyboard.addListener('keyboardDidShow', this._onKeyboardChange),\n ];\n }\n\n this._subscriptions.push(\n Keyboard.addListener('keyboardDidHide', () => {\n this.setState({ isKeyboardOpen: false });\n }),\n Keyboard.addListener('keyboardDidShow', () => {\n this.setState({ isKeyboardOpen: true });\n }),\n );\n };\n\n unsetKeyboardListeners = () => {\n this._subscriptions = this._subscriptions.filter((subscription) => {\n subscription.remove();\n return false;\n });\n };\n\n dismissKeyboard: () => Promise<void> | undefined = () => {\n if (!this.state.isKeyboardOpen) {\n return;\n }\n\n return new Promise((resolve) => {\n const subscription = Keyboard.addListener('keyboardDidHide', () => {\n resolve();\n subscription.remove();\n });\n\n Keyboard.dismiss();\n });\n };\n\n componentDidMount() {\n this._appStateSubscription = AppState.addEventListener('change', this._handleAppStateChange);\n this.setKeyboardListeners();\n }\n\n componentWillUnmount() {\n // Following if-else condition to avoid deprecated warning coming RN 0.65\n if (this._appStateSubscription?.remove) {\n this._appStateSubscription?.remove();\n } else {\n AppState.removeEventListener('change', this._handleAppStateChange);\n }\n this.unsetKeyboardListeners();\n }\n\n render() {\n const { behavior, children, contentContainerStyle, enabled, style, ...props } = this.props;\n const bottomHeight = enabled ? this.state.bottom : 0;\n switch (behavior) {\n case 'height':\n // eslint-disable-next-line no-case-declarations\n let heightStyle;\n if (this._frame !== null && this.state.bottom > 0) {\n // Note that we only apply a height change when there is keyboard present,\n // i.e. this.state.bottom is greater than 0. If we remove that condition,\n // this.frame.height will never go back to its original value.\n // When height changes, we need to disable flex.\n heightStyle = {\n flex: 0,\n height: this._initialFrameHeight - bottomHeight,\n };\n }\n return (\n <KeyboardProvider value={{ dismissKeyboard: this.dismissKeyboard }}>\n <View\n onLayout={this._onLayout}\n ref={this.viewRef}\n style={StyleSheet.compose(style, heightStyle)}\n {...props}\n >\n {children}\n </View>\n </KeyboardProvider>\n );\n\n case 'position':\n return (\n <KeyboardProvider value={{ dismissKeyboard: this.dismissKeyboard }}>\n <View onLayout={this._onLayout} ref={this.viewRef} style={style} {...props}>\n <View\n style={StyleSheet.compose(contentContainerStyle, {\n bottom: bottomHeight,\n })}\n >\n {children}\n </View>\n </View>\n </KeyboardProvider>\n );\n\n case 'padding':\n return (\n <KeyboardProvider value={{ dismissKeyboard: this.dismissKeyboard }}>\n <View\n onLayout={this._onLayout}\n ref={this.viewRef}\n style={StyleSheet.compose(style, { paddingBottom: bottomHeight })}\n {...props}\n >\n {children}\n </View>\n </KeyboardProvider>\n );\n\n default:\n return (\n <KeyboardProvider value={{ dismissKeyboard: this.dismissKeyboard }}>\n <View onLayout={this._onLayout} ref={this.viewRef} style={style} {...props}>\n {children}\n </View>\n </KeyboardProvider>\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_KeyboardContext","_excluded","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","KeyboardCompatibleView","_ref","_ref$behavior","behavior","Platform","OS","children","contentContainerStyle","_ref$enabled","enabled","_ref$keyboardVertical","keyboardVerticalOffset","style","props","_objectWithoutProperties2","frame","useRef","initialFrameHeight","keyboardEvent","subscriptions","viewRef","_useState","useState","AppState","currentState","_useState2","_slicedToArray2","appState","setAppState","_useState3","_useState4","bottom","setBottom","_useState5","_useState6","isKeyboardOpen","setIsKeyboardOpen","useEffect","handleAppStateChange","nextAppState","match","setKeyboardListeners","unsetKeyboardListeners","onKeyboardChange","event","current","Keyboard","addListener","filter","subscription","remove","addEventListener","removeEventListener","updateBottomIfNecessary","dismissKeyboard","Promise","resolve","dismiss","onLayout","nativeEvent","layout","height","relativeKeyboardHeight","keyboardFrame","keyboardY","screenY","Math","max","y","_keyboardEvent$curren","duration","easing","endCoordinates","LayoutAnimation","configureNext","update","type","Types","bottomHeight","heightStyle","flex","createElement","KeyboardProvider","value","__self","__source","fileName","lineNumber","columnNumber","View","_extends2","ref","StyleSheet","compose","paddingBottom","exports"],"sources":["KeyboardCompatibleViewFC.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n AppState,\n AppStateStatus,\n EmitterSubscription,\n Keyboard,\n KeyboardAvoidingViewProps,\n KeyboardEvent,\n KeyboardEventListener,\n LayoutAnimation,\n LayoutChangeEvent,\n LayoutRectangle,\n Platform,\n ScreenRect,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport { KeyboardProvider } from '../../contexts/keyboardContext/KeyboardContext';\n\n/**\n * View that moves out of the way when the keyboard appears by automatically\n * adjusting its height, position, or bottom padding.\n *\n * Following piece of code has been mostly copied from KeyboardAvoidingView component, with few additional tweaks.\n */\nexport const KeyboardCompatibleView: React.FC<KeyboardAvoidingViewProps> = ({\n behavior = Platform.OS === 'ios' ? 'padding' : 'position',\n children,\n contentContainerStyle,\n enabled = true,\n keyboardVerticalOffset = Platform.OS === 'ios' ? 86.5 : -300,\n style,\n ...props\n}) => {\n const frame = useRef<LayoutRectangle>();\n const initialFrameHeight = useRef(0);\n const keyboardEvent = useRef<KeyboardEvent>();\n const subscriptions = useRef<EmitterSubscription[]>([]);\n const viewRef = useRef<View | null>(null);\n\n const [appState, setAppState] = useState<AppStateStatus>(AppState.currentState);\n const [bottom, setBottom] = useState(0);\n const [isKeyboardOpen, setIsKeyboardOpen] = useState(false);\n\n useEffect(() => {\n const handleAppStateChange = (nextAppState: AppStateStatus) => {\n if (appState.match(/inactive|background/) && nextAppState === 'active') {\n setKeyboardListeners();\n }\n\n if (nextAppState.match(/inactive|background/)) {\n unsetKeyboardListeners();\n }\n\n setAppState(nextAppState);\n };\n\n const onKeyboardChange: KeyboardEventListener = (event) => {\n keyboardEvent.current = event;\n };\n\n const setKeyboardListeners = () => {\n if (Platform.OS === 'ios') {\n subscriptions.current = [\n Keyboard.addListener('keyboardWillChangeFrame', onKeyboardChange),\n Keyboard.addListener('keyboardDidHide', () => {\n setIsKeyboardOpen(false);\n }),\n Keyboard.addListener('keyboardDidShow', () => {\n setIsKeyboardOpen(true);\n }),\n ];\n } else {\n subscriptions.current = [\n Keyboard.addListener('keyboardDidHide', (event) => {\n onKeyboardChange(event);\n setIsKeyboardOpen(false);\n }),\n Keyboard.addListener('keyboardDidShow', (event) => {\n onKeyboardChange(event);\n setIsKeyboardOpen(true);\n }),\n ];\n }\n };\n\n const unsetKeyboardListeners = () => {\n subscriptions.current = subscriptions.current.filter((subscription) => {\n subscription.remove();\n return false;\n });\n };\n\n AppState.addEventListener('change', handleAppStateChange);\n setKeyboardListeners();\n\n return () => {\n AppState.removeEventListener('change', handleAppStateChange);\n unsetKeyboardListeners();\n };\n }, []);\n\n useEffect(() => {\n updateBottomIfNecessary();\n }, [keyboardEvent.current]);\n\n const dismissKeyboard: () => Promise<void> | undefined = () => {\n if (!isKeyboardOpen) {\n return;\n }\n\n return new Promise((resolve) => {\n const subscription = Keyboard.addListener('keyboardDidHide', () => {\n resolve();\n subscription.remove();\n });\n\n Keyboard.dismiss();\n });\n };\n\n const onLayout: (event: LayoutChangeEvent) => void = (event) => {\n frame.current = event.nativeEvent.layout;\n if (!initialFrameHeight.current) {\n // save the initial frame height, before the keyboard is visible\n initialFrameHeight.current = frame.current.height;\n }\n\n updateBottomIfNecessary();\n };\n\n const relativeKeyboardHeight = (keyboardFrame: ScreenRect) => {\n if (!frame.current || !keyboardFrame) {\n return 0;\n }\n\n const keyboardY = keyboardFrame.screenY - keyboardVerticalOffset;\n\n // Calculate the displacement needed for the view such that it\n // no longer overlaps with the keyboard\n return Math.max(frame.current.y + frame.current.height - keyboardY, 0);\n };\n\n const updateBottomIfNecessary = () => {\n if (!keyboardEvent.current) {\n setBottom(0);\n return;\n }\n\n const { duration, easing, endCoordinates } = keyboardEvent.current;\n const height = relativeKeyboardHeight(endCoordinates);\n\n if (bottom === height) {\n return;\n }\n\n if (duration && easing) {\n LayoutAnimation.configureNext({\n // We have to pass the duration equal to minimal accepted duration defined here: RCTLayoutAnimation.m\n duration: duration > 10 ? duration : 10,\n update: {\n duration: duration > 10 ? duration : 10,\n type: LayoutAnimation.Types[easing] || 'keyboard',\n },\n });\n }\n setBottom(height);\n };\n\n const bottomHeight = enabled ? bottom : 0;\n switch (behavior) {\n case 'height':\n // eslint-disable-next-line no-case-declarations\n let heightStyle;\n if (frame.current && bottom > 0) {\n // Note that we only apply a height change when there is keyboard present,\n // i.e. this.state.bottom is greater than 0. If we remove that condition,\n // this.frame.height will never go back to its original value.\n // When height changes, we need to disable flex.\n heightStyle = {\n flex: 0,\n height: initialFrameHeight.current - bottomHeight,\n };\n }\n return (\n <KeyboardProvider value={{ dismissKeyboard }}>\n <View\n onLayout={onLayout}\n ref={viewRef}\n style={StyleSheet.compose(style, heightStyle)}\n {...props}\n >\n {children}\n </View>\n </KeyboardProvider>\n );\n\n case 'position':\n return (\n <KeyboardProvider value={{ dismissKeyboard }}>\n <View onLayout={onLayout} ref={viewRef} style={style} {...props}>\n <View\n style={StyleSheet.compose(contentContainerStyle, {\n bottom: bottomHeight,\n })}\n >\n {children}\n </View>\n </View>\n </KeyboardProvider>\n );\n\n case 'padding':\n return (\n <KeyboardProvider value={{ dismissKeyboard }}>\n <View\n onLayout={onLayout}\n ref={viewRef}\n style={StyleSheet.compose(style, { paddingBottom: bottomHeight })}\n {...props}\n >\n {children}\n </View>\n </KeyboardProvider>\n );\n\n default:\n return (\n <KeyboardProvider value={{ dismissKeyboard }}>\n <View onLayout={onLayout} ref={viewRef} style={style} {...props}>\n {children}\n </View>\n </KeyboardProvider>\n );\n }\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAiBA,IAAAE,gBAAA,GAAAF,OAAA;AAAkF,IAAAG,SAAA;AAAA,IAAAC,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAR,wBAAAY,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAQ3E,IAAMW,sBAA2D,GAAG,SAA9DA,sBAA2DA,CAAAC,IAAA,EAQlE;EAAA,IAAAC,aAAA,GAAAD,IAAA,CAPJE,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAGE,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,SAAS,GAAG,UAAU,GAAAH,aAAA;IACzDI,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,qBAAqB,GAAAN,IAAA,CAArBM,qBAAqB;IAAAC,YAAA,GAAAP,IAAA,CACrBQ,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,IAAI,GAAAA,YAAA;IAAAE,qBAAA,GAAAT,IAAA,CACdU,sBAAsB;IAAtBA,sBAAsB,GAAAD,qBAAA,cAAGN,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,GAAAK,qBAAA;IAC5DE,KAAK,GAAAX,IAAA,CAALW,KAAK;IACFC,KAAK,OAAAC,yBAAA,aAAAb,IAAA,EAAA1B,SAAA;EAER,IAAMwC,KAAK,GAAG,IAAAC,aAAM,GAAmB;EACvC,IAAMC,kBAAkB,GAAG,IAAAD,aAAM,EAAC,CAAC,CAAC;EACpC,IAAME,aAAa,GAAG,IAAAF,aAAM,GAAiB;EAC7C,IAAMG,aAAa,GAAG,IAAAH,aAAM,EAAwB,EAAE,CAAC;EACvD,IAAMI,OAAO,GAAG,IAAAJ,aAAM,EAAc,IAAI,CAAC;EAEzC,IAAAK,SAAA,GAAgC,IAAAC,eAAQ,EAAiBC,qBAAQ,CAACC,YAAY,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAL,SAAA;IAAxEM,QAAQ,GAAAF,UAAA;IAAEG,WAAW,GAAAH,UAAA;EAC5B,IAAAI,UAAA,GAA4B,IAAAP,eAAQ,EAAC,CAAC,CAAC;IAAAQ,UAAA,OAAAJ,eAAA,aAAAG,UAAA;IAAhCE,MAAM,GAAAD,UAAA;IAAEE,SAAS,GAAAF,UAAA;EACxB,IAAAG,UAAA,GAA4C,IAAAX,eAAQ,EAAC,KAAK,CAAC;IAAAY,UAAA,OAAAR,eAAA,aAAAO,UAAA;IAApDE,cAAc,GAAAD,UAAA;IAAEE,iBAAiB,GAAAF,UAAA;EAExC,IAAAG,gBAAS,EAAC,YAAM;IACd,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,YAA4B,EAAK;MAC7D,IAAIZ,QAAQ,CAACa,KAAK,CAAC,qBAAqB,CAAC,IAAID,YAAY,KAAK,QAAQ,EAAE;QACtEE,oBAAoB,EAAE;MACxB;MAEA,IAAIF,YAAY,CAACC,KAAK,CAAC,qBAAqB,CAAC,EAAE;QAC7CE,sBAAsB,EAAE;MAC1B;MAEAd,WAAW,CAACW,YAAY,CAAC;IAC3B,CAAC;IAED,IAAMI,gBAAuC,GAAG,SAA1CA,gBAAuCA,CAAIC,KAAK,EAAK;MACzD1B,aAAa,CAAC2B,OAAO,GAAGD,KAAK;IAC/B,CAAC;IAED,IAAMH,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;MACjC,IAAIrC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;QACzBc,aAAa,CAAC0B,OAAO,GAAG,CACtBC,qBAAQ,CAACC,WAAW,CAAC,yBAAyB,EAAEJ,gBAAgB,CAAC,EACjEG,qBAAQ,CAACC,WAAW,CAAC,iBAAiB,EAAE,YAAM;UAC5CX,iBAAiB,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,EACFU,qBAAQ,CAACC,WAAW,CAAC,iBAAiB,EAAE,YAAM;UAC5CX,iBAAiB,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,CACH;MACH,CAAC,MAAM;QACLjB,aAAa,CAAC0B,OAAO,GAAG,CACtBC,qBAAQ,CAACC,WAAW,CAAC,iBAAiB,EAAE,UAACH,KAAK,EAAK;UACjDD,gBAAgB,CAACC,KAAK,CAAC;UACvBR,iBAAiB,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,EACFU,qBAAQ,CAACC,WAAW,CAAC,iBAAiB,EAAE,UAACH,KAAK,EAAK;UACjDD,gBAAgB,CAACC,KAAK,CAAC;UACvBR,iBAAiB,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,CACH;MACH;IACF,CAAC;IAED,IAAMM,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAS;MACnCvB,aAAa,CAAC0B,OAAO,GAAG1B,aAAa,CAAC0B,OAAO,CAACG,MAAM,CAAC,UAACC,YAAY,EAAK;QACrEA,YAAY,CAACC,MAAM,EAAE;QACrB,OAAO,KAAK;MACd,CAAC,CAAC;IACJ,CAAC;IAED3B,qBAAQ,CAAC4B,gBAAgB,CAAC,QAAQ,EAAEb,oBAAoB,CAAC;IACzDG,oBAAoB,EAAE;IAEtB,OAAO,YAAM;MACXlB,qBAAQ,CAAC6B,mBAAmB,CAAC,QAAQ,EAAEd,oBAAoB,CAAC;MAC5DI,sBAAsB,EAAE;IAC1B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAL,gBAAS,EAAC,YAAM;IACdgB,uBAAuB,EAAE;EAC3B,CAAC,EAAE,CAACnC,aAAa,CAAC2B,OAAO,CAAC,CAAC;EAE3B,IAAMS,eAAgD,GAAG,SAAnDA,eAAgDA,CAAA,EAAS;IAC7D,IAAI,CAACnB,cAAc,EAAE;MACnB;IACF;IAEA,OAAO,IAAIoB,OAAO,CAAC,UAACC,OAAO,EAAK;MAC9B,IAAMP,YAAY,GAAGH,qBAAQ,CAACC,WAAW,CAAC,iBAAiB,EAAE,YAAM;QACjES,OAAO,EAAE;QACTP,YAAY,CAACC,MAAM,EAAE;MACvB,CAAC,CAAC;MAEFJ,qBAAQ,CAACW,OAAO,EAAE;IACpB,CAAC,CAAC;EACJ,CAAC;EAED,IAAMC,QAA4C,GAAG,SAA/CA,QAA4CA,CAAId,KAAK,EAAK;IAC9D7B,KAAK,CAAC8B,OAAO,GAAGD,KAAK,CAACe,WAAW,CAACC,MAAM;IACxC,IAAI,CAAC3C,kBAAkB,CAAC4B,OAAO,EAAE;MAE/B5B,kBAAkB,CAAC4B,OAAO,GAAG9B,KAAK,CAAC8B,OAAO,CAACgB,MAAM;IACnD;IAEAR,uBAAuB,EAAE;EAC3B,CAAC;EAED,IAAMS,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,aAAyB,EAAK;IAC5D,IAAI,CAAChD,KAAK,CAAC8B,OAAO,IAAI,CAACkB,aAAa,EAAE;MACpC,OAAO,CAAC;IACV;IAEA,IAAMC,SAAS,GAAGD,aAAa,CAACE,OAAO,GAAGtD,sBAAsB;IAIhE,OAAOuD,IAAI,CAACC,GAAG,CAACpD,KAAK,CAAC8B,OAAO,CAACuB,CAAC,GAAGrD,KAAK,CAAC8B,OAAO,CAACgB,MAAM,GAAGG,SAAS,EAAE,CAAC,CAAC;EACxE,CAAC;EAED,IAAMX,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;IACpC,IAAI,CAACnC,aAAa,CAAC2B,OAAO,EAAE;MAC1Bb,SAAS,CAAC,CAAC,CAAC;MACZ;IACF;IAEA,IAAAqC,qBAAA,GAA6CnD,aAAa,CAAC2B,OAAO;MAA1DyB,QAAQ,GAAAD,qBAAA,CAARC,QAAQ;MAAEC,MAAM,GAAAF,qBAAA,CAANE,MAAM;MAAEC,cAAc,GAAAH,qBAAA,CAAdG,cAAc;IACxC,IAAMX,MAAM,GAAGC,sBAAsB,CAACU,cAAc,CAAC;IAErD,IAAIzC,MAAM,KAAK8B,MAAM,EAAE;MACrB;IACF;IAEA,IAAIS,QAAQ,IAAIC,MAAM,EAAE;MACtBE,4BAAe,CAACC,aAAa,CAAC;QAE5BJ,QAAQ,EAAEA,QAAQ,GAAG,EAAE,GAAGA,QAAQ,GAAG,EAAE;QACvCK,MAAM,EAAE;UACNL,QAAQ,EAAEA,QAAQ,GAAG,EAAE,GAAGA,QAAQ,GAAG,EAAE;UACvCM,IAAI,EAAEH,4BAAe,CAACI,KAAK,CAACN,MAAM,CAAC,IAAI;QACzC;MACF,CAAC,CAAC;IACJ;IACAvC,SAAS,CAAC6B,MAAM,CAAC;EACnB,CAAC;EAED,IAAMiB,YAAY,GAAGrE,OAAO,GAAGsB,MAAM,GAAG,CAAC;EACzC,QAAQ5B,QAAQ;IACd,KAAK,QAAQ;MAEX,IAAI4E,WAAW;MACf,IAAIhE,KAAK,CAAC8B,OAAO,IAAId,MAAM,GAAG,CAAC,EAAE;QAK/BgD,WAAW,GAAG;UACZC,IAAI,EAAE,CAAC;UACPnB,MAAM,EAAE5C,kBAAkB,CAAC4B,OAAO,GAAGiC;QACvC,CAAC;MACH;MACA,OACE5G,MAAA,YAAA+G,aAAA,CAAC3G,gBAAA,CAAA4G,gBAAgB;QAACC,KAAK,EAAE;UAAE7B,eAAe,EAAfA;QAAgB,CAAE;QAAA8B,MAAA,EAAA5G,KAAA;QAAA6G,QAAA;UAAAC,QAAA,EAAA7G,YAAA;UAAA8G,UAAA;UAAAC,YAAA;QAAA;MAAA,GAC3CtH,MAAA,YAAA+G,aAAA,CAAC5G,YAAA,CAAAoH,IAAI,MAAAC,SAAA;QACHhC,QAAQ,EAAEA,QAAS;QACnBiC,GAAG,EAAEvE,OAAQ;QACbR,KAAK,EAAEgF,uBAAU,CAACC,OAAO,CAACjF,KAAK,EAAEmE,WAAW;MAAE,GAC1ClE,KAAK;QAAAuE,MAAA,EAAA5G,KAAA;QAAA6G,QAAA;UAAAC,QAAA,EAAA7G,YAAA;UAAA8G,UAAA;UAAAC,YAAA;QAAA;MAAA,IAERlF,QAAQ,CACJ,CACU;IAGvB,KAAK,UAAU;MACb,OACEpC,MAAA,YAAA+G,aAAA,CAAC3G,gBAAA,CAAA4G,gBAAgB;QAACC,KAAK,EAAE;UAAE7B,eAAe,EAAfA;QAAgB,CAAE;QAAA8B,MAAA,EAAA5G,KAAA;QAAA6G,QAAA;UAAAC,QAAA,EAAA7G,YAAA;UAAA8G,UAAA;UAAAC,YAAA;QAAA;MAAA,GAC3CtH,MAAA,YAAA+G,aAAA,CAAC5G,YAAA,CAAAoH,IAAI,MAAAC,SAAA;QAAChC,QAAQ,EAAEA,QAAS;QAACiC,GAAG,EAAEvE,OAAQ;QAACR,KAAK,EAAEA;MAAM,GAAKC,KAAK;QAAAuE,MAAA,EAAA5G,KAAA;QAAA6G,QAAA;UAAAC,QAAA,EAAA7G,YAAA;UAAA8G,UAAA;UAAAC,YAAA;QAAA;MAAA,IAC7DtH,MAAA,YAAA+G,aAAA,CAAC5G,YAAA,CAAAoH,IAAI;QACH7E,KAAK,EAAEgF,uBAAU,CAACC,OAAO,CAACtF,qBAAqB,EAAE;UAC/CwB,MAAM,EAAE+C;QACV,CAAC,CAAE;QAAAM,MAAA,EAAA5G,KAAA;QAAA6G,QAAA;UAAAC,QAAA,EAAA7G,YAAA;UAAA8G,UAAA;UAAAC,YAAA;QAAA;MAAA,GAEFlF,QAAQ,CACJ,CACF,CACU;IAGvB,KAAK,SAAS;MACZ,OACEpC,MAAA,YAAA+G,aAAA,CAAC3G,gBAAA,CAAA4G,gBAAgB;QAACC,KAAK,EAAE;UAAE7B,eAAe,EAAfA;QAAgB,CAAE;QAAA8B,MAAA,EAAA5G,KAAA;QAAA6G,QAAA;UAAAC,QAAA,EAAA7G,YAAA;UAAA8G,UAAA;UAAAC,YAAA;QAAA;MAAA,GAC3CtH,MAAA,YAAA+G,aAAA,CAAC5G,YAAA,CAAAoH,IAAI,MAAAC,SAAA;QACHhC,QAAQ,EAAEA,QAAS;QACnBiC,GAAG,EAAEvE,OAAQ;QACbR,KAAK,EAAEgF,uBAAU,CAACC,OAAO,CAACjF,KAAK,EAAE;UAAEkF,aAAa,EAAEhB;QAAa,CAAC;MAAE,GAC9DjE,KAAK;QAAAuE,MAAA,EAAA5G,KAAA;QAAA6G,QAAA;UAAAC,QAAA,EAAA7G,YAAA;UAAA8G,UAAA;UAAAC,YAAA;QAAA;MAAA,IAERlF,QAAQ,CACJ,CACU;IAGvB;MACE,OACEpC,MAAA,YAAA+G,aAAA,CAAC3G,gBAAA,CAAA4G,gBAAgB;QAACC,KAAK,EAAE;UAAE7B,eAAe,EAAfA;QAAgB,CAAE;QAAA8B,MAAA,EAAA5G,KAAA;QAAA6G,QAAA;UAAAC,QAAA,EAAA7G,YAAA;UAAA8G,UAAA;UAAAC,YAAA;QAAA;MAAA,GAC3CtH,MAAA,YAAA+G,aAAA,CAAC5G,YAAA,CAAAoH,IAAI,MAAAC,SAAA;QAAChC,QAAQ,EAAEA,QAAS;QAACiC,GAAG,EAAEvE,OAAQ;QAACR,KAAK,EAAEA;MAAM,GAAKC,KAAK;QAAAuE,MAAA,EAAA5G,KAAA;QAAA6G,QAAA;UAAAC,QAAA,EAAA7G,YAAA;UAAA8G,UAAA;UAAAC,YAAA;QAAA;MAAA,IAC5DlF,QAAQ,CACJ,CACU;EACnB;AAER,CAAC;AAACyF,OAAA,CAAA/F,sBAAA,GAAAA,sBAAA"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_KeyboardContext","_excluded","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","KeyboardCompatibleView","_ref","_ref$behavior","behavior","Platform","OS","children","contentContainerStyle","_ref$enabled","enabled","_ref$keyboardVertical","keyboardVerticalOffset","style","props","_objectWithoutProperties2","frame","useRef","initialFrameHeight","keyboardEvent","subscriptions","viewRef","_useState","useState","AppState","currentState","_useState2","_slicedToArray2","appState","setAppState","_useState3","_useState4","bottom","setBottom","_useState5","_useState6","isKeyboardOpen","setIsKeyboardOpen","useEffect","handleAppStateChange","nextAppState","match","setKeyboardListeners","unsetKeyboardListeners","onKeyboardChange","event","current","Keyboard","addListener","filter","subscription","remove","addEventListener","removeEventListener","updateBottomIfNecessary","dismissKeyboard","Promise","resolve","dismiss","onLayout","nativeEvent","layout","height","relativeKeyboardHeight","keyboardFrame","keyboardY","screenY","Math","max","y","_keyboardEvent$curren","duration","easing","endCoordinates","LayoutAnimation","configureNext","update","type","Types","bottomHeight","heightStyle","flex","createElement","KeyboardProvider","value","__self","__source","fileName","lineNumber","columnNumber","View","_extends2","ref","StyleSheet","compose","paddingBottom","exports"],"sources":["KeyboardCompatibleViewFC.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n AppState,\n AppStateStatus,\n EmitterSubscription,\n Keyboard,\n KeyboardAvoidingViewProps,\n KeyboardEvent,\n KeyboardEventListener,\n LayoutAnimation,\n LayoutChangeEvent,\n LayoutRectangle,\n Platform,\n ScreenRect,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport { KeyboardProvider } from '../../contexts/keyboardContext/KeyboardContext';\n\n/**\n * View that moves out of the way when the keyboard appears by automatically\n * adjusting its height, position, or bottom padding.\n *\n * Following piece of code has been mostly copied from KeyboardAvoidingView component, with few additional tweaks.\n */\nexport const KeyboardCompatibleView: React.FC<KeyboardAvoidingViewProps> = ({\n behavior = Platform.OS === 'ios' ? 'padding' : 'position',\n children,\n contentContainerStyle,\n enabled = true,\n keyboardVerticalOffset = Platform.OS === 'ios' ? 86.5 : -300,\n style,\n ...props\n}) => {\n const frame = useRef<LayoutRectangle>();\n const initialFrameHeight = useRef(0);\n const keyboardEvent = useRef<KeyboardEvent>();\n const subscriptions = useRef<EmitterSubscription[]>([]);\n const viewRef = useRef<View | null>(null);\n\n const [appState, setAppState] = useState<AppStateStatus>(AppState.currentState);\n const [bottom, setBottom] = useState(0);\n const [isKeyboardOpen, setIsKeyboardOpen] = useState(false);\n\n useEffect(() => {\n const handleAppStateChange = (nextAppState: AppStateStatus) => {\n if (appState.match(/inactive|background/) && nextAppState === 'active') {\n setKeyboardListeners();\n }\n\n if (nextAppState.match(/inactive|background/)) {\n unsetKeyboardListeners();\n }\n\n setAppState(nextAppState);\n };\n\n const onKeyboardChange: KeyboardEventListener = (event) => {\n keyboardEvent.current = event;\n };\n\n const setKeyboardListeners = () => {\n if (Platform.OS === 'ios') {\n subscriptions.current = [\n Keyboard.addListener('keyboardWillChangeFrame', onKeyboardChange),\n Keyboard.addListener('keyboardDidHide', () => {\n setIsKeyboardOpen(false);\n }),\n Keyboard.addListener('keyboardDidShow', () => {\n setIsKeyboardOpen(true);\n }),\n ];\n } else {\n subscriptions.current = [\n Keyboard.addListener('keyboardDidHide', (event) => {\n onKeyboardChange(event);\n setIsKeyboardOpen(false);\n }),\n Keyboard.addListener('keyboardDidShow', (event) => {\n onKeyboardChange(event);\n setIsKeyboardOpen(true);\n }),\n ];\n }\n };\n\n const unsetKeyboardListeners = () => {\n subscriptions.current = subscriptions.current.filter((subscription) => {\n subscription.remove();\n return false;\n });\n };\n\n AppState.addEventListener('change', handleAppStateChange);\n setKeyboardListeners();\n\n return () => {\n AppState.removeEventListener('change', handleAppStateChange);\n unsetKeyboardListeners();\n };\n }, []);\n\n useEffect(() => {\n updateBottomIfNecessary();\n }, [keyboardEvent.current]);\n\n const dismissKeyboard: () => Promise<void> | undefined = () => {\n if (!isKeyboardOpen) {\n return;\n }\n\n return new Promise((resolve) => {\n const subscription = Keyboard.addListener('keyboardDidHide', () => {\n resolve();\n subscription.remove();\n });\n\n Keyboard.dismiss();\n });\n };\n\n const onLayout: (event: LayoutChangeEvent) => void = (event) => {\n frame.current = event.nativeEvent.layout;\n if (!initialFrameHeight.current) {\n // save the initial frame height, before the keyboard is visible\n initialFrameHeight.current = frame.current.height;\n }\n\n updateBottomIfNecessary();\n };\n\n const relativeKeyboardHeight = (keyboardFrame: ScreenRect) => {\n if (!frame.current || !keyboardFrame) {\n return 0;\n }\n\n const keyboardY = keyboardFrame.screenY - keyboardVerticalOffset;\n\n // Calculate the displacement needed for the view such that it\n // no longer overlaps with the keyboard\n return Math.max(frame.current.y + frame.current.height - keyboardY, 0);\n };\n\n const updateBottomIfNecessary = () => {\n if (!keyboardEvent.current) {\n setBottom(0);\n return;\n }\n\n const { duration, easing, endCoordinates } = keyboardEvent.current;\n const height = relativeKeyboardHeight(endCoordinates);\n\n if (bottom === height) {\n return;\n }\n\n if (duration && easing) {\n LayoutAnimation.configureNext({\n // We have to pass the duration equal to minimal accepted duration defined here: RCTLayoutAnimation.m\n duration: duration > 10 ? duration : 10,\n update: {\n duration: duration > 10 ? duration : 10,\n type: LayoutAnimation.Types[easing] || 'keyboard',\n },\n });\n }\n setBottom(height);\n };\n\n const bottomHeight = enabled ? bottom : 0;\n switch (behavior) {\n case 'height':\n // eslint-disable-next-line no-case-declarations\n let heightStyle;\n if (frame.current && bottom > 0) {\n // Note that we only apply a height change when there is keyboard present,\n // i.e. this.state.bottom is greater than 0. If we remove that condition,\n // this.frame.height will never go back to its original value.\n // When height changes, we need to disable flex.\n heightStyle = {\n flex: 0,\n height: initialFrameHeight.current - bottomHeight,\n };\n }\n return (\n <KeyboardProvider value={{ dismissKeyboard }}>\n <View\n onLayout={onLayout}\n ref={viewRef}\n style={StyleSheet.compose(style, heightStyle)}\n {...props}\n >\n {children}\n </View>\n </KeyboardProvider>\n );\n\n case 'position':\n return (\n <KeyboardProvider value={{ dismissKeyboard }}>\n <View onLayout={onLayout} ref={viewRef} style={style} {...props}>\n <View\n style={StyleSheet.compose(contentContainerStyle, {\n bottom: bottomHeight,\n })}\n >\n {children}\n </View>\n </View>\n </KeyboardProvider>\n );\n\n case 'padding':\n return (\n <KeyboardProvider value={{ dismissKeyboard }}>\n <View\n onLayout={onLayout}\n ref={viewRef}\n style={StyleSheet.compose(style, { paddingBottom: bottomHeight })}\n {...props}\n >\n {children}\n </View>\n </KeyboardProvider>\n );\n\n default:\n return (\n <KeyboardProvider value={{ dismissKeyboard }}>\n <View onLayout={onLayout} ref={viewRef} style={style} {...props}>\n {children}\n </View>\n </KeyboardProvider>\n );\n }\n};\n"],"mappings":"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"}
|