@droppii-org/chat-mobile 0.2.6 → 0.2.8
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/module/components/AttachmentPreview.js +250 -0
- package/lib/module/components/AttachmentPreview.js.map +1 -0
- package/lib/module/components/MediaViewer/index.js +2 -0
- package/lib/module/components/MediaViewer/index.js.map +1 -0
- package/lib/module/components/MediaViewerModal.js +57 -0
- package/lib/module/components/MediaViewerModal.js.map +1 -0
- package/lib/module/components/MergedImageGrid.js +173 -0
- package/lib/module/components/MergedImageGrid.js.map +1 -0
- package/lib/module/components/ThreadCard/AvatarSection.js +4 -4
- package/lib/module/components/ThreadCard/AvatarSection.js.map +1 -1
- package/lib/module/components/ThreadCard/NamePrefixIcon.js +13 -16
- package/lib/module/components/ThreadCard/NamePrefixIcon.js.map +1 -1
- package/lib/module/components/ThreadCard/ThreadCard.js +13 -33
- package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
- package/lib/module/components/ThreadCard/thread-card.utils.js +80 -4
- package/lib/module/components/ThreadCard/thread-card.utils.js.map +1 -1
- package/lib/module/components/messages/fileMessage/index.js +26 -0
- package/lib/module/components/messages/fileMessage/index.js.map +1 -0
- package/lib/module/components/messages/imageMessage/index.js +118 -0
- package/lib/module/components/messages/imageMessage/index.js.map +1 -0
- package/lib/module/components/messages/linkMessage/index.js +122 -0
- package/lib/module/components/messages/linkMessage/index.js.map +1 -0
- package/lib/module/components/messages/mergedMessage/index.js +37 -0
- package/lib/module/components/messages/mergedMessage/index.js.map +1 -0
- package/lib/module/components/messages/styles.js +41 -0
- package/lib/module/components/messages/styles.js.map +1 -0
- package/lib/module/components/messages/textMessage/index.js +38 -0
- package/lib/module/components/messages/textMessage/index.js.map +1 -0
- package/lib/module/components/messages/types.js +14 -0
- package/lib/module/components/messages/types.js.map +1 -0
- package/lib/module/components/messages/videoMessage/index.js +110 -0
- package/lib/module/components/messages/videoMessage/index.js.map +1 -0
- package/lib/module/config/api-endpoints.js +66 -0
- package/lib/module/config/api-endpoints.js.map +1 -0
- package/lib/module/config/attachment-priority.js +81 -0
- package/lib/module/config/attachment-priority.js.map +1 -0
- package/lib/module/config/configuration.js +50 -0
- package/lib/module/config/configuration.js.map +1 -0
- package/lib/module/config/index.js +22 -0
- package/lib/module/config/index.js.map +1 -0
- package/lib/module/context/ChatContext.js +7 -6
- package/lib/module/context/ChatContext.js.map +1 -1
- package/lib/module/core/index.js +19 -1
- package/lib/module/core/index.js.map +1 -1
- package/lib/module/core/useChatListener.js +0 -14
- package/lib/module/core/useChatListener.js.map +1 -1
- package/lib/module/hooks/message/useSendMessage.js +106 -0
- package/lib/module/hooks/message/useSendMessage.js.map +1 -0
- package/lib/module/hooks/useChatMessages.js +36 -121
- package/lib/module/hooks/useChatMessages.js.map +1 -1
- package/lib/module/hooks/useConversationList.js +29 -17
- package/lib/module/hooks/useConversationList.js.map +1 -1
- package/lib/module/hooks/useImageAttachment.js +263 -0
- package/lib/module/hooks/useImageAttachment.js.map +1 -0
- package/lib/module/hooks/useLinkPreview/useLinkPreview.js +3 -2
- package/lib/module/hooks/useLinkPreview/useLinkPreview.js.map +1 -1
- package/lib/module/hooks/useMediaViewer.js +24 -0
- package/lib/module/hooks/useMediaViewer.js.map +1 -0
- package/lib/module/hooks/useSendAttachment.js +182 -0
- package/lib/module/hooks/useSendAttachment.js.map +1 -0
- package/lib/module/hooks/useVideoAttachment.js +251 -0
- package/lib/module/hooks/useVideoAttachment.js.map +1 -0
- package/lib/module/index.js +13 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/MediaView/VideoPlayer.js +177 -0
- package/lib/module/screens/MediaView/VideoPlayer.js.map +1 -0
- package/lib/module/screens/MediaView/index.js +264 -0
- package/lib/module/screens/MediaView/index.js.map +1 -0
- package/lib/module/screens/chat-detail/ChatComposer.js +190 -196
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetail.js +106 -71
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetailHeader.js +5 -8
- package/lib/module/screens/chat-detail/ChatDetailHeader.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatLinkPreview.js +1 -1
- package/lib/module/screens/chat-detail/ChatLinkPreview.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js +5 -15
- package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
- package/lib/module/screens/chat-detail/components/ChatInputActions.js +51 -0
- package/lib/module/screens/chat-detail/components/ChatInputActions.js.map +1 -0
- package/lib/module/screens/chat-detail/components/ChatMessageInput.js +93 -0
- package/lib/module/screens/chat-detail/components/ChatMessageInput.js.map +1 -0
- package/lib/module/screens/chat-detail/conversationHeader.utils.js +7 -9
- package/lib/module/screens/chat-detail/conversationHeader.utils.js.map +1 -1
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js +221 -0
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js.map +1 -0
- package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js +114 -0
- package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js.map +1 -0
- package/lib/module/screens/chat-detail/hooks/useChatComposerState.js +26 -0
- package/lib/module/screens/chat-detail/hooks/useChatComposerState.js.map +1 -0
- package/lib/module/screens/chat-detail/index.js +0 -1
- package/lib/module/screens/chat-detail/index.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +32 -25
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/messageTypes.js +15 -0
- package/lib/module/screens/chat-detail/legend/messageTypes.js.map +1 -0
- package/lib/module/screens/inbox/MessagesTab.js.map +1 -1
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js +61 -0
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js.map +1 -0
- package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js +54 -0
- package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js.map +1 -0
- package/lib/module/services/attachmentHandlers/index.js +12 -0
- package/lib/module/services/attachmentHandlers/index.js.map +1 -0
- package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js +85 -0
- package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js.map +1 -0
- package/lib/module/services/attachmentOrchestrator.js +225 -0
- package/lib/module/services/attachmentOrchestrator.js.map +1 -0
- package/lib/module/services/auth.js +35 -0
- package/lib/module/services/auth.js.map +1 -0
- package/lib/module/services/endpoints.js +20 -1
- package/lib/module/services/endpoints.js.map +1 -1
- package/lib/module/services/imageUpload.js +126 -0
- package/lib/module/services/imageUpload.js.map +1 -0
- package/lib/module/store/conversation.js +1 -1
- package/lib/module/store/conversation.js.map +1 -1
- package/lib/module/store/message.js +45 -0
- package/lib/module/store/message.js.map +1 -0
- package/lib/module/translation/resources/i18n.js +22 -2
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/types/attachment.js +2 -0
- package/lib/module/types/attachment.js.map +1 -0
- package/lib/module/types/attachmentHandler.js +20 -0
- package/lib/module/types/attachmentHandler.js.map +1 -0
- package/lib/module/types/chat.js +2 -7
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/types/imageUpload.js +2 -0
- package/lib/module/types/imageUpload.js.map +1 -0
- package/lib/module/types/message.js +1 -0
- package/lib/module/types/message.js.map +1 -1
- package/lib/module/utils/chatImageDimens.js +148 -0
- package/lib/module/utils/chatImageDimens.js.map +1 -0
- package/lib/module/utils/conversation.js +34 -13
- package/lib/module/utils/conversation.js.map +1 -1
- package/lib/module/utils/device.js +65 -0
- package/lib/module/utils/device.js.map +1 -0
- package/lib/module/utils/imageUrlOptimizer.js +41 -0
- package/lib/module/utils/imageUrlOptimizer.js.map +1 -0
- package/lib/module/utils/imageUtils.js +69 -0
- package/lib/module/utils/imageUtils.js.map +1 -0
- package/lib/module/utils/legendListMessage.js +0 -3
- package/lib/module/utils/legendListMessage.js.map +1 -1
- package/lib/module/utils/message.js +5 -8
- package/lib/module/utils/message.js.map +1 -1
- package/lib/module/utils/resolveMessageType.js +3 -0
- package/lib/module/utils/resolveMessageType.js.map +1 -1
- package/lib/module/utils/ui.js +17 -0
- package/lib/module/utils/ui.js.map +1 -0
- package/lib/module/utils/url.js +3 -3
- package/lib/module/utils/url.js.map +1 -1
- package/lib/module/utils/videoThumbnail.js +62 -0
- package/lib/module/utils/videoThumbnail.js.map +1 -0
- package/lib/typescript/src/components/AttachmentPreview.d.ts +28 -0
- package/lib/typescript/src/components/AttachmentPreview.d.ts.map +1 -0
- package/lib/typescript/src/components/MediaViewer/index.d.ts +1 -0
- package/lib/typescript/src/components/MediaViewer/index.d.ts.map +1 -0
- package/lib/typescript/src/components/MediaViewerModal.d.ts +10 -0
- package/lib/typescript/src/components/MediaViewerModal.d.ts.map +1 -0
- package/lib/typescript/src/components/MergedImageGrid.d.ts +16 -0
- package/lib/typescript/src/components/MergedImageGrid.d.ts.map +1 -0
- package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts +2 -2
- package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts.map +1 -1
- package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts +3 -4
- package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts.map +1 -1
- package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
- package/lib/typescript/src/components/ThreadCard/thread-card.utils.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/fileMessage/index.d.ts +3 -0
- package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/imageMessage/index.d.ts +3 -0
- package/lib/typescript/src/components/messages/imageMessage/index.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/linkMessage/index.d.ts +9 -0
- package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/mergedMessage/index.d.ts +3 -0
- package/lib/typescript/src/components/messages/mergedMessage/index.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/styles.d.ts +36 -0
- package/lib/typescript/src/components/messages/styles.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/textMessage/index.d.ts +9 -0
- package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/types.d.ts +10 -0
- package/lib/typescript/src/components/messages/types.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/videoMessage/index.d.ts +3 -0
- package/lib/typescript/src/components/messages/videoMessage/index.d.ts.map +1 -0
- package/lib/typescript/src/config/api-endpoints.d.ts +40 -0
- package/lib/typescript/src/config/api-endpoints.d.ts.map +1 -0
- package/lib/typescript/src/config/attachment-priority.d.ts +31 -0
- package/lib/typescript/src/config/attachment-priority.d.ts.map +1 -0
- package/lib/typescript/src/config/configuration.d.ts +30 -0
- package/lib/typescript/src/config/configuration.d.ts.map +1 -0
- package/lib/typescript/src/config/index.d.ts +15 -0
- package/lib/typescript/src/config/index.d.ts.map +1 -0
- package/lib/typescript/src/context/ChatContext.d.ts +1 -1
- package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
- package/lib/typescript/src/core/index.d.ts +13 -1
- package/lib/typescript/src/core/index.d.ts.map +1 -1
- package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +12 -0
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useChatMessages.d.ts +0 -1
- package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useConversationList.d.ts +2 -1
- package/lib/typescript/src/hooks/useConversationList.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useImageAttachment.d.ts +20 -0
- package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useLinkPreview/useLinkPreview.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useMediaViewer.d.ts +13 -0
- package/lib/typescript/src/hooks/useMediaViewer.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useSendAttachment.d.ts +59 -0
- package/lib/typescript/src/hooks/useSendAttachment.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useVideoAttachment.d.ts +29 -0
- package/lib/typescript/src/hooks/useVideoAttachment.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +14 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/MediaView/VideoPlayer.d.ts +12 -0
- package/lib/typescript/src/screens/MediaView/VideoPlayer.d.ts.map +1 -0
- package/lib/typescript/src/screens/MediaView/index.d.ts +11 -0
- package/lib/typescript/src/screens/MediaView/index.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/components/ChatInputActions.d.ts +8 -0
- package/lib/typescript/src/screens/chat-detail/components/ChatInputActions.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts +15 -0
- package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts +23 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts +15 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts +13 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/index.d.ts +0 -2
- package/lib/typescript/src/screens/chat-detail/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +3 -3
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/messageTypes.d.ts +13 -0
- package/lib/typescript/src/screens/chat-detail/legend/messageTypes.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/types.d.ts +10 -8
- package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts +22 -0
- package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts.map +1 -0
- package/lib/typescript/src/services/attachmentHandlers/imageAttachmentHandler.d.ts +3 -0
- package/lib/typescript/src/services/attachmentHandlers/imageAttachmentHandler.d.ts.map +1 -0
- package/lib/typescript/src/services/attachmentHandlers/index.d.ts +5 -0
- package/lib/typescript/src/services/attachmentHandlers/index.d.ts.map +1 -0
- package/lib/typescript/src/services/attachmentHandlers/videoAttachmentHandler.d.ts +31 -0
- package/lib/typescript/src/services/attachmentHandlers/videoAttachmentHandler.d.ts.map +1 -0
- package/lib/typescript/src/services/attachmentOrchestrator.d.ts +5 -0
- package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -0
- package/lib/typescript/src/services/auth.d.ts +19 -0
- package/lib/typescript/src/services/auth.d.ts.map +1 -0
- package/lib/typescript/src/services/endpoints.d.ts +11 -1
- package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
- package/lib/typescript/src/services/imageUpload.d.ts +7 -0
- package/lib/typescript/src/services/imageUpload.d.ts.map +1 -0
- package/lib/typescript/src/store/message.d.ts +3 -0
- package/lib/typescript/src/store/message.d.ts.map +1 -0
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/attachment.d.ts +72 -0
- package/lib/typescript/src/types/attachment.d.ts.map +1 -0
- package/lib/typescript/src/types/attachmentHandler.d.ts +13 -0
- package/lib/typescript/src/types/attachmentHandler.d.ts.map +1 -0
- package/lib/typescript/src/types/chat.d.ts +28 -27
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/types/common.d.ts +1 -0
- package/lib/typescript/src/types/common.d.ts.map +1 -1
- package/lib/typescript/src/types/imageUpload.d.ts +26 -0
- package/lib/typescript/src/types/imageUpload.d.ts.map +1 -0
- package/lib/typescript/src/types/message.d.ts +1 -0
- package/lib/typescript/src/types/message.d.ts.map +1 -1
- package/lib/typescript/src/utils/chatImageDimens.d.ts +34 -0
- package/lib/typescript/src/utils/chatImageDimens.d.ts.map +1 -0
- package/lib/typescript/src/utils/conversation.d.ts +3 -2
- package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
- package/lib/typescript/src/utils/device.d.ts +7 -0
- package/lib/typescript/src/utils/device.d.ts.map +1 -0
- package/lib/typescript/src/utils/imageUrlOptimizer.d.ts +12 -0
- package/lib/typescript/src/utils/imageUrlOptimizer.d.ts.map +1 -0
- package/lib/typescript/src/utils/imageUtils.d.ts +9 -0
- package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -0
- package/lib/typescript/src/utils/legendListMessage.d.ts +0 -2
- package/lib/typescript/src/utils/legendListMessage.d.ts.map +1 -1
- package/lib/typescript/src/utils/message.d.ts.map +1 -1
- package/lib/typescript/src/utils/resolveMessageType.d.ts.map +1 -1
- package/lib/typescript/src/utils/ui.d.ts +13 -0
- package/lib/typescript/src/utils/ui.d.ts.map +1 -0
- package/lib/typescript/src/utils/url.d.ts +1 -1
- package/lib/typescript/src/utils/url.d.ts.map +1 -1
- package/lib/typescript/src/utils/videoThumbnail.d.ts +16 -0
- package/lib/typescript/src/utils/videoThumbnail.d.ts.map +1 -0
- package/package.json +15 -3
- package/src/components/AttachmentPreview.tsx +304 -0
- package/src/components/MediaViewer/index.tsx +0 -0
- package/src/components/MediaViewerModal.tsx +70 -0
- package/src/components/MergedImageGrid.tsx +238 -0
- package/src/components/ThreadCard/AvatarSection.tsx +5 -8
- package/src/components/ThreadCard/NamePrefixIcon.tsx +27 -38
- package/src/components/ThreadCard/ThreadCard.tsx +16 -30
- package/src/components/ThreadCard/thread-card.utils.ts +95 -4
- package/src/components/messages/fileMessage/index.tsx +30 -0
- package/src/components/messages/imageMessage/index.tsx +137 -0
- package/src/components/messages/linkMessage/index.tsx +162 -0
- package/src/components/messages/mergedMessage/index.tsx +45 -0
- package/src/components/messages/styles.ts +39 -0
- package/src/components/messages/textMessage/index.tsx +53 -0
- package/src/components/messages/types.ts +22 -0
- package/src/components/messages/videoMessage/index.tsx +120 -0
- package/src/config/api-endpoints.ts +72 -0
- package/src/config/attachment-priority.ts +93 -0
- package/src/config/configuration.ts +50 -0
- package/src/config/index.ts +19 -0
- package/src/context/ChatContext.tsx +12 -4
- package/src/core/index.ts +25 -1
- package/src/core/useChatListener.ts +0 -21
- package/src/hooks/message/useSendMessage.ts +143 -0
- package/src/hooks/useChatMessages.ts +69 -161
- package/src/hooks/useConversationList.ts +34 -16
- package/src/hooks/useImageAttachment.ts +348 -0
- package/src/hooks/useLinkPreview/useLinkPreview.ts +3 -2
- package/src/hooks/useMediaViewer.ts +32 -0
- package/src/hooks/useSendAttachment.ts +295 -0
- package/src/hooks/useVideoAttachment.ts +334 -0
- package/src/index.tsx +13 -1
- package/src/screens/MediaView/VideoPlayer.tsx +211 -0
- package/src/screens/MediaView/index.tsx +327 -0
- package/src/screens/chat-detail/ChatComposer.tsx +206 -271
- package/src/screens/chat-detail/ChatDetail.tsx +164 -104
- package/src/screens/chat-detail/ChatDetailHeader.tsx +4 -10
- package/src/screens/chat-detail/ChatLinkPreview.tsx +1 -1
- package/src/screens/chat-detail/ChatListLegend.tsx +10 -13
- package/src/screens/chat-detail/components/ChatInputActions.tsx +71 -0
- package/src/screens/chat-detail/components/ChatMessageInput.tsx +127 -0
- package/src/screens/chat-detail/conversationHeader.utils.ts +11 -14
- package/src/screens/chat-detail/hooks/useAttachmentSendHandler.ts +291 -0
- package/src/screens/chat-detail/hooks/useChatComposerAnimation.ts +184 -0
- package/src/screens/chat-detail/hooks/useChatComposerState.ts +40 -0
- package/src/screens/chat-detail/index.ts +0 -2
- package/src/screens/chat-detail/legend/LegendChatMessage.tsx +44 -39
- package/src/screens/chat-detail/legend/messageTypes.tsx +13 -0
- package/src/screens/chat-detail/types.ts +11 -9
- package/src/screens/inbox/MessagesTab.tsx +1 -1
- package/src/services/attachmentHandlers/fileAttachmentHandler.ts +78 -0
- package/src/services/attachmentHandlers/imageAttachmentHandler.ts +54 -0
- package/src/services/attachmentHandlers/index.ts +10 -0
- package/src/services/attachmentHandlers/videoAttachmentHandler.ts +114 -0
- package/src/services/attachmentOrchestrator.ts +300 -0
- package/src/services/auth.ts +34 -0
- package/src/services/endpoints.ts +24 -1
- package/src/services/imageUpload.ts +162 -0
- package/src/store/conversation.ts +1 -1
- package/src/store/message.ts +44 -0
- package/src/translation/resources/i18n.ts +22 -2
- package/src/types/attachment.ts +85 -0
- package/src/types/attachmentHandler.ts +31 -0
- package/src/types/chat.ts +31 -30
- package/src/types/common.ts +1 -0
- package/src/types/imageUpload.ts +28 -0
- package/src/types/message.ts +1 -0
- package/src/utils/chatImageDimens.ts +178 -0
- package/src/utils/conversation.ts +44 -17
- package/src/utils/device.ts +73 -0
- package/src/utils/imageUrlOptimizer.ts +56 -0
- package/src/utils/imageUtils.ts +76 -0
- package/src/utils/legendListMessage.ts +0 -5
- package/src/utils/message.ts +10 -12
- package/src/utils/resolveMessageType.ts +2 -0
- package/src/utils/ui.ts +19 -0
- package/src/utils/url.ts +3 -3
- package/src/utils/videoThumbnail.ts +85 -0
- package/lib/module/screens/chat-detail/ChatList.js +0 -147
- package/lib/module/screens/chat-detail/ChatList.js.map +0 -1
- package/lib/module/screens/chat-detail/ChatTextBubble.js +0 -62
- package/lib/module/screens/chat-detail/ChatTextBubble.js.map +0 -1
- package/lib/module/screens/chat-detail/legend/message-types.js +0 -122
- package/lib/module/screens/chat-detail/legend/message-types.js.map +0 -1
- package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js +0 -24
- package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js.map +0 -1
- package/lib/module/screens/chat-detail/messages/types.js +0 -4
- package/lib/module/screens/chat-detail/messages/types.js.map +0 -1
- package/lib/typescript/src/screens/chat-detail/ChatList.d.ts +0 -3
- package/lib/typescript/src/screens/chat-detail/ChatList.d.ts.map +0 -1
- package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts +0 -3
- package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts.map +0 -1
- package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts +0 -12
- package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts.map +0 -1
- package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts +0 -3
- package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts.map +0 -1
- package/lib/typescript/src/screens/chat-detail/messages/types.d.ts +0 -13
- package/lib/typescript/src/screens/chat-detail/messages/types.d.ts.map +0 -1
- package/src/screens/chat-detail/ChatList.tsx +0 -190
- package/src/screens/chat-detail/ChatTextBubble.tsx +0 -73
- package/src/screens/chat-detail/legend/message-types.tsx +0 -149
- package/src/screens/chat-detail/messages/ChatMessageBubble.tsx +0 -23
- package/src/screens/chat-detail/messages/types.ts +0 -14
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import { ScrollView, StyleSheet } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KColors, KLabel } from '@droppii/libs';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const formatDuration = seconds => {
|
|
8
|
+
const mins = Math.floor(seconds / 60);
|
|
9
|
+
const secs = seconds % 60;
|
|
10
|
+
return `${mins}:${secs.toString().padStart(2, '0')}`;
|
|
11
|
+
};
|
|
12
|
+
const getAttachmentIcon = type => {
|
|
13
|
+
switch (type) {
|
|
14
|
+
case 'image':
|
|
15
|
+
return 'image';
|
|
16
|
+
case 'video':
|
|
17
|
+
return 'play-circle';
|
|
18
|
+
case 'audio':
|
|
19
|
+
return 'music';
|
|
20
|
+
case 'document':
|
|
21
|
+
return 'file-document';
|
|
22
|
+
case 'file':
|
|
23
|
+
default:
|
|
24
|
+
return 'file';
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export const AttachmentPreview = /*#__PURE__*/memo(({
|
|
28
|
+
visible,
|
|
29
|
+
attachments,
|
|
30
|
+
onRemove
|
|
31
|
+
}) => {
|
|
32
|
+
if (!visible || !attachments?.length) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
36
|
+
paddingH: "0.75rem"
|
|
37
|
+
// paddingV="0.75rem"
|
|
38
|
+
,
|
|
39
|
+
brW: 1,
|
|
40
|
+
brC: KColors.palette.gray.w100,
|
|
41
|
+
background: KColors.white,
|
|
42
|
+
style: styles.container,
|
|
43
|
+
children: /*#__PURE__*/_jsx(KContainer.View, {
|
|
44
|
+
row: true,
|
|
45
|
+
alignItems: true,
|
|
46
|
+
minH: 70,
|
|
47
|
+
children: /*#__PURE__*/_jsx(KContainer.View, {
|
|
48
|
+
flex: true,
|
|
49
|
+
children: /*#__PURE__*/_jsx(ScrollView, {
|
|
50
|
+
horizontal: true,
|
|
51
|
+
showsHorizontalScrollIndicator: false,
|
|
52
|
+
scrollEventThrottle: 16,
|
|
53
|
+
contentContainerStyle: {
|
|
54
|
+
alignItems: 'center'
|
|
55
|
+
},
|
|
56
|
+
children: attachments.map((item, index) => {
|
|
57
|
+
const {
|
|
58
|
+
type,
|
|
59
|
+
metadata,
|
|
60
|
+
uploadProgress,
|
|
61
|
+
error,
|
|
62
|
+
isUploading,
|
|
63
|
+
thumbnailUrl
|
|
64
|
+
} = item;
|
|
65
|
+
const isImage = type === 'image';
|
|
66
|
+
const isVideo = type === 'video';
|
|
67
|
+
const hasPreview = isImage || isVideo;
|
|
68
|
+
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
69
|
+
children: [/*#__PURE__*/_jsxs(KContainer.View, {
|
|
70
|
+
style: styles.thumbnail,
|
|
71
|
+
center: true,
|
|
72
|
+
children: [isVideo && thumbnailUrl && /*#__PURE__*/_jsx(KImage.Base, {
|
|
73
|
+
uri: thumbnailUrl,
|
|
74
|
+
width: 48,
|
|
75
|
+
height: 48,
|
|
76
|
+
resizeMode: "cover"
|
|
77
|
+
}), isVideo && !thumbnailUrl && /*#__PURE__*/_jsx(KContainer.View, {
|
|
78
|
+
style: [styles.videoBg, styles.videoThumbnail]
|
|
79
|
+
}), isImage && /*#__PURE__*/_jsx(KImage.Base, {
|
|
80
|
+
uri: `file://${metadata.path}`,
|
|
81
|
+
width: 48,
|
|
82
|
+
height: 48
|
|
83
|
+
}), !hasPreview && /*#__PURE__*/_jsx(KContainer.View, {
|
|
84
|
+
style: styles.iconOverlay,
|
|
85
|
+
center: true,
|
|
86
|
+
background: KColors.palette.gray.w100,
|
|
87
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
88
|
+
name: getAttachmentIcon(type),
|
|
89
|
+
provider: "MaterialCommunityIcons",
|
|
90
|
+
size: 24,
|
|
91
|
+
color: KColors.palette.primary.w400
|
|
92
|
+
})
|
|
93
|
+
}), isVideo && metadata.duration && /*#__PURE__*/_jsx(KContainer.View, {
|
|
94
|
+
style: styles.durationBadge,
|
|
95
|
+
center: true,
|
|
96
|
+
children: /*#__PURE__*/_jsx(KLabel.Text, {
|
|
97
|
+
typo: "TextXsNormal",
|
|
98
|
+
color: KColors.white,
|
|
99
|
+
style: styles.durationText,
|
|
100
|
+
children: formatDuration(metadata.duration / 1000)
|
|
101
|
+
})
|
|
102
|
+
}), !hasPreview && /*#__PURE__*/_jsx(KContainer.View, {
|
|
103
|
+
style: styles.typeIcon,
|
|
104
|
+
center: true,
|
|
105
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
106
|
+
name: getAttachmentIcon(type),
|
|
107
|
+
provider: "MaterialCommunityIcons",
|
|
108
|
+
size: 14,
|
|
109
|
+
color: KColors.white
|
|
110
|
+
})
|
|
111
|
+
}), error && /*#__PURE__*/_jsx(KContainer.View, {
|
|
112
|
+
style: styles.errorOverlay,
|
|
113
|
+
center: true,
|
|
114
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
115
|
+
name: "close-circle",
|
|
116
|
+
provider: "MaterialCommunityIcons",
|
|
117
|
+
size: 28,
|
|
118
|
+
color: KColors.white
|
|
119
|
+
})
|
|
120
|
+
}), isUploading && /*#__PURE__*/_jsx(KContainer.View, {
|
|
121
|
+
style: styles.progressOverlay,
|
|
122
|
+
center: true,
|
|
123
|
+
children: /*#__PURE__*/_jsxs(KLabel.Text, {
|
|
124
|
+
typo: "TextSmNormal",
|
|
125
|
+
color: KColors.white,
|
|
126
|
+
children: [uploadProgress, "%"]
|
|
127
|
+
})
|
|
128
|
+
})]
|
|
129
|
+
}), /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
130
|
+
style: styles.removeButton,
|
|
131
|
+
center: true,
|
|
132
|
+
br: "round",
|
|
133
|
+
background: KColors.black,
|
|
134
|
+
onPress: () => onRemove(type, index),
|
|
135
|
+
disabled: isUploading,
|
|
136
|
+
hitSlop: {
|
|
137
|
+
top: 10,
|
|
138
|
+
bottom: 10,
|
|
139
|
+
left: 10,
|
|
140
|
+
right: 10
|
|
141
|
+
},
|
|
142
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
143
|
+
name: "close",
|
|
144
|
+
provider: "MaterialCommunityIcons",
|
|
145
|
+
size: 14,
|
|
146
|
+
color: KColors.white
|
|
147
|
+
})
|
|
148
|
+
})]
|
|
149
|
+
}, `${type}-${index}`);
|
|
150
|
+
})
|
|
151
|
+
})
|
|
152
|
+
})
|
|
153
|
+
})
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
AttachmentPreview.displayName = 'AttachmentPreview';
|
|
157
|
+
const styles = StyleSheet.create({
|
|
158
|
+
container: {
|
|
159
|
+
// minHeight: 80,
|
|
160
|
+
},
|
|
161
|
+
thumbnail: {
|
|
162
|
+
position: 'relative',
|
|
163
|
+
width: 48,
|
|
164
|
+
height: 48,
|
|
165
|
+
borderRadius: 4,
|
|
166
|
+
overflow: 'hidden',
|
|
167
|
+
marginRight: 8,
|
|
168
|
+
backgroundColor: KColors.palette.gray.w50
|
|
169
|
+
},
|
|
170
|
+
durationBadge: {
|
|
171
|
+
position: 'absolute',
|
|
172
|
+
bottom: 4,
|
|
173
|
+
right: 4,
|
|
174
|
+
backgroundColor: 'rgba(0, 0, 0, 0.8)',
|
|
175
|
+
borderRadius: 3,
|
|
176
|
+
paddingVertical: 2,
|
|
177
|
+
paddingHorizontal: 4
|
|
178
|
+
},
|
|
179
|
+
durationText: {
|
|
180
|
+
fontSize: 11,
|
|
181
|
+
fontWeight: '600'
|
|
182
|
+
},
|
|
183
|
+
iconOverlay: {
|
|
184
|
+
width: 48,
|
|
185
|
+
height: 48,
|
|
186
|
+
borderRadius: 4
|
|
187
|
+
},
|
|
188
|
+
videoIcon: {
|
|
189
|
+
position: 'absolute',
|
|
190
|
+
top: 2,
|
|
191
|
+
right: 2,
|
|
192
|
+
backgroundColor: 'rgba(0, 0, 0, 0.6)',
|
|
193
|
+
borderRadius: 8,
|
|
194
|
+
width: 20,
|
|
195
|
+
height: 20
|
|
196
|
+
},
|
|
197
|
+
typeIcon: {
|
|
198
|
+
position: 'absolute',
|
|
199
|
+
bottom: 2,
|
|
200
|
+
right: 2,
|
|
201
|
+
backgroundColor: 'rgba(0, 0, 0, 0.7)',
|
|
202
|
+
borderRadius: 6,
|
|
203
|
+
width: 16,
|
|
204
|
+
height: 16
|
|
205
|
+
},
|
|
206
|
+
videoBg: {
|
|
207
|
+
width: 48,
|
|
208
|
+
height: 48,
|
|
209
|
+
borderRadius: 4
|
|
210
|
+
},
|
|
211
|
+
videoThumbnail: {
|
|
212
|
+
backgroundColor: KColors.black
|
|
213
|
+
},
|
|
214
|
+
progressOverlay: {
|
|
215
|
+
position: 'absolute',
|
|
216
|
+
top: 0,
|
|
217
|
+
left: 0,
|
|
218
|
+
right: 0,
|
|
219
|
+
bottom: 0,
|
|
220
|
+
backgroundColor: 'rgba(0, 0, 0, 0.6)'
|
|
221
|
+
},
|
|
222
|
+
errorOverlay: {
|
|
223
|
+
position: 'absolute',
|
|
224
|
+
top: 0,
|
|
225
|
+
left: 0,
|
|
226
|
+
right: 0,
|
|
227
|
+
bottom: 0,
|
|
228
|
+
backgroundColor: 'rgba(255, 59, 48, 0.8)'
|
|
229
|
+
},
|
|
230
|
+
removeButton: {
|
|
231
|
+
position: 'absolute',
|
|
232
|
+
top: -8,
|
|
233
|
+
right: 2,
|
|
234
|
+
width: 22,
|
|
235
|
+
height: 22,
|
|
236
|
+
shadowColor: '#000',
|
|
237
|
+
shadowOffset: {
|
|
238
|
+
width: 0,
|
|
239
|
+
height: 1
|
|
240
|
+
},
|
|
241
|
+
shadowOpacity: 0.2,
|
|
242
|
+
shadowRadius: 2,
|
|
243
|
+
elevation: 3
|
|
244
|
+
},
|
|
245
|
+
sendButton: {
|
|
246
|
+
width: 48,
|
|
247
|
+
height: 48
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
//# sourceMappingURL=AttachmentPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","ScrollView","StyleSheet","KContainer","KImage","KColors","KLabel","jsx","_jsx","jsxs","_jsxs","formatDuration","seconds","mins","Math","floor","secs","toString","padStart","getAttachmentIcon","type","AttachmentPreview","visible","attachments","onRemove","length","View","paddingH","brW","brC","palette","gray","w100","background","white","style","styles","container","children","row","alignItems","minH","flex","horizontal","showsHorizontalScrollIndicator","scrollEventThrottle","contentContainerStyle","map","item","index","metadata","uploadProgress","error","isUploading","thumbnailUrl","isImage","isVideo","hasPreview","thumbnail","center","Base","uri","width","height","resizeMode","videoBg","videoThumbnail","path","iconOverlay","VectorIcons","name","provider","size","color","primary","w400","duration","durationBadge","Text","typo","durationText","typeIcon","errorOverlay","progressOverlay","Touchable","removeButton","br","black","onPress","disabled","hitSlop","top","bottom","left","right","displayName","create","position","borderRadius","overflow","marginRight","backgroundColor","w50","paddingVertical","paddingHorizontal","fontSize","fontWeight","videoIcon","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","sendButton"],"sourceRoot":"../../../src","sources":["components/AttachmentPreview.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/MediaViewer/index.tsx"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useImperativeHandle } from 'react';
|
|
4
|
+
import { Modal, StyleSheet } from 'react-native';
|
|
5
|
+
import MediaViewerScreen from "../screens/MediaView/index.js";
|
|
6
|
+
import { useMediaViewer } from "../hooks/useMediaViewer.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const MediaViewerModal = /*#__PURE__*/forwardRef(({
|
|
9
|
+
onDismiss
|
|
10
|
+
}, ref) => {
|
|
11
|
+
const {
|
|
12
|
+
visible,
|
|
13
|
+
mediaList,
|
|
14
|
+
initIndex,
|
|
15
|
+
show,
|
|
16
|
+
hide
|
|
17
|
+
} = useMediaViewer();
|
|
18
|
+
|
|
19
|
+
// Expose show method to parent via ref
|
|
20
|
+
useImperativeHandle(ref, () => ({
|
|
21
|
+
show
|
|
22
|
+
}), [show]);
|
|
23
|
+
const handleDismiss = () => {
|
|
24
|
+
hide();
|
|
25
|
+
onDismiss?.();
|
|
26
|
+
};
|
|
27
|
+
if (!visible || mediaList.length === 0) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const images = mediaList.map(item => ({
|
|
31
|
+
url: item.url,
|
|
32
|
+
isVideo: item.isVideo || false
|
|
33
|
+
}));
|
|
34
|
+
return /*#__PURE__*/_jsx(Modal, {
|
|
35
|
+
visible: visible,
|
|
36
|
+
transparent: false,
|
|
37
|
+
statusBarTranslucent: true,
|
|
38
|
+
style: styles.modal,
|
|
39
|
+
presentationStyle: "overFullScreen",
|
|
40
|
+
animationType: "fade",
|
|
41
|
+
onRequestClose: handleDismiss,
|
|
42
|
+
children: /*#__PURE__*/_jsx(MediaViewerScreen, {
|
|
43
|
+
images: images,
|
|
44
|
+
initIndex: initIndex,
|
|
45
|
+
pagination: images.length > 1,
|
|
46
|
+
onDismiss: handleDismiss,
|
|
47
|
+
download: true
|
|
48
|
+
})
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
MediaViewerModal.displayName = 'MediaViewerModal';
|
|
52
|
+
const styles = StyleSheet.create({
|
|
53
|
+
modal: {
|
|
54
|
+
flex: 1
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=MediaViewerModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useImperativeHandle","Modal","StyleSheet","MediaViewerScreen","useMediaViewer","jsx","_jsx","MediaViewerModal","onDismiss","ref","visible","mediaList","initIndex","show","hide","handleDismiss","length","images","map","item","url","isVideo","transparent","statusBarTranslucent","style","styles","modal","presentationStyle","animationType","onRequestClose","children","pagination","download","displayName","create","flex"],"sourceRoot":"../../../src","sources":["components/MediaViewerModal.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,mBAAmB,QAAQ,OAAO;AACvD,SAASC,KAAK,EAAEC,UAAU,QAAQ,cAAc;AAChD,OAAOC,iBAAiB,MAAM,+BAAsB;AACpD,SAASC,cAAc,QAAwB,4BAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUzE,OAAO,MAAMC,gBAAgB,gBAAGR,UAAU,CAGxC,CAAC;EAAES;AAAU,CAAC,EAAEC,GAAG,KAAK;EACxB,MAAM;IAAEC,OAAO;IAAEC,SAAS;IAAEC,SAAS;IAAEC,IAAI;IAAEC;EAAK,CAAC,GAAGV,cAAc,CAAC,CAAC;;EAEtE;EACAJ,mBAAmB,CACjBS,GAAG,EACH,OAAO;IACLI;EACF,CAAC,CAAC,EACF,CAACA,IAAI,CACP,CAAC;EAED,MAAME,aAAa,GAAGA,CAAA,KAAM;IAC1BD,IAAI,CAAC,CAAC;IACNN,SAAS,GAAG,CAAC;EACf,CAAC;EAED,IAAI,CAACE,OAAO,IAAIC,SAAS,CAACK,MAAM,KAAK,CAAC,EAAE;IACtC,OAAO,IAAI;EACb;EAEA,MAAMC,MAAM,GAAGN,SAAS,CAACO,GAAG,CAAEC,IAAI,KAAM;IACtCC,GAAG,EAAED,IAAI,CAACC,GAAG;IACbC,OAAO,EAAEF,IAAI,CAACE,OAAO,IAAI;EAC3B,CAAC,CAAC,CAAC;EAEH,oBACEf,IAAA,CAACL,KAAK;IACJS,OAAO,EAAEA,OAAQ;IACjBY,WAAW,EAAE,KAAM;IACnBC,oBAAoB,EAAE,IAAK;IAC3BC,KAAK,EAAEC,MAAM,CAACC,KAAM;IACpBC,iBAAiB,EAAC,gBAAgB;IAClCC,aAAa,EAAC,MAAM;IACpBC,cAAc,EAAEd,aAAc;IAAAe,QAAA,eAE9BxB,IAAA,CAACH,iBAAiB;MAChBc,MAAM,EAAEA,MAAO;MACfL,SAAS,EAAEA,SAAU;MACrBmB,UAAU,EAAEd,MAAM,CAACD,MAAM,GAAG,CAAE;MAC9BR,SAAS,EAAEO,aAAc;MACzBiB,QAAQ;IAAA,CACT;EAAC,CACG,CAAC;AAEZ,CAAC,CAAC;AAEFzB,gBAAgB,CAAC0B,WAAW,GAAG,kBAAkB;AAEjD,MAAMR,MAAM,GAAGvB,UAAU,CAACgC,MAAM,CAAC;EAC/BR,KAAK,EAAE;IACLS,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useMemo, useState, useCallback } from 'react';
|
|
4
|
+
import { StyleSheet, useWindowDimensions } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
|
|
6
|
+
import ChatImageDimens from "../utils/chatImageDimens.js";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
/**
|
|
9
|
+
* Generic image grid for merged messages
|
|
10
|
+
* Layout: 1 image (1x1), 2 images (1x2), 3 images (1x3), 4+ images (2x2)
|
|
11
|
+
* Shows "+N more" overlay on last cell if images exceed limit
|
|
12
|
+
*/
|
|
13
|
+
export const MergedImageGrid = /*#__PURE__*/memo(({
|
|
14
|
+
images,
|
|
15
|
+
maxDisplay = 4,
|
|
16
|
+
onMediaPress
|
|
17
|
+
}) => {
|
|
18
|
+
const windowWidth = useWindowDimensions().width;
|
|
19
|
+
const [loadingState, setLoadingState] = useState({});
|
|
20
|
+
const displayedImages = useMemo(() => images.slice(0, maxDisplay), [images, maxDisplay]);
|
|
21
|
+
const hiddenCount = Math.max(0, images.length - maxDisplay);
|
|
22
|
+
|
|
23
|
+
// Calculate single image dimensions respecting aspect ratio and 80% width limit
|
|
24
|
+
const singleImageSize = useMemo(() => {
|
|
25
|
+
if (displayedImages.length !== 1) return null;
|
|
26
|
+
const image = displayedImages[0];
|
|
27
|
+
const pictureElem = image?.pictureElem;
|
|
28
|
+
const imgWidth = pictureElem?.width || pictureElem?.bigPicture?.width || 0;
|
|
29
|
+
const imgHeight = pictureElem?.height || pictureElem?.bigPicture?.height || 0;
|
|
30
|
+
const maxWidth = Math.floor(windowWidth * 0.8);
|
|
31
|
+
const aspectRatio = imgWidth && imgHeight ? imgWidth / imgHeight : 1;
|
|
32
|
+
|
|
33
|
+
// Calculate dimensions respecting aspect ratio and max width
|
|
34
|
+
let finalWidth = maxWidth;
|
|
35
|
+
let finalHeight = maxWidth / aspectRatio;
|
|
36
|
+
|
|
37
|
+
// If height exceeds reasonable limit, scale down
|
|
38
|
+
const maxHeight = 400;
|
|
39
|
+
if (finalHeight > maxHeight) {
|
|
40
|
+
finalHeight = maxHeight;
|
|
41
|
+
finalWidth = finalHeight * aspectRatio;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
width: Math.round(finalWidth),
|
|
45
|
+
height: Math.round(finalHeight)
|
|
46
|
+
};
|
|
47
|
+
}, [displayedImages, windowWidth]);
|
|
48
|
+
const mediaItems = useMemo(() => images.map(image => {
|
|
49
|
+
const pictureElem = image.pictureElem;
|
|
50
|
+
const imageUrl = pictureElem?.snapshotPicture?.url || pictureElem?.bigPicture?.url || pictureElem?.sourcePicture?.url;
|
|
51
|
+
return {
|
|
52
|
+
url: imageUrl
|
|
53
|
+
};
|
|
54
|
+
}).filter(item => Boolean(item.url)), [images]);
|
|
55
|
+
const handleImageLoadEnd = useCallback(index => {
|
|
56
|
+
setLoadingState(prev => ({
|
|
57
|
+
...prev,
|
|
58
|
+
[index]: false
|
|
59
|
+
}));
|
|
60
|
+
}, []);
|
|
61
|
+
const handleImagePress = useCallback(index => {
|
|
62
|
+
onMediaPress?.(mediaItems, index);
|
|
63
|
+
}, [onMediaPress, mediaItems]);
|
|
64
|
+
const initializeLoading = useMemo(() => {
|
|
65
|
+
const initial = {};
|
|
66
|
+
displayedImages.forEach((_, index) => {
|
|
67
|
+
initial[index] = true;
|
|
68
|
+
});
|
|
69
|
+
return initial;
|
|
70
|
+
}, [displayedImages]);
|
|
71
|
+
useMemo(() => {
|
|
72
|
+
setLoadingState(initializeLoading);
|
|
73
|
+
}, [initializeLoading]);
|
|
74
|
+
if (displayedImages.length === 0) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Calculate columns based on image count
|
|
79
|
+
let columns = 1;
|
|
80
|
+
if (displayedImages.length === 2) {
|
|
81
|
+
columns = 2; // 2 images: horizontal layout (1x2)
|
|
82
|
+
} else if (displayedImages.length === 3) {
|
|
83
|
+
columns = 3; // 3 images: horizontal layout (1x3)
|
|
84
|
+
} else if (displayedImages.length >= 4) {
|
|
85
|
+
columns = 2; // 4+ images: grid layout (2x2)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Use calculated aspect ratio for single image, 100x100 for multiple images
|
|
89
|
+
const cellSize = displayedImages.length === 1 && singleImageSize ? singleImageSize.width : 100;
|
|
90
|
+
const cellHeight = displayedImages.length === 1 && singleImageSize ? singleImageSize.height : cellSize;
|
|
91
|
+
const gap = 4;
|
|
92
|
+
const totalWidth = cellSize * columns + gap * (columns - 1);
|
|
93
|
+
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
94
|
+
style: [styles.grid, {
|
|
95
|
+
width: totalWidth
|
|
96
|
+
}],
|
|
97
|
+
children: displayedImages.map((image, index) => {
|
|
98
|
+
const pictureElem = image.pictureElem;
|
|
99
|
+
const imageUrl = pictureElem?.snapshotPicture?.url || pictureElem?.bigPicture?.url || pictureElem?.sourcePicture?.url;
|
|
100
|
+
if (!imageUrl) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Use dynamic optimization based on calculated dimensions
|
|
105
|
+
const optimizedUrl = ChatImageDimens.getOptimizedImageUrlWithDimensions(imageUrl, cellSize, cellHeight);
|
|
106
|
+
const isLastCell = index === displayedImages.length - 1;
|
|
107
|
+
const showHiddenCount = isLastCell && hiddenCount > 0;
|
|
108
|
+
const isImageLoading = loadingState[index] ?? true;
|
|
109
|
+
return /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
110
|
+
onPress: () => handleImagePress(index),
|
|
111
|
+
style: [styles.imageCell, {
|
|
112
|
+
width: cellSize,
|
|
113
|
+
height: cellHeight
|
|
114
|
+
}],
|
|
115
|
+
children: [/*#__PURE__*/_jsx(KImage.Base, {
|
|
116
|
+
uri: optimizedUrl,
|
|
117
|
+
width: cellSize,
|
|
118
|
+
height: cellHeight,
|
|
119
|
+
style: styles.image,
|
|
120
|
+
onLoadEnd: () => handleImageLoadEnd(index)
|
|
121
|
+
}), isImageLoading && /*#__PURE__*/_jsx(KContainer.View, {
|
|
122
|
+
style: styles.skeleton
|
|
123
|
+
}), showHiddenCount && /*#__PURE__*/_jsx(KContainer.View, {
|
|
124
|
+
style: styles.hiddenOverlay,
|
|
125
|
+
center: true,
|
|
126
|
+
children: /*#__PURE__*/_jsxs(KLabel.Text, {
|
|
127
|
+
typo: "TextMdBold",
|
|
128
|
+
color: KColors.white,
|
|
129
|
+
children: ["+", hiddenCount]
|
|
130
|
+
})
|
|
131
|
+
})]
|
|
132
|
+
}, `merged-image-${index}`);
|
|
133
|
+
})
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
MergedImageGrid.displayName = 'MergedImageGrid';
|
|
137
|
+
const styles = StyleSheet.create({
|
|
138
|
+
grid: {
|
|
139
|
+
flexDirection: 'row',
|
|
140
|
+
flexWrap: 'wrap',
|
|
141
|
+
gap: 4,
|
|
142
|
+
justifyContent: 'flex-start',
|
|
143
|
+
alignItems: 'flex-start'
|
|
144
|
+
},
|
|
145
|
+
imageCell: {
|
|
146
|
+
position: 'relative',
|
|
147
|
+
overflow: 'hidden',
|
|
148
|
+
borderRadius: 8,
|
|
149
|
+
backgroundColor: '#f0f0f0'
|
|
150
|
+
},
|
|
151
|
+
image: {
|
|
152
|
+
width: '100%',
|
|
153
|
+
height: '100%'
|
|
154
|
+
},
|
|
155
|
+
skeleton: {
|
|
156
|
+
position: 'absolute',
|
|
157
|
+
top: 0,
|
|
158
|
+
left: 0,
|
|
159
|
+
right: 0,
|
|
160
|
+
bottom: 0,
|
|
161
|
+
backgroundColor: '#f0f0f0',
|
|
162
|
+
borderRadius: 8
|
|
163
|
+
},
|
|
164
|
+
hiddenOverlay: {
|
|
165
|
+
position: 'absolute',
|
|
166
|
+
top: 0,
|
|
167
|
+
left: 0,
|
|
168
|
+
right: 0,
|
|
169
|
+
bottom: 0,
|
|
170
|
+
backgroundColor: 'rgba(0, 0, 0, 0.5)'
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
//# sourceMappingURL=MergedImageGrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useMemo","useState","useCallback","StyleSheet","useWindowDimensions","KContainer","KImage","KLabel","KColors","ChatImageDimens","jsx","_jsx","jsxs","_jsxs","MergedImageGrid","images","maxDisplay","onMediaPress","windowWidth","width","loadingState","setLoadingState","displayedImages","slice","hiddenCount","Math","max","length","singleImageSize","image","pictureElem","imgWidth","bigPicture","imgHeight","height","maxWidth","floor","aspectRatio","finalWidth","finalHeight","maxHeight","round","mediaItems","map","imageUrl","snapshotPicture","url","sourcePicture","filter","item","Boolean","handleImageLoadEnd","index","prev","handleImagePress","initializeLoading","initial","forEach","_","columns","cellSize","cellHeight","gap","totalWidth","View","style","styles","grid","children","optimizedUrl","getOptimizedImageUrlWithDimensions","isLastCell","showHiddenCount","isImageLoading","Touchable","onPress","imageCell","Base","uri","onLoadEnd","skeleton","hiddenOverlay","center","Text","typo","color","white","displayName","create","flexDirection","flexWrap","justifyContent","alignItems","position","overflow","borderRadius","backgroundColor","top","left","right","bottom"],"sourceRoot":"../../../src","sources":["components/MergedImageGrid.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AAC5D,SAASC,UAAU,EAAEC,mBAAmB,QAAQ,cAAc;AAC9D,SAASC,UAAU,EAAEC,MAAM,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AACnE,OAAOC,eAAe,MAAM,6BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAWvD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,gBAAGf,IAAI,CACjC,CAAC;EAAEgB,MAAM;EAAEC,UAAU,GAAG,CAAC;EAAEC;AAAmC,CAAC,KAAK;EAClE,MAAMC,WAAW,GAAGd,mBAAmB,CAAC,CAAC,CAACe,KAAK;EAC/C,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGpB,QAAQ,CAC9C,CAAC,CACH,CAAC;EAED,MAAMqB,eAAe,GAAGtB,OAAO,CAC7B,MAAMe,MAAM,CAACQ,KAAK,CAAC,CAAC,EAAEP,UAAU,CAAC,EACjC,CAACD,MAAM,EAAEC,UAAU,CACrB,CAAC;EACD,MAAMQ,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEX,MAAM,CAACY,MAAM,GAAGX,UAAU,CAAC;;EAE3D;EACA,MAAMY,eAAe,GAAG5B,OAAO,CAAC,MAAM;IACpC,IAAIsB,eAAe,CAACK,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;IAE7C,MAAME,KAAK,GAAGP,eAAe,CAAC,CAAC,CAAC;IAChC,MAAMQ,WAAW,GAAGD,KAAK,EAAEC,WAAW;IACtC,MAAMC,QAAQ,GACZD,WAAW,EAAEX,KAAK,IAAIW,WAAW,EAAEE,UAAU,EAAEb,KAAK,IAAI,CAAC;IAC3D,MAAMc,SAAS,GACbH,WAAW,EAAEI,MAAM,IAAIJ,WAAW,EAAEE,UAAU,EAAEE,MAAM,IAAI,CAAC;IAE7D,MAAMC,QAAQ,GAAGV,IAAI,CAACW,KAAK,CAAClB,WAAW,GAAG,GAAG,CAAC;IAC9C,MAAMmB,WAAW,GAAGN,QAAQ,IAAIE,SAAS,GAAGF,QAAQ,GAAGE,SAAS,GAAG,CAAC;;IAEpE;IACA,IAAIK,UAAU,GAAGH,QAAQ;IACzB,IAAII,WAAW,GAAGJ,QAAQ,GAAGE,WAAW;;IAExC;IACA,MAAMG,SAAS,GAAG,GAAG;IACrB,IAAID,WAAW,GAAGC,SAAS,EAAE;MAC3BD,WAAW,GAAGC,SAAS;MACvBF,UAAU,GAAGC,WAAW,GAAGF,WAAW;IACxC;IAEA,OAAO;MACLlB,KAAK,EAAEM,IAAI,CAACgB,KAAK,CAACH,UAAU,CAAC;MAC7BJ,MAAM,EAAET,IAAI,CAACgB,KAAK,CAACF,WAAW;IAChC,CAAC;EACH,CAAC,EAAE,CAACjB,eAAe,EAAEJ,WAAW,CAAC,CAAC;EAElC,MAAMwB,UAAU,GAAG1C,OAAO,CACxB,MACEe,MAAM,CACH4B,GAAG,CAAEd,KAAK,IAAK;IACd,MAAMC,WAAW,GAAGD,KAAK,CAACC,WAAW;IACrC,MAAMc,QAAQ,GACZd,WAAW,EAAEe,eAAe,EAAEC,GAAG,IACjChB,WAAW,EAAEE,UAAU,EAAEc,GAAG,IAC5BhB,WAAW,EAAEiB,aAAa,EAAED,GAAG;IACjC,OAAO;MAAEA,GAAG,EAAEF;IAAS,CAAC;EAC1B,CAAC,CAAC,CACDI,MAAM,CAAEC,IAAI,IAAwBC,OAAO,CAACD,IAAI,CAACH,GAAG,CAAC,CAAC,EAC3D,CAAC/B,MAAM,CACT,CAAC;EAED,MAAMoC,kBAAkB,GAAGjD,WAAW,CAAEkD,KAAa,IAAK;IACxD/B,eAAe,CAAEgC,IAAI,KAAM;MACzB,GAAGA,IAAI;MACP,CAACD,KAAK,GAAG;IACX,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,gBAAgB,GAAGpD,WAAW,CACjCkD,KAAa,IAAK;IACjBnC,YAAY,GAAGyB,UAAU,EAAEU,KAAK,CAAC;EACnC,CAAC,EACD,CAACnC,YAAY,EAAEyB,UAAU,CAC3B,CAAC;EAED,MAAMa,iBAAiB,GAAGvD,OAAO,CAAC,MAAM;IACtC,MAAMwD,OAAgC,GAAG,CAAC,CAAC;IAC3ClC,eAAe,CAACmC,OAAO,CAAC,CAACC,CAAC,EAAEN,KAAK,KAAK;MACpCI,OAAO,CAACJ,KAAK,CAAC,GAAG,IAAI;IACvB,CAAC,CAAC;IACF,OAAOI,OAAO;EAChB,CAAC,EAAE,CAAClC,eAAe,CAAC,CAAC;EAErBtB,OAAO,CAAC,MAAM;IACZqB,eAAe,CAACkC,iBAAiB,CAAC;EACpC,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,IAAIjC,eAAe,CAACK,MAAM,KAAK,CAAC,EAAE;IAChC,OAAO,IAAI;EACb;;EAEA;EACA,IAAIgC,OAAO,GAAG,CAAC;EACf,IAAIrC,eAAe,CAACK,MAAM,KAAK,CAAC,EAAE;IAChCgC,OAAO,GAAG,CAAC,CAAC,CAAC;EACf,CAAC,MAAM,IAAIrC,eAAe,CAACK,MAAM,KAAK,CAAC,EAAE;IACvCgC,OAAO,GAAG,CAAC,CAAC,CAAC;EACf,CAAC,MAAM,IAAIrC,eAAe,CAACK,MAAM,IAAI,CAAC,EAAE;IACtCgC,OAAO,GAAG,CAAC,CAAC,CAAC;EACf;;EAEA;EACA,MAAMC,QAAQ,GACZtC,eAAe,CAACK,MAAM,KAAK,CAAC,IAAIC,eAAe,GAC3CA,eAAe,CAACT,KAAK,GACrB,GAAG;EACT,MAAM0C,UAAU,GACdvC,eAAe,CAACK,MAAM,KAAK,CAAC,IAAIC,eAAe,GAC3CA,eAAe,CAACM,MAAM,GACtB0B,QAAQ;EACd,MAAME,GAAG,GAAG,CAAC;EACb,MAAMC,UAAU,GAAGH,QAAQ,GAAGD,OAAO,GAAGG,GAAG,IAAIH,OAAO,GAAG,CAAC,CAAC;EAE3D,oBACEhD,IAAA,CAACN,UAAU,CAAC2D,IAAI;IACdC,KAAK,EAAE,CACLC,MAAM,CAACC,IAAI,EACX;MACEhD,KAAK,EAAE4C;IACT,CAAC,CACD;IAAAK,QAAA,EAED9C,eAAe,CAACqB,GAAG,CAAC,CAACd,KAAK,EAAEuB,KAAK,KAAK;MACrC,MAAMtB,WAAW,GAAGD,KAAK,CAACC,WAAW;MACrC,MAAMc,QAAQ,GACZd,WAAW,EAAEe,eAAe,EAAEC,GAAG,IACjChB,WAAW,EAAEE,UAAU,EAAEc,GAAG,IAC5BhB,WAAW,EAAEiB,aAAa,EAAED,GAAG;MAEjC,IAAI,CAACF,QAAQ,EAAE;QACb,OAAO,IAAI;MACb;;MAEA;MACA,MAAMyB,YAAY,GAChB5D,eAAe,CAAC6D,kCAAkC,CAChD1B,QAAQ,EACRgB,QAAQ,EACRC,UACF,CAAC;MAEH,MAAMU,UAAU,GAAGnB,KAAK,KAAK9B,eAAe,CAACK,MAAM,GAAG,CAAC;MACvD,MAAM6C,eAAe,GAAGD,UAAU,IAAI/C,WAAW,GAAG,CAAC;MACrD,MAAMiD,cAAc,GAAGrD,YAAY,CAACgC,KAAK,CAAC,IAAI,IAAI;MAElD,oBACEvC,KAAA,CAACR,UAAU,CAACqE,SAAS;QAEnBC,OAAO,EAAEA,CAAA,KAAMrB,gBAAgB,CAACF,KAAK,CAAE;QACvCa,KAAK,EAAE,CACLC,MAAM,CAACU,SAAS,EAChB;UACEzD,KAAK,EAAEyC,QAAQ;UACf1B,MAAM,EAAE2B;QACV,CAAC,CACD;QAAAO,QAAA,gBAEFzD,IAAA,CAACL,MAAM,CAACuE,IAAI;UACVC,GAAG,EAAET,YAAa;UAClBlD,KAAK,EAAEyC,QAAS;UAChB1B,MAAM,EAAE2B,UAAW;UACnBI,KAAK,EAAEC,MAAM,CAACrC,KAAM;UACpBkD,SAAS,EAAEA,CAAA,KAAM5B,kBAAkB,CAACC,KAAK;QAAE,CAC5C,CAAC,EAEDqB,cAAc,iBAAI9D,IAAA,CAACN,UAAU,CAAC2D,IAAI;UAACC,KAAK,EAAEC,MAAM,CAACc;QAAS,CAAE,CAAC,EAG7DR,eAAe,iBACd7D,IAAA,CAACN,UAAU,CAAC2D,IAAI;UAACC,KAAK,EAAEC,MAAM,CAACe,aAAc;UAACC,MAAM;UAAAd,QAAA,eAClDvD,KAAA,CAACN,MAAM,CAAC4E,IAAI;YAACC,IAAI,EAAC,YAAY;YAACC,KAAK,EAAE7E,OAAO,CAAC8E,KAAM;YAAAlB,QAAA,GAAC,GAClD,EAAC5C,WAAW;UAAA,CACF;QAAC,CACC,CAClB;MAAA,GA3BI,gBAAgB4B,KAAK,EA4BN,CAAC;IAE3B,CAAC;EAAC,CACa,CAAC;AAEtB,CACF,CAAC;AAEDtC,eAAe,CAACyE,WAAW,GAAG,iBAAiB;AAE/C,MAAMrB,MAAM,GAAG/D,UAAU,CAACqF,MAAM,CAAC;EAC/BrB,IAAI,EAAE;IACJsB,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,MAAM;IAChB5B,GAAG,EAAE,CAAC;IACN6B,cAAc,EAAE,YAAY;IAC5BC,UAAU,EAAE;EACd,CAAC;EACDhB,SAAS,EAAE;IACTiB,QAAQ,EAAE,UAAU;IACpBC,QAAQ,EAAE,QAAQ;IAClBC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE;EACnB,CAAC;EACDnE,KAAK,EAAE;IACLV,KAAK,EAAE,MAAM;IACbe,MAAM,EAAE;EACV,CAAC;EACD8C,QAAQ,EAAE;IACRa,QAAQ,EAAE,UAAU;IACpBI,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTJ,eAAe,EAAE,SAAS;IAC1BD,YAAY,EAAE;EAChB,CAAC;EACDd,aAAa,EAAE;IACbY,QAAQ,EAAE,UAAU;IACpBI,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTJ,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import { memo } from 'react';
|
|
4
4
|
import { Avatar } from "../Avatar/index.js";
|
|
5
|
-
import {
|
|
5
|
+
import { PeerType } from '@droppii/openim-rn-client-sdk';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
export const AvatarSection = /*#__PURE__*/memo(({
|
|
8
8
|
avatar,
|
|
9
9
|
fullName,
|
|
10
|
-
|
|
10
|
+
peerType,
|
|
11
11
|
applicationType
|
|
12
12
|
}) => {
|
|
13
|
-
if (
|
|
13
|
+
if (peerType === PeerType.Bot) {
|
|
14
14
|
return /*#__PURE__*/_jsx(Avatar, {
|
|
15
15
|
source: avatar,
|
|
16
16
|
fullName: fullName,
|
|
@@ -19,7 +19,7 @@ export const AvatarSection = /*#__PURE__*/memo(({
|
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
-
if (applicationType === 'MALL') {
|
|
22
|
+
if (peerType === PeerType.Customer || applicationType === 'MALL') {
|
|
23
23
|
return /*#__PURE__*/_jsx(Avatar, {
|
|
24
24
|
source: avatar,
|
|
25
25
|
fullName: fullName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","Avatar","
|
|
1
|
+
{"version":3,"names":["memo","Avatar","PeerType","jsx","_jsx","AvatarSection","avatar","fullName","peerType","applicationType","Bot","source","badge","variant","Customer","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/AvatarSection.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,MAAM,QAAQ,oBAAW;AAElC,SAASC,QAAQ,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASzD,OAAO,MAAMC,aAAa,gBAAGL,IAAI,CAC/B,CAAC;EAAEM,MAAM;EAAEC,QAAQ;EAAEC,QAAQ;EAAEC;AAAoC,CAAC,KAAK;EACvE,IAAID,QAAQ,KAAKN,QAAQ,CAACQ,GAAG,EAAE;IAC7B,oBACEN,IAAA,CAACH,MAAM;MACLU,MAAM,EAAEL,MAAO;MACfC,QAAQ,EAAEA,QAAS;MACnBK,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAM;IAAE,CAC3B,CAAC;EAEN;EAEA,IAAIL,QAAQ,KAAKN,QAAQ,CAACY,QAAQ,IAAIL,eAAe,KAAK,MAAM,EAAE;IAChE,oBACEL,IAAA,CAACH,MAAM;MACLU,MAAM,EAAEL,MAAO;MACfC,QAAQ,EAAEA,QAAS;MACnBK,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAO;IAAE,CAC5B,CAAC;EAEN;EAEA,oBAAOT,IAAA,CAACH,MAAM;IAACU,MAAM,EAAEL,MAAO;IAACC,QAAQ,EAAEA;EAAS,CAAE,CAAC;AACvD,CACF,CAAC;AAEDF,aAAa,CAACU,WAAW,GAAG,eAAe","ignoreList":[]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import { memo } from 'react';
|
|
4
4
|
import { Image, StyleSheet } from 'react-native';
|
|
5
5
|
import { KContainer, KImage, KColors } from '@droppii/libs';
|
|
6
|
-
import { DChatCategory, DChatType } from "../../types/chat.js";
|
|
7
6
|
import Images from "../../assets/images/index.js";
|
|
7
|
+
import { PeerType } from '@droppii/openim-rn-client-sdk';
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
const styles = StyleSheet.create({
|
|
10
10
|
icon: {
|
|
@@ -13,10 +13,9 @@ const styles = StyleSheet.create({
|
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
15
|
export const NamePrefixIcon = /*#__PURE__*/memo(({
|
|
16
|
-
|
|
17
|
-
chatType
|
|
16
|
+
peerType
|
|
18
17
|
}) => {
|
|
19
|
-
if (
|
|
18
|
+
if (peerType === PeerType.Bot) {
|
|
20
19
|
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
21
20
|
marginR: "0.25rem",
|
|
22
21
|
children: /*#__PURE__*/_jsx(Image, {
|
|
@@ -25,18 +24,7 @@ export const NamePrefixIcon = /*#__PURE__*/memo(({
|
|
|
25
24
|
})
|
|
26
25
|
});
|
|
27
26
|
}
|
|
28
|
-
if (
|
|
29
|
-
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
30
|
-
marginR: "0.25rem",
|
|
31
|
-
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
32
|
-
name: "robot-outline",
|
|
33
|
-
provider: "MaterialCommunityIcons",
|
|
34
|
-
size: 14,
|
|
35
|
-
color: KColors.palette.primary.w400
|
|
36
|
-
})
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
if (chatType === DChatType.GROUP) {
|
|
27
|
+
if (peerType === PeerType.Group) {
|
|
40
28
|
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
41
29
|
marginR: "0.25rem",
|
|
42
30
|
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
@@ -46,6 +34,15 @@ export const NamePrefixIcon = /*#__PURE__*/memo(({
|
|
|
46
34
|
})
|
|
47
35
|
});
|
|
48
36
|
}
|
|
37
|
+
|
|
38
|
+
// if (peerType === DChatPeerType.CUSTOMER) {
|
|
39
|
+
// return (
|
|
40
|
+
// <KContainer.View marginR="0.25rem">
|
|
41
|
+
// <Image source={Images.ICON_DROPPII} style={styles.icon} />
|
|
42
|
+
// </KContainer.View>
|
|
43
|
+
// );
|
|
44
|
+
// }
|
|
45
|
+
|
|
49
46
|
return null;
|
|
50
47
|
});
|
|
51
48
|
NamePrefixIcon.displayName = 'NamePrefixIcon';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","Image","StyleSheet","KContainer","KImage","KColors","
|
|
1
|
+
{"version":3,"names":["memo","Image","StyleSheet","KContainer","KImage","KColors","Images","PeerType","jsx","_jsx","styles","create","icon","width","height","NamePrefixIcon","peerType","Bot","View","marginR","children","source","ICON_DROPPII","style","Group","VectorIcons","name","size","color","black","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/NamePrefixIcon.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,KAAK,EAAEC,UAAU,QAAQ,cAAc;AAChD,SAASC,UAAU,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AAC3D,OAAOC,MAAM,MAAM,8BAAqB;AACxC,SAASC,QAAQ,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzD,MAAMC,MAAM,GAAGR,UAAU,CAACS,MAAM,CAAC;EAC/BC,IAAI,EAAE;IACJC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAMF,OAAO,MAAMC,cAAc,gBAAGf,IAAI,CAAC,CAAC;EAAEgB;AAA8B,CAAC,KAAK;EACxE,IAAIA,QAAQ,KAAKT,QAAQ,CAACU,GAAG,EAAE;IAC7B,oBACER,IAAA,CAACN,UAAU,CAACe,IAAI;MAACC,OAAO,EAAC,SAAS;MAAAC,QAAA,eAChCX,IAAA,CAACR,KAAK;QAACoB,MAAM,EAAEf,MAAM,CAACgB,YAAa;QAACC,KAAK,EAAEb,MAAM,CAACE;MAAK,CAAE;IAAC,CAC3C,CAAC;EAEtB;EAEA,IAAII,QAAQ,KAAKT,QAAQ,CAACiB,KAAK,EAAE;IAC/B,oBACEf,IAAA,CAACN,UAAU,CAACe,IAAI;MAACC,OAAO,EAAC,SAAS;MAAAC,QAAA,eAChCX,IAAA,CAACL,MAAM,CAACqB,WAAW;QAACC,IAAI,EAAC,YAAY;QAACC,IAAI,EAAE,EAAG;QAACC,KAAK,EAAEvB,OAAO,CAACwB;MAAM,CAAE;IAAC,CACzD,CAAC;EAEtB;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,OAAO,IAAI;AACb,CAAC,CAAC;AAEFd,cAAc,CAACe,WAAW,GAAG,gBAAgB","ignoreList":[]}
|