@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","
|
|
1
|
+
{"version":3,"names":["memo","MessageType","TextMessage","ImageMessage","VideoMessage","FileMessage","LinkMessage","MergedMessage","jsx","_jsx","MERGED_MESSAGE_TYPE","messageComponentMap","AtTextMessage","QuoteMessage","UrlTextMessage","PictureMessage","LegendChatMessage","message","isOutgoing","createdAtTime","onMediaPress","MessageComponent","contentType","mediaTypes","hasMediaPress","includes","props","displayName"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/LegendChatMessage.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAE5B,SAASC,WAAW,QAAQ,+BAA+B;AAG3D,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,aAAa,QAAQ,qDAA4C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS3E;AACA,MAAMC,mBAAmB,GAAG,GAAG,CAAC,CAAC;;AAEjC,MAAMC,mBAAqE,GAAG;EAC5E,CAACV,WAAW,CAACC,WAAW,GAAGA,WAAW;EACtC,CAACD,WAAW,CAACW,aAAa,GAAGV,WAAW;EACxC,CAACD,WAAW,CAACY,YAAY,GAAGX,WAAW;EACvC,CAACD,WAAW,CAACa,cAAc,GAAGR,WAAW;EACzC,CAACL,WAAW,CAACc,cAAc,GAAGZ,YAAY;EAC1C,CAACF,WAAW,CAACG,YAAY,GAAGA,YAAY;EACxC,CAACH,WAAW,CAACI,WAAW,GAAGA,WAAW;EACtC,CAACK,mBAAmB,GAAGH;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMS,iBAAiB,gBAAGhB,IAAI,CACnC,CAAC;EACCiB,OAAO;EACPC,UAAU;EACVC,aAAa;EACbC;AACsB,CAAC,KAAK;EAC5B,MAAMC,gBAAgB,GACpBV,mBAAmB,CAACM,OAAO,EAAEK,WAAW,CAAC,IAAIpB,WAAW;;EAE1D;EACA,MAAMqB,UAAU,GAAG,CACjBtB,WAAW,CAACc,cAAc,EAC1Bd,WAAW,CAACG,YAAY,EACxBM,mBAAmB,CACpB;EACD,MAAMc,aAAa,GACjBD,UAAU,CAACE,QAAQ,CAACR,OAAO,EAAEK,WAAW,CAAC,IAAIF,YAAY;EAE3D,MAAMM,KAAU,GAAG;IACjBT,OAAO;IACPC,UAAU;IACVC;EACF,CAAC;EAED,IAAIK,aAAa,EAAE;IACjBE,KAAK,CAACN,YAAY,GAAGA,YAAY;EACnC;EAEA,oBAAOX,IAAA,CAACY,gBAAgB;IAAA,GAAKK;EAAK,CAAG,CAAC;AACxC,CACF,CAAC;AAEDV,iBAAiB,CAACW,WAAW,GAAG,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Message type components - re-exports from components/messages
|
|
5
|
+
* Stateless message components live in components/messages
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export { formatMessageTime } from "../../../components/messages/types.js";
|
|
9
|
+
export { TextMessage } from "../../../components/messages/textMessage/index.js";
|
|
10
|
+
export { ImageMessage } from "../../../components/messages/imageMessage/index.js";
|
|
11
|
+
export { VideoMessage } from "../../../components/messages/videoMessage/index.js";
|
|
12
|
+
export { FileMessage } from "../../../components/messages/fileMessage/index.js";
|
|
13
|
+
export { MergedMessage } from "../../../components/messages/mergedMessage/index.js";
|
|
14
|
+
export { messageStyles } from "../../../components/messages/styles.js";
|
|
15
|
+
//# sourceMappingURL=messageTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["formatMessageTime","TextMessage","ImageMessage","VideoMessage","FileMessage","MergedMessage","messageStyles"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/messageTypes.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;;AAGA,SAASA,iBAAiB,QAAQ,uCAAoC;AACtE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,aAAa,QAAQ,qDAA4C;AAC1E,SAASC,aAAa,QAAQ,wCAAqC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useCallback","ActivityIndicator","KContainer","KDivider","KLabel","KColors","useConversationList","ThreadCard","useConversationStore","jsx","_jsx","Separator","type","size","keyExtractor","item","MessagesTab","applicationType","onPressThread","data","state","list","isLoading","refetch","isRefetching","page","handleThreadPress","params","renderItem","onPress","LoadingComponent","View","center","flex","paddingV","children","color","palette","primary","w400","EmptyComponent","Text","typo","gray","length","FlatList","ItemSeparatorComponent","ListEmptyComponent","refreshing","onRefresh","showsVerticalScrollIndicator","displayName"],"sourceRoot":"../../../../src","sources":["screens/inbox/MessagesTab.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,QAAQ,OAAO;AACzC,
|
|
1
|
+
{"version":3,"names":["memo","useCallback","ActivityIndicator","KContainer","KDivider","KLabel","KColors","useConversationList","ThreadCard","useConversationStore","jsx","_jsx","Separator","type","size","keyExtractor","item","MessagesTab","applicationType","onPressThread","data","state","list","isLoading","refetch","isRefetching","page","handleThreadPress","params","renderItem","onPress","LoadingComponent","View","center","flex","paddingV","children","color","palette","primary","w400","EmptyComponent","Text","typo","gray","length","FlatList","ItemSeparatorComponent","ListEmptyComponent","refreshing","onRefresh","showsVerticalScrollIndicator","displayName"],"sourceRoot":"../../../../src","sources":["screens/inbox/MessagesTab.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,QAAQ,OAAO;AACzC,SAAqCC,iBAAiB,QAAQ,cAAc;AAC5E,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AACrE,SAASC,mBAAmB,QAAQ,oCAAiC;AACrE,SAASC,UAAU,QAAQ,sCAA6B;AACxD,SAASC,oBAAoB,QAAQ,sBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOnD,MAAMC,SAAS,GAAGA,CAAA,kBAAMD,IAAA,CAACP,QAAQ;EAACS,IAAI,EAAC,MAAM;EAACC,IAAI,EAAC;AAAU,CAAE,CAAC;AAChE,MAAMC,YAAY,GAAIC,IAAY,IAAKA,IAAI;AAE3C,OAAO,MAAMC,WAAW,gBAAGjB,IAAI,CAC7B,CAAC;EAAEkB,eAAe;EAAEC;AAAgC,CAAC,KAAK;EACxD,MAAMC,IAAI,GAAGX,oBAAoB,CAAEY,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC;EAExD,MAAM;IAAEC,SAAS;IAAEC,OAAO;IAAEC;EAAa,CAAC,GAAGlB,mBAAmB,CAAC;IAC/DW,eAAe;IACfQ,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,MAAMC,iBAAiB,GAAG1B,WAAW,CAClC2B,MAAsD,IAAK;IAC1DT,aAAa,GAAGS,MAAM,CAACZ,IAAI,CAAC;EAC9B,CAAC,EACD,CAACG,aAAa,CAChB,CAAC;EAED,MAAMU,UAAU,GAAG5B,WAAW,CAC5B,CAAC;IAAEe;EAAuB,CAAC,kBACzBL,IAAA,CAACH,UAAU;IAACQ,IAAI,EAAEA,IAAK;IAACc,OAAO,EAAEH;EAAkB,CAAE,CACtD,EACD,CAACA,iBAAiB,CACpB,CAAC;EAED,MAAMI,gBAAgB,gBACpBpB,IAAA,CAACR,UAAU,CAAC6B,IAAI;IAACC,MAAM;IAACC,IAAI;IAACC,QAAQ,EAAC,MAAM;IAAAC,QAAA,eAC1CzB,IAAA,CAACT,iBAAiB;MAACY,IAAI,EAAC,OAAO;MAACuB,KAAK,EAAE/B,OAAO,CAACgC,OAAO,CAACC,OAAO,CAACC;IAAK,CAAE;EAAC,CACxD,CAClB;EAED,MAAMC,cAAc,GAAGlB,SAAS,GAAG,IAAI,gBACrCZ,IAAA,CAACR,UAAU,CAAC6B,IAAI;IAACC,MAAM;IAACC,IAAI;IAACC,QAAQ,EAAC,MAAM;IAAAC,QAAA,eAC1CzB,IAAA,CAACN,MAAM,CAACqC,IAAI;MAACC,IAAI,EAAC,cAAc;MAACN,KAAK,EAAE/B,OAAO,CAACgC,OAAO,CAACM,IAAI,CAACJ,IAAK;MAAAJ,QAAA,EAAC;IAEnE,CAAa;EAAC,CACC,CAClB;EAED,IAAIb,SAAS,IAAIH,IAAI,CAACyB,MAAM,KAAK,CAAC,EAAE;IAClC,OAAOd,gBAAgB;EACzB;EAEA,oBACEpB,IAAA,CAACR,UAAU,CAAC2C,QAAQ;IAClB1B,IAAI,EAAEA,IAAK;IACXS,UAAU,EAAEA,UAAW;IACvBd,YAAY,EAAEA,YAAa;IAC3BgC,sBAAsB,EAAEnC,SAAU;IAClCoC,kBAAkB,EAAEP,cAAe;IACnCQ,UAAU,EAAExB,YAAa;IACzByB,SAAS,EAAE1B,OAAQ;IACnB2B,4BAA4B,EAAE;EAAM,CACrC,CAAC;AAEN,CACF,CAAC;AAEDlC,WAAW,CAACmC,WAAW,GAAG,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export class FileAttachmentHandler {
|
|
4
|
+
static MAX_FILE_SIZE = 200 * 1024 * 1024; // 200MB
|
|
5
|
+
|
|
6
|
+
validate(attachment) {
|
|
7
|
+
if (attachment.type !== 'file') {
|
|
8
|
+
return {
|
|
9
|
+
valid: false,
|
|
10
|
+
reason: 'Invalid attachment type for file handler'
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const {
|
|
14
|
+
sourceFile
|
|
15
|
+
} = attachment;
|
|
16
|
+
if (!sourceFile.filename) {
|
|
17
|
+
return {
|
|
18
|
+
valid: false,
|
|
19
|
+
reason: 'File name is required'
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
if (!sourceFile.size) {
|
|
23
|
+
return {
|
|
24
|
+
valid: false,
|
|
25
|
+
reason: 'File size is required'
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (sourceFile.size > FileAttachmentHandler.MAX_FILE_SIZE) {
|
|
29
|
+
return {
|
|
30
|
+
valid: false,
|
|
31
|
+
reason: `File size exceeds maximum (${FileAttachmentHandler.MAX_FILE_SIZE / 1024 / 1024}MB)`
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
valid: true
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async buildPayload(attachment, uploadedUrl) {
|
|
39
|
+
const file = attachment;
|
|
40
|
+
const {
|
|
41
|
+
sourceFile
|
|
42
|
+
} = file;
|
|
43
|
+
const fileElem = {
|
|
44
|
+
uuid: attachment.id,
|
|
45
|
+
fileName: sourceFile.filename,
|
|
46
|
+
fileSize: sourceFile.size,
|
|
47
|
+
fileType: sourceFile.mimeType,
|
|
48
|
+
url: uploadedUrl
|
|
49
|
+
};
|
|
50
|
+
console.warn('[FileAttachmentHandler] Built payload', {
|
|
51
|
+
uuid: fileElem.uuid,
|
|
52
|
+
fileName: fileElem.fileName,
|
|
53
|
+
fileSize: fileElem.fileSize,
|
|
54
|
+
fileType: fileElem.fileType,
|
|
55
|
+
url: uploadedUrl.substring(0, 50) + '...'
|
|
56
|
+
});
|
|
57
|
+
return fileElem;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export default new FileAttachmentHandler();
|
|
61
|
+
//# sourceMappingURL=fileAttachmentHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FileAttachmentHandler","MAX_FILE_SIZE","validate","attachment","type","valid","reason","sourceFile","filename","size","buildPayload","uploadedUrl","file","fileElem","uuid","id","fileName","fileSize","fileType","mimeType","url","console","warn","substring"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/fileAttachmentHandler.ts"],"mappings":";;AAWA,OAAO,MAAMA,qBAAqB,CAA+B;EAC/D,OAAwBC,aAAa,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;;EAE3DC,QAAQA,CACNC,UAAsB,EAC8B;IACpD,IAAIA,UAAU,CAACC,IAAI,KAAK,MAAM,EAAE;MAC9B,OAAO;QACLC,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,MAAM;MAAEC;IAAW,CAAC,GAAGJ,UAAU;IAEjC,IAAI,CAACI,UAAU,CAACC,QAAQ,EAAE;MACxB,OAAO;QACLH,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,IAAI,CAACC,UAAU,CAACE,IAAI,EAAE;MACpB,OAAO;QACLJ,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,IAAIC,UAAU,CAACE,IAAI,GAAGT,qBAAqB,CAACC,aAAa,EAAE;MACzD,OAAO;QACLI,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,8BAA8BN,qBAAqB,CAACC,aAAa,GAAG,IAAI,GAAG,IAAI;MACzF,CAAC;IACH;IAEA,OAAO;MAAEI,KAAK,EAAE;IAAK,CAAC;EACxB;EAEA,MAAMK,YAAYA,CAChBP,UAAsB,EACtBQ,WAAmB,EACA;IACnB,MAAMC,IAAI,GAAGT,UAA4B;IACzC,MAAM;MAAEI;IAAW,CAAC,GAAGK,IAAI;IAE3B,MAAMC,QAAkB,GAAG;MACzBC,IAAI,EAAEX,UAAU,CAACY,EAAE;MACnBC,QAAQ,EAAET,UAAU,CAACC,QAAQ;MAC7BS,QAAQ,EAAEV,UAAU,CAACE,IAAI;MACzBS,QAAQ,EAAEX,UAAU,CAACY,QAAQ;MAC7BC,GAAG,EAAET;IACP,CAAC;IAEDU,OAAO,CAACC,IAAI,CAAC,uCAAuC,EAAE;MACpDR,IAAI,EAAED,QAAQ,CAACC,IAAI;MACnBE,QAAQ,EAAEH,QAAQ,CAACG,QAAQ;MAC3BC,QAAQ,EAAEJ,QAAQ,CAACI,QAAQ;MAC3BC,QAAQ,EAAEL,QAAQ,CAACK,QAAQ;MAC3BE,GAAG,EAAET,WAAW,CAACY,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;IACtC,CAAC,CAAC;IAEF,OAAOV,QAAQ;EACjB;AACF;AAEA,eAAe,IAAIb,qBAAqB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { generateUUID } from "../../utils/imageUtils.js";
|
|
4
|
+
export const ImageAttachmentHandler = {
|
|
5
|
+
validate(attachment) {
|
|
6
|
+
const MAX_SIZE = 5 * 1024 * 1024;
|
|
7
|
+
if (attachment.sourceFile.size > MAX_SIZE) {
|
|
8
|
+
return {
|
|
9
|
+
valid: false,
|
|
10
|
+
reason: 'Image exceeds 5MB limit'
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const validMimes = ['image/jpeg', 'image/png', 'image/webp', 'image/jpg'];
|
|
14
|
+
if (!validMimes.includes(attachment.sourceFile.mimeType)) {
|
|
15
|
+
return {
|
|
16
|
+
valid: false,
|
|
17
|
+
reason: `Unsupported format: ${attachment.sourceFile.mimeType}`
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (attachment.metadata.width <= 0 || attachment.metadata.height <= 0) {
|
|
21
|
+
return {
|
|
22
|
+
valid: false,
|
|
23
|
+
reason: 'Invalid image dimensions'
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
valid: true
|
|
28
|
+
};
|
|
29
|
+
},
|
|
30
|
+
async buildPayload(attachment, uploadedUrl) {
|
|
31
|
+
console.log('[ImageAttachmentHandler] Building payload for', {
|
|
32
|
+
filename: attachment.sourceFile.filename,
|
|
33
|
+
url: uploadedUrl
|
|
34
|
+
});
|
|
35
|
+
const picInfo = {
|
|
36
|
+
uuid: generateUUID(),
|
|
37
|
+
type: attachment.sourceFile.mimeType,
|
|
38
|
+
size: attachment.sourceFile.size,
|
|
39
|
+
width: attachment.metadata.width,
|
|
40
|
+
height: attachment.metadata.height,
|
|
41
|
+
url: uploadedUrl
|
|
42
|
+
};
|
|
43
|
+
const payload = {
|
|
44
|
+
sourcePicture: picInfo,
|
|
45
|
+
bigPicture: picInfo,
|
|
46
|
+
snapshotPicture: picInfo
|
|
47
|
+
};
|
|
48
|
+
console.log('[ImageAttachmentHandler] Payload created for', {
|
|
49
|
+
fileName: attachment.sourceFile.filename
|
|
50
|
+
});
|
|
51
|
+
return payload;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=imageAttachmentHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["generateUUID","ImageAttachmentHandler","validate","attachment","MAX_SIZE","sourceFile","size","valid","reason","validMimes","includes","mimeType","metadata","width","height","buildPayload","uploadedUrl","console","log","filename","url","picInfo","uuid","type","payload","sourcePicture","bigPicture","snapshotPicture","fileName"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/imageAttachmentHandler.ts"],"mappings":";;AAEA,SAASA,YAAY,QAAQ,2BAAwB;AAErD,OAAO,MAAMC,sBAA0C,GAAG;EACxDC,QAAQA,CAACC,UAA2B,EAAE;IACpC,MAAMC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;IAChC,IAAID,UAAU,CAACE,UAAU,CAACC,IAAI,GAAGF,QAAQ,EAAE;MACzC,OAAO;QAAEG,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;MAA0B,CAAC;IAC5D;IAEA,MAAMC,UAAU,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC;IACzE,IAAI,CAACA,UAAU,CAACC,QAAQ,CAACP,UAAU,CAACE,UAAU,CAACM,QAAQ,CAAC,EAAE;MACxD,OAAO;QACLJ,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,uBAAuBL,UAAU,CAACE,UAAU,CAACM,QAAQ;MAC/D,CAAC;IACH;IAEA,IAAIR,UAAU,CAACS,QAAQ,CAACC,KAAK,IAAI,CAAC,IAAIV,UAAU,CAACS,QAAQ,CAACE,MAAM,IAAI,CAAC,EAAE;MACrE,OAAO;QAAEP,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;MAA2B,CAAC;IAC7D;IAEA,OAAO;MAAED,KAAK,EAAE;IAAK,CAAC;EACxB,CAAC;EAED,MAAMQ,YAAYA,CAACZ,UAA2B,EAAEa,WAAmB,EAAE;IACnEC,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAE;MAC3DC,QAAQ,EAAEhB,UAAU,CAACE,UAAU,CAACc,QAAQ;MACxCC,GAAG,EAAEJ;IACP,CAAC,CAAC;IAEF,MAAMK,OAAO,GAAG;MACdC,IAAI,EAAEtB,YAAY,CAAC,CAAC;MACpBuB,IAAI,EAAEpB,UAAU,CAACE,UAAU,CAACM,QAAQ;MACpCL,IAAI,EAAEH,UAAU,CAACE,UAAU,CAACC,IAAI;MAChCO,KAAK,EAAEV,UAAU,CAACS,QAAQ,CAACC,KAAK;MAChCC,MAAM,EAAEX,UAAU,CAACS,QAAQ,CAACE,MAAM;MAClCM,GAAG,EAAEJ;IACP,CAAC;IAED,MAAMQ,OAAO,GAAG;MACdC,aAAa,EAAEJ,OAAO;MACtBK,UAAU,EAAEL,OAAO;MACnBM,eAAe,EAAEN;IACnB,CAAC;IAEDJ,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAE;MAC1DU,QAAQ,EAAEzB,UAAU,CAACE,UAAU,CAACc;IAClC,CAAC,CAAC;IAEF,OAAOK,OAAO;EAChB;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Handlers are now dispatched directly in getAttachmentHandler without registry
|
|
4
|
+
|
|
5
|
+
// Legacy export for backward compatibility
|
|
6
|
+
export function initializeAttachmentHandlers() {
|
|
7
|
+
// No longer needed - handlers are dispatched directly
|
|
8
|
+
}
|
|
9
|
+
export { ImageAttachmentHandler } from "./imageAttachmentHandler.js";
|
|
10
|
+
export { default as VideoAttachmentHandler } from "./videoAttachmentHandler.js";
|
|
11
|
+
export { default as FileAttachmentHandler } from "./fileAttachmentHandler.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["initializeAttachmentHandlers","ImageAttachmentHandler","default","VideoAttachmentHandler","FileAttachmentHandler"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/index.ts"],"mappings":";;AAAA;;AAEA;AACA,OAAO,SAASA,4BAA4BA,CAAA,EAAS;EACnD;AAAA;AAGF,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,OAAO,IAAIC,sBAAsB,QAAQ,6BAA0B;AAC5E,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,4BAAyB","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export class VideoAttachmentHandler {
|
|
4
|
+
static MAX_VIDEO_SIZE = 100 * 1024 * 1024; // 100MB
|
|
5
|
+
static SUPPORTED_TYPES = ['video/mp4', 'video/quicktime'];
|
|
6
|
+
validate(attachment) {
|
|
7
|
+
if (attachment.type !== 'video') {
|
|
8
|
+
return {
|
|
9
|
+
valid: false,
|
|
10
|
+
reason: 'Invalid attachment type for video handler'
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const {
|
|
14
|
+
sourceFile
|
|
15
|
+
} = attachment;
|
|
16
|
+
if (!sourceFile?.size) {
|
|
17
|
+
return {
|
|
18
|
+
valid: false,
|
|
19
|
+
reason: 'Video file size is required'
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
if (sourceFile.size > VideoAttachmentHandler.MAX_VIDEO_SIZE) {
|
|
23
|
+
return {
|
|
24
|
+
valid: false,
|
|
25
|
+
reason: `Video size exceeds maximum (${VideoAttachmentHandler.MAX_VIDEO_SIZE / 1024 / 1024}MB)`
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (sourceFile.mimeType && !VideoAttachmentHandler.SUPPORTED_TYPES.includes(sourceFile.mimeType)) {
|
|
29
|
+
return {
|
|
30
|
+
valid: false,
|
|
31
|
+
reason: 'Unsupported video format'
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
valid: true
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async buildPayload(attachment, uploadedUrl) {
|
|
39
|
+
const video = attachment;
|
|
40
|
+
const {
|
|
41
|
+
sourceFile,
|
|
42
|
+
metadata
|
|
43
|
+
} = video;
|
|
44
|
+
|
|
45
|
+
// Use thumbnail URL if available, otherwise fall back to video URL
|
|
46
|
+
const snapshotUrl = metadata.thumbnail?.url || uploadedUrl;
|
|
47
|
+
const snapshotWidth = metadata.thumbnail?.width || metadata.width || 320;
|
|
48
|
+
const snapshotHeight = metadata.thumbnail?.height || metadata.height || 180;
|
|
49
|
+
const snapshotSize = metadata.thumbnail?.size || 0;
|
|
50
|
+
if (metadata.thumbnail?.url) {
|
|
51
|
+
console.log('✅ [VideoAttachmentHandler] Using thumbnail:', {
|
|
52
|
+
snapshotUrl: metadata.thumbnail.url,
|
|
53
|
+
snapshotWidth,
|
|
54
|
+
snapshotHeight,
|
|
55
|
+
snapshotSize
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
const picInfo = {
|
|
59
|
+
videoUUID: attachment.id,
|
|
60
|
+
videoType: sourceFile.mimeType || 'video/mp4',
|
|
61
|
+
videoSize: sourceFile.size,
|
|
62
|
+
duration: metadata.duration,
|
|
63
|
+
snapshotWidth: snapshotWidth,
|
|
64
|
+
snapshotHeight: snapshotHeight,
|
|
65
|
+
videoUrl: uploadedUrl,
|
|
66
|
+
videoPath: sourceFile.path,
|
|
67
|
+
snapshotPath: snapshotUrl,
|
|
68
|
+
snapshotUUID: `${attachment.id}-snapshot`,
|
|
69
|
+
snapshotSize: snapshotSize,
|
|
70
|
+
snapshotUrl: snapshotUrl,
|
|
71
|
+
snapShotType: 'image/jpeg'
|
|
72
|
+
};
|
|
73
|
+
console.warn('[VideoAttachmentHandler] Built payload', {
|
|
74
|
+
videoUUID: picInfo.videoUUID,
|
|
75
|
+
videoSize: picInfo.videoSize,
|
|
76
|
+
duration: picInfo.duration,
|
|
77
|
+
snapshotWidth: picInfo.snapshotWidth,
|
|
78
|
+
snapshotHeight: picInfo.snapshotHeight,
|
|
79
|
+
videoUrl: uploadedUrl.substring(0, 50) + '...'
|
|
80
|
+
});
|
|
81
|
+
return picInfo;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export default new VideoAttachmentHandler();
|
|
85
|
+
//# sourceMappingURL=videoAttachmentHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["VideoAttachmentHandler","MAX_VIDEO_SIZE","SUPPORTED_TYPES","validate","attachment","type","valid","reason","sourceFile","size","mimeType","includes","buildPayload","uploadedUrl","video","metadata","snapshotUrl","thumbnail","url","snapshotWidth","width","snapshotHeight","height","snapshotSize","console","log","picInfo","videoUUID","id","videoType","videoSize","duration","videoUrl","videoPath","path","snapshotPath","snapshotUUID","snapShotType","warn","substring"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/videoAttachmentHandler.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import OpenIMSDK from '@droppii/openim-rn-client-sdk';
|
|
4
|
+
import { getAttachmentHandler } from "../types/attachmentHandler.js";
|
|
5
|
+
import { useConversationStore } from "../store/index.js";
|
|
6
|
+
import { getAttachmentPriorityConfig } from "../config/attachment-priority.js";
|
|
7
|
+
export let AttachmentOrchestratorService;
|
|
8
|
+
(function (_AttachmentOrchestratorService) {
|
|
9
|
+
async function sendPreparedAttachments(attachments, uploadedUrls, options = {
|
|
10
|
+
strategy: 'individual'
|
|
11
|
+
}, onMessageSent) {
|
|
12
|
+
const result = {
|
|
13
|
+
success: false,
|
|
14
|
+
sentAttachmentIds: [],
|
|
15
|
+
failedAttachmentIds: [],
|
|
16
|
+
errors: {}
|
|
17
|
+
};
|
|
18
|
+
if (!attachments || attachments.length === 0) {
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// 1. Validate all attachments
|
|
23
|
+
console.log('[AttachmentOrchestrator] Validating prepared attachments...');
|
|
24
|
+
for (const att of attachments) {
|
|
25
|
+
try {
|
|
26
|
+
const handler = getAttachmentHandler(att.type);
|
|
27
|
+
const validation = handler.validate(att);
|
|
28
|
+
if (!validation.valid) {
|
|
29
|
+
result.failedAttachmentIds.push(att.id);
|
|
30
|
+
result.errors[att.id] = validation.reason;
|
|
31
|
+
}
|
|
32
|
+
} catch (error) {
|
|
33
|
+
const msg = error instanceof Error ? error.message : 'Validation failed';
|
|
34
|
+
result.failedAttachmentIds.push(att.id);
|
|
35
|
+
result.errors[att.id] = msg;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (result.failedAttachmentIds.length === attachments.length) {
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
const validAttachments = attachments.filter(a => !result.failedAttachmentIds.includes(a.id));
|
|
42
|
+
|
|
43
|
+
// 2. Build message payloads directly (no upload)
|
|
44
|
+
console.log('[AttachmentOrchestrator] Building message payloads for prepared attachments...');
|
|
45
|
+
const payloads = [];
|
|
46
|
+
for (const att of validAttachments) {
|
|
47
|
+
try {
|
|
48
|
+
const uploadedUrl = uploadedUrls[att.id];
|
|
49
|
+
if (!uploadedUrl) {
|
|
50
|
+
result.failedAttachmentIds.push(att.id);
|
|
51
|
+
result.errors[att.id] = 'No uploaded URL provided';
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
const handler = getAttachmentHandler(att.type);
|
|
55
|
+
const payload = await handler.buildPayload(att, uploadedUrl);
|
|
56
|
+
payloads.push({
|
|
57
|
+
attachmentId: att.id,
|
|
58
|
+
payload
|
|
59
|
+
});
|
|
60
|
+
} catch (error) {
|
|
61
|
+
const msg = error instanceof Error ? error.message : 'Payload build failed';
|
|
62
|
+
result.failedAttachmentIds.push(att.id);
|
|
63
|
+
result.errors[att.id] = msg;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// 3. Send via OpenIM - always use createMergerMessage
|
|
68
|
+
console.log('[AttachmentOrchestrator] Sending via createMergerMessage', {
|
|
69
|
+
payloadCount: payloads.length,
|
|
70
|
+
attachmentIds: payloads.map(p => p.attachmentId)
|
|
71
|
+
});
|
|
72
|
+
try {
|
|
73
|
+
const mergedMsgId = await sendMergedMessage(payloads.map(p => p.payload), options.includeCaption, onMessageSent);
|
|
74
|
+
console.log('[AttachmentOrchestrator] Messages sent via merger:', {
|
|
75
|
+
messageId: mergedMsgId,
|
|
76
|
+
count: payloads.length
|
|
77
|
+
});
|
|
78
|
+
result.sentAttachmentIds = payloads.map(p => p.attachmentId);
|
|
79
|
+
result.mergedMessageId = mergedMsgId;
|
|
80
|
+
} catch (error) {
|
|
81
|
+
const msg = error instanceof Error ? error.message : 'Send failed';
|
|
82
|
+
console.error('[AttachmentOrchestrator] OpenIM send error:', {
|
|
83
|
+
error: msg,
|
|
84
|
+
stack: error instanceof Error ? error.stack : undefined
|
|
85
|
+
});
|
|
86
|
+
if (result.sentAttachmentIds.length === 0) {
|
|
87
|
+
result.errors._send = msg;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
result.success = result.sentAttachmentIds.length > 0;
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
_AttachmentOrchestratorService.sendPreparedAttachments = sendPreparedAttachments;
|
|
94
|
+
async function sendMergedMessage(payloads, _caption, onMessageSent) {
|
|
95
|
+
const currentConversation = useConversationStore.getState().getCurrentConversation();
|
|
96
|
+
if (!currentConversation) {
|
|
97
|
+
throw new Error('No conversation selected');
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Get priority configuration
|
|
101
|
+
const priorityConfig = getAttachmentPriorityConfig();
|
|
102
|
+
console.log('[AttachmentOrchestrator] Using priority config:', {
|
|
103
|
+
enabled: priorityConfig.enabled,
|
|
104
|
+
order: priorityConfig.order
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// Categorize payloads by type
|
|
108
|
+
const categorizedPayloads = {
|
|
109
|
+
image: [],
|
|
110
|
+
video: [],
|
|
111
|
+
file: [],
|
|
112
|
+
text: []
|
|
113
|
+
};
|
|
114
|
+
for (const p of payloads) {
|
|
115
|
+
const payload = p;
|
|
116
|
+
// Detect type from payload properties
|
|
117
|
+
if (payload.duration !== undefined || payload.videoPath !== undefined) {
|
|
118
|
+
categorizedPayloads.video.push(p);
|
|
119
|
+
} else if (payload.fileExtension !== undefined || payload.fileName && payload.fileName.includes('.')) {
|
|
120
|
+
categorizedPayloads.file.push(p);
|
|
121
|
+
} else if (payload.content && typeof payload.content === 'string') {
|
|
122
|
+
categorizedPayloads.text.push(p);
|
|
123
|
+
} else {
|
|
124
|
+
categorizedPayloads.image.push(p);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
console.log('[AttachmentOrchestrator] Categorized payloads:', {
|
|
128
|
+
count: payloads.length,
|
|
129
|
+
images: categorizedPayloads.image.length,
|
|
130
|
+
videos: categorizedPayloads.video.length,
|
|
131
|
+
files: categorizedPayloads.file.length,
|
|
132
|
+
texts: categorizedPayloads.text.length
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// AC2: Create message from payload based on type
|
|
136
|
+
const createMessageFromPayload = async p => {
|
|
137
|
+
if (p.duration !== undefined || p.videoPath !== undefined) {
|
|
138
|
+
console.log('[AttachmentOrchestrator] Creating video message');
|
|
139
|
+
return OpenIMSDK.createVideoMessageByURL(p);
|
|
140
|
+
}
|
|
141
|
+
if (p.fileExtension !== undefined || p.fileName && p.fileName.includes('.')) {
|
|
142
|
+
console.log('[AttachmentOrchestrator] Creating file message');
|
|
143
|
+
return OpenIMSDK.createFileMessageByURL(p);
|
|
144
|
+
}
|
|
145
|
+
if (p.content && typeof p.content === 'string') {
|
|
146
|
+
console.log('[AttachmentOrchestrator] Creating text message');
|
|
147
|
+
return OpenIMSDK.createTextMessage(p.content);
|
|
148
|
+
}
|
|
149
|
+
// Default to image
|
|
150
|
+
console.log('[AttachmentOrchestrator] Creating image message');
|
|
151
|
+
return OpenIMSDK.createImageMessageByURL(p);
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// Process attachments in priority order from config
|
|
155
|
+
let lastMsgId = '';
|
|
156
|
+
const allMessages = [];
|
|
157
|
+
if (priorityConfig.enabled) {
|
|
158
|
+
// Use configured priority order
|
|
159
|
+
console.log('[AttachmentOrchestrator] Processing in priority order:', priorityConfig.order);
|
|
160
|
+
for (const attachmentType of priorityConfig.order) {
|
|
161
|
+
const payloadsForType = categorizedPayloads[attachmentType];
|
|
162
|
+
if (payloadsForType.length === 0) continue;
|
|
163
|
+
console.log(`[AttachmentOrchestrator] Processing ${attachmentType}:`, {
|
|
164
|
+
count: payloadsForType.length
|
|
165
|
+
});
|
|
166
|
+
const mergeStrategy = attachmentType === 'image' ? priorityConfig.mergeStrategy.images : attachmentType === 'video' ? priorityConfig.mergeStrategy.videos : attachmentType === 'file' ? priorityConfig.mergeStrategy.files : 'individual';
|
|
167
|
+
if (mergeStrategy === 'individual' || payloadsForType.length === 1) {
|
|
168
|
+
// Send individually
|
|
169
|
+
for (const p of payloadsForType) {
|
|
170
|
+
const message = await createMessageFromPayload(p);
|
|
171
|
+
allMessages.push(message);
|
|
172
|
+
}
|
|
173
|
+
} else {
|
|
174
|
+
// Merge multiple items
|
|
175
|
+
const messages = [];
|
|
176
|
+
for (const p of payloadsForType) {
|
|
177
|
+
const message = await createMessageFromPayload(p);
|
|
178
|
+
messages.push(message);
|
|
179
|
+
}
|
|
180
|
+
const typeLabel = attachmentType.charAt(0).toUpperCase() + attachmentType.slice(1);
|
|
181
|
+
const merged = await OpenIMSDK.createMergerMessage({
|
|
182
|
+
messageList: messages,
|
|
183
|
+
title: typeLabel + 's',
|
|
184
|
+
summaryList: messages.map((_, i) => `[${typeLabel} ${i + 1}]`)
|
|
185
|
+
});
|
|
186
|
+
if (merged) {
|
|
187
|
+
allMessages.push(merged);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
} else {
|
|
192
|
+
// Original behavior (config disabled)
|
|
193
|
+
console.log('[AttachmentOrchestrator] Priority config disabled');
|
|
194
|
+
const allPayloads = [...categorizedPayloads.image, ...categorizedPayloads.video, ...categorizedPayloads.file, ...categorizedPayloads.text];
|
|
195
|
+
for (const p of allPayloads) {
|
|
196
|
+
const message = await createMessageFromPayload(p);
|
|
197
|
+
allMessages.push(message);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// Send all messages in priority order
|
|
202
|
+
console.log('[AttachmentOrchestrator] Sending all messages in priority order', {
|
|
203
|
+
totalMessages: allMessages.length
|
|
204
|
+
});
|
|
205
|
+
for (let i = 0; i < allMessages.length; i++) {
|
|
206
|
+
const message = allMessages[i];
|
|
207
|
+
console.log('[AttachmentOrchestrator] Sending message', i + 1, 'of', allMessages.length);
|
|
208
|
+
const result = await OpenIMSDK.sendMessageNotOss({
|
|
209
|
+
recvID: currentConversation.userID || '',
|
|
210
|
+
groupID: currentConversation.groupID || '',
|
|
211
|
+
message
|
|
212
|
+
});
|
|
213
|
+
lastMsgId = result?.clientMsgID || result?.serverMsgID || '';
|
|
214
|
+
console.log('[AttachmentOrchestrator] Message sent:', {
|
|
215
|
+
messageId: lastMsgId,
|
|
216
|
+
index: i + 1
|
|
217
|
+
});
|
|
218
|
+
if (onMessageSent && result) {
|
|
219
|
+
onMessageSent(result);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return lastMsgId;
|
|
223
|
+
}
|
|
224
|
+
})(AttachmentOrchestratorService || (AttachmentOrchestratorService = {}));
|
|
225
|
+
//# sourceMappingURL=attachmentOrchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OpenIMSDK","getAttachmentHandler","useConversationStore","getAttachmentPriorityConfig","AttachmentOrchestratorService","_AttachmentOrchestratorService","sendPreparedAttachments","attachments","uploadedUrls","options","strategy","onMessageSent","result","success","sentAttachmentIds","failedAttachmentIds","errors","length","console","log","att","handler","type","validation","validate","valid","push","id","reason","error","msg","Error","message","validAttachments","filter","a","includes","payloads","uploadedUrl","payload","buildPayload","attachmentId","payloadCount","attachmentIds","map","p","mergedMsgId","sendMergedMessage","includeCaption","messageId","count","mergedMessageId","stack","undefined","_send","_caption","currentConversation","getState","getCurrentConversation","priorityConfig","enabled","order","categorizedPayloads","image","video","file","text","duration","videoPath","fileExtension","fileName","content","images","videos","files","texts","createMessageFromPayload","createVideoMessageByURL","createFileMessageByURL","createTextMessage","createImageMessageByURL","lastMsgId","allMessages","attachmentType","payloadsForType","mergeStrategy","messages","typeLabel","charAt","toUpperCase","slice","merged","createMergerMessage","messageList","title","summaryList","_","i","allPayloads","totalMessages","sendMessageNotOss","recvID","userID","groupID","clientMsgID","serverMsgID","index"],"sourceRoot":"../../../src","sources":["services/attachmentOrchestrator.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Auth token management
|
|
5
|
+
* Consumer app calls setAuthToken() once at startup
|
|
6
|
+
* Library services call getAuthToken() internally
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
let authToken = null;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Set auth token (call once at app startup)
|
|
13
|
+
*/
|
|
14
|
+
export const setAuthToken = token => {
|
|
15
|
+
authToken = token;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Get auth token (called internally by library services)
|
|
20
|
+
* @throws Error if token not set
|
|
21
|
+
*/
|
|
22
|
+
export const getAuthToken = () => {
|
|
23
|
+
if (!authToken) {
|
|
24
|
+
throw new Error('Auth token not initialized. Call setAuthToken(token) at app startup.');
|
|
25
|
+
}
|
|
26
|
+
return authToken;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Clear token (logout)
|
|
31
|
+
*/
|
|
32
|
+
export const clearAuthToken = () => {
|
|
33
|
+
authToken = null;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["authToken","setAuthToken","token","getAuthToken","Error","clearAuthToken"],"sourceRoot":"../../../src","sources":["services/auth.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,IAAIA,SAAwB,GAAG,IAAI;;AAEnC;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAIC,KAAa,IAAK;EAC7CF,SAAS,GAAGE,KAAK;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAc;EACxC,IAAI,CAACH,SAAS,EAAE;IACd,MAAM,IAAII,KAAK,CACb,sEACF,CAAC;EACH;EACA,OAAOJ,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMK,cAAc,GAAGA,CAAA,KAAM;EAClCL,SAAS,GAAG,IAAI;AAClB,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use config/api-endpoints.ts instead
|
|
5
|
+
* This file is kept for backward compatibility only.
|
|
6
|
+
* All endpoints should be managed through config/api-endpoints.ts
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { getApiEndpoint, setApiEndpoint, getAllApiEndpoints } from "../config/api-endpoints.js";
|
|
10
|
+
|
|
11
|
+
// Legacy interface - use api-endpoints.ts directly
|
|
3
12
|
export const ENDPOINTS = {
|
|
4
13
|
chatService: {
|
|
5
|
-
urlMetadata
|
|
14
|
+
get urlMetadata() {
|
|
15
|
+
return getApiEndpoint('urlMetadata');
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
uploaderService: {
|
|
19
|
+
get uploadImage() {
|
|
20
|
+
return getApiEndpoint('imageUpload');
|
|
21
|
+
}
|
|
6
22
|
}
|
|
7
23
|
};
|
|
24
|
+
|
|
25
|
+
// Re-export proper API for new code
|
|
26
|
+
export { getApiEndpoint, setApiEndpoint, getAllApiEndpoints };
|
|
8
27
|
//# sourceMappingURL=endpoints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ENDPOINTS","chatService","urlMetadata"],"sourceRoot":"../../../src","sources":["services/endpoints.ts"],"mappings":";;AAAA,OAAO,
|
|
1
|
+
{"version":3,"names":["getApiEndpoint","setApiEndpoint","getAllApiEndpoints","ENDPOINTS","chatService","urlMetadata","uploaderService","uploadImage"],"sourceRoot":"../../../src","sources":["services/endpoints.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SACEA,cAAc,EACdC,cAAc,EACdC,kBAAkB,QACb,4BAAyB;;AAEhC;AACA,OAAO,MAAMC,SAAS,GAAG;EACvBC,WAAW,EAAE;IACX,IAAIC,WAAWA,CAAA,EAAG;MAChB,OAAOL,cAAc,CAAC,aAAa,CAAC;IACtC;EACF,CAAC;EACDM,eAAe,EAAE;IACf,IAAIC,WAAWA,CAAA,EAAG;MAChB,OAAOP,cAAc,CAAC,aAAa,CAAC;IACtC;EACF;AACF,CAAC;;AAED;AACA,SAASA,cAAc,EAAEC,cAAc,EAAEC,kBAAkB","ignoreList":[]}
|