@droppii-org/chat-mobile 0.2.7 → 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/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/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 +10 -5
- package/lib/module/hooks/message/useSendMessage.js.map +1 -1
- package/lib/module/hooks/useChatMessages.js +0 -3
- package/lib/module/hooks/useChatMessages.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/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 +94 -63
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js +5 -13
- 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/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 +33 -13
- 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/translation/resources/i18n.js +22 -8
- 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/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/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/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 +1 -1
- 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/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/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.map +1 -1
- package/lib/typescript/src/hooks/useChatMessages.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/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/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/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 -1
- 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 +4 -1
- 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/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/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/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/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/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/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/core/index.ts +25 -1
- package/src/core/useChatListener.ts +0 -21
- package/src/hooks/message/useSendMessage.ts +12 -5
- package/src/hooks/useChatMessages.ts +0 -4
- package/src/hooks/useImageAttachment.ts +348 -0
- 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 +142 -89
- package/src/screens/chat-detail/ChatListLegend.tsx +9 -11
- 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/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 +47 -24
- package/src/screens/chat-detail/legend/messageTypes.tsx +13 -0
- package/src/screens/chat-detail/types.ts +5 -1
- 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/translation/resources/i18n.ts +22 -8
- package/src/types/attachment.ts +85 -0
- package/src/types/attachmentHandler.ts +31 -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/device.ts +73 -0
- package/src/utils/imageUrlOptimizer.ts +56 -0
- package/src/utils/imageUtils.ts +76 -0
- package/src/utils/resolveMessageType.ts +2 -0
- package/src/utils/ui.ts +19 -0
- package/src/utils/url.ts +1 -1
- 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 -244
- 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 -13
- 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 -304
- package/src/screens/chat-detail/messages/ChatMessageBubble.tsx +0 -23
- package/src/screens/chat-detail/messages/types.ts +0 -14
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { memo, useCallback, useEffect, useMemo
|
|
4
|
-
import {
|
|
5
|
-
import Reanimated
|
|
6
|
-
import { useKeyboardState, useReanimatedKeyboardAnimation } from 'react-native-keyboard-controller';
|
|
3
|
+
import { memo, useCallback, useEffect, useMemo } from 'react';
|
|
4
|
+
import { Platform, StyleSheet } from 'react-native';
|
|
5
|
+
import Reanimated from 'react-native-reanimated';
|
|
7
6
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
8
|
-
import { KContainer,
|
|
7
|
+
import { KContainer, KColors, KImage } from '@droppii/libs';
|
|
8
|
+
const IS_IOS = Platform.OS === 'ios';
|
|
9
|
+
const INPUT_LINE_HEIGHT = 22.4;
|
|
10
|
+
const WRAPPED_HEIGHT_THRESHOLD = IS_IOS ? INPUT_LINE_HEIGHT + 4 : INPUT_LINE_HEIGHT + 12;
|
|
9
11
|
import { ChatQuickActions } from "./ChatQuickActions.js";
|
|
10
12
|
import { ChatAttachmentPanel } from "./ChatAttachmentPanel.js";
|
|
11
13
|
import { ChatLinkPreview } from "./ChatLinkPreview.js";
|
|
14
|
+
import { ChatMessageInput } from "./components/ChatMessageInput.js";
|
|
15
|
+
import { AttachmentPreview } from "../../components/AttachmentPreview.js";
|
|
12
16
|
import { getAttachmentPanelHeight } from "./constants.js";
|
|
13
17
|
import { useLinkPreview } from "../../hooks/useLinkPreview/useLinkPreview.js";
|
|
18
|
+
import { useImageAttachment } from "../../hooks/useImageAttachment.js";
|
|
19
|
+
import { useSendAttachment } from "../../hooks/useSendAttachment.js";
|
|
20
|
+
import { useChatComposerState } from "./hooks/useChatComposerState.js";
|
|
21
|
+
import { useChatComposerAnimation } from "./hooks/useChatComposerAnimation.js";
|
|
22
|
+
import { useAttachmentSendHandler } from "./hooks/useAttachmentSendHandler.js";
|
|
23
|
+
import { isVideoFromPicker } from "../../utils/imageUtils.js";
|
|
14
24
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
-
const ACCESSORY_ANIMATION_MS = 250;
|
|
16
|
-
const ACCESSORY_SETTLE_MS = 150;
|
|
17
|
-
const IS_IOS = Platform.OS === 'ios';
|
|
18
|
-
const INPUT_FONT_SIZE = 16;
|
|
19
|
-
const INPUT_LINE_HEIGHT = 22.4;
|
|
20
|
-
const INPUT_MAX_HEIGHT = INPUT_LINE_HEIGHT * 5;
|
|
21
|
-
// Android's onContentSizeChange includes paddingVertical (4*2=8) in reported height
|
|
22
|
-
const WRAPPED_HEIGHT_THRESHOLD = IS_IOS ? INPUT_LINE_HEIGHT + 4 : INPUT_LINE_HEIGHT + 12;
|
|
23
25
|
export const ChatComposer = /*#__PURE__*/memo(({
|
|
24
26
|
value,
|
|
25
27
|
placeholder = 'Nhập tin nhắn...',
|
|
26
28
|
onChangeText,
|
|
27
29
|
onSend,
|
|
28
|
-
|
|
29
|
-
onPressEmoji,
|
|
30
|
+
onMessageSent,
|
|
31
|
+
onPressEmoji: _onPressEmoji,
|
|
30
32
|
showQuickActions = true,
|
|
31
33
|
quickActions,
|
|
32
34
|
attachmentActions,
|
|
@@ -37,153 +39,159 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
37
39
|
renderAttachmentAction,
|
|
38
40
|
attachmentColumns
|
|
39
41
|
}) => {
|
|
40
|
-
const hasAttachmentActions = !!attachmentActions?.length;
|
|
41
|
-
const inputRef = useRef(null);
|
|
42
|
-
const isSwitchingToAttachmentRef = useRef(false);
|
|
43
|
-
const [isAttachmentOpen, setIsAttachmentOpen] = useState(false);
|
|
44
|
-
const [isInputFocused, setIsInputFocused] = useState(false);
|
|
45
|
-
const [isInputWrapped, setIsInputWrapped] = useState(false);
|
|
46
42
|
const insets = useSafeAreaInsets();
|
|
43
|
+
const hasAttachmentActions = !!attachmentActions?.length;
|
|
44
|
+
|
|
45
|
+
// Link preview
|
|
47
46
|
const {
|
|
48
47
|
isVisible: showLinkPreview,
|
|
49
48
|
metadata: urlMetadata,
|
|
50
49
|
isLoading: isMetadataLoading,
|
|
51
50
|
dismiss: handleDismissPreview
|
|
52
51
|
} = useLinkPreview(value);
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
|
|
53
|
+
// Image attachment
|
|
55
54
|
const {
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
selectedImages,
|
|
56
|
+
isImagePreviewVisible,
|
|
57
|
+
handleImageAttach,
|
|
58
|
+
handleImageRemove,
|
|
59
|
+
clearAllImages
|
|
60
|
+
} = useImageAttachment();
|
|
61
|
+
|
|
62
|
+
// Send attachment
|
|
63
|
+
const {
|
|
64
|
+
send: sendAttachments
|
|
65
|
+
} = useSendAttachment();
|
|
66
|
+
|
|
67
|
+
// Callback to send text message (with optional preview link)
|
|
68
|
+
// This is used when sending text after attachments
|
|
69
|
+
const handleSendText = useCallback((text, previewMetadata) => {
|
|
70
|
+
// Send with the captured text and preview metadata
|
|
71
|
+
// Note: ChatDetail's handleSend will read currentInput, but for text sent
|
|
72
|
+
// after attachments, we want to use the captured text instead
|
|
73
|
+
// So we pass it via a special handling in the metadata
|
|
74
|
+
const metadataWithText = previewMetadata ? {
|
|
75
|
+
...previewMetadata,
|
|
76
|
+
_capturedText: text
|
|
77
|
+
} : undefined;
|
|
78
|
+
onSend?.(metadataWithText);
|
|
79
|
+
}, [onSend]);
|
|
80
|
+
|
|
81
|
+
// Attachment send handler
|
|
82
|
+
const {
|
|
83
|
+
handleSend: handleAttachmentSend
|
|
84
|
+
} = useAttachmentSendHandler({
|
|
85
|
+
selectedImages,
|
|
86
|
+
sendAttachments,
|
|
87
|
+
clearAllImages,
|
|
88
|
+
onSend,
|
|
89
|
+
onMessageSent,
|
|
90
|
+
textMessage: (value ?? '').trim(),
|
|
91
|
+
urlMetadata: showLinkPreview ? urlMetadata : undefined,
|
|
92
|
+
onSendText: handleSendText
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
// Composer state
|
|
96
|
+
const {
|
|
97
|
+
isAttachmentOpen,
|
|
98
|
+
setIsAttachmentOpen,
|
|
99
|
+
isInputFocused,
|
|
100
|
+
setIsInputFocused,
|
|
101
|
+
setIsInputWrapped,
|
|
102
|
+
isMultilineInput,
|
|
103
|
+
inputRef
|
|
104
|
+
} = useChatComposerState(value);
|
|
105
|
+
|
|
106
|
+
// Panel height calculation
|
|
58
107
|
const panelHeight = useMemo(() => hasAttachmentActions ? getAttachmentPanelHeight(attachmentActions.length, attachmentColumns) : 0, [attachmentActions, attachmentColumns, hasAttachmentActions]);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
});
|
|
70
|
-
setIsAttachmentOpen(true);
|
|
71
|
-
}, [attachmentHeightSV, panelHeight]);
|
|
72
|
-
const closeAttachment = useCallback(() => {
|
|
73
|
-
attachmentHeightSV.value = withTiming(0, {
|
|
74
|
-
duration: ACCESSORY_ANIMATION_MS
|
|
75
|
-
});
|
|
76
|
-
setIsAttachmentOpen(false);
|
|
77
|
-
}, [attachmentHeightSV]);
|
|
78
|
-
const finishKeyboardToAttachmentSwitch = useCallback(() => {
|
|
79
|
-
if (!isSwitchingToAttachmentRef.current) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
isSwitchingToAttachmentRef.current = false;
|
|
83
|
-
isKeyboardToAttachmentSwitchSV.value = false;
|
|
84
|
-
const targetHeight = panelHeightSV.value;
|
|
85
|
-
const startHeight = switchKeyboardHeightSV.value;
|
|
86
|
-
if (Math.abs(startHeight - targetHeight) < 1) {
|
|
87
|
-
attachmentHeightSV.value = targetHeight;
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
attachmentHeightSV.value = withTiming(targetHeight, {
|
|
91
|
-
duration: ACCESSORY_SETTLE_MS
|
|
92
|
-
});
|
|
93
|
-
}, [attachmentHeightSV, isKeyboardToAttachmentSwitchSV, panelHeightSV, switchKeyboardHeightSV]);
|
|
94
|
-
useEffect(() => {
|
|
95
|
-
if (!isKeyboardVisible && isSwitchingToAttachmentRef.current) {
|
|
96
|
-
finishKeyboardToAttachmentSwitch();
|
|
97
|
-
}
|
|
98
|
-
}, [finishKeyboardToAttachmentSwitch, isKeyboardVisible]);
|
|
99
|
-
useAnimatedReaction(() => ({
|
|
100
|
-
switching: isKeyboardToAttachmentSwitchSV.value,
|
|
101
|
-
progress: keyboardProgress.value
|
|
102
|
-
}), (current, previous) => {
|
|
103
|
-
if (current.switching && current.progress === 0 && (previous?.progress ?? 1) > 0) {
|
|
104
|
-
runOnJS(finishKeyboardToAttachmentSwitch)();
|
|
105
|
-
}
|
|
106
|
-
}, [finishKeyboardToAttachmentSwitch]);
|
|
107
|
-
useEffect(() => {
|
|
108
|
-
if (isSwitchingToAttachmentRef.current) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
if (isKeyboardVisible && isAttachmentOpen) {
|
|
112
|
-
closeAttachment();
|
|
113
|
-
}
|
|
114
|
-
}, [closeAttachment, isAttachmentOpen, isKeyboardVisible]);
|
|
115
|
-
const accessorySlotStyle = useAnimatedStyle(() => {
|
|
116
|
-
if (isKeyboardToAttachmentSwitchSV.value) {
|
|
117
|
-
return {
|
|
118
|
-
height: switchKeyboardHeightSV.value * (1 - keyboardProgress.value)
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
return {
|
|
122
|
-
height: attachmentHeightSV.value
|
|
123
|
-
};
|
|
108
|
+
|
|
109
|
+
// Animation
|
|
110
|
+
const {
|
|
111
|
+
accessorySlotStyle,
|
|
112
|
+
toggleAttachmentVisibility,
|
|
113
|
+
closeAttachment
|
|
114
|
+
} = useChatComposerAnimation({
|
|
115
|
+
isAttachmentOpen,
|
|
116
|
+
panelHeight,
|
|
117
|
+
onAttachmentOpenChange: setIsAttachmentOpen
|
|
124
118
|
});
|
|
119
|
+
|
|
120
|
+
// Check if any attachments are currently uploading
|
|
121
|
+
const isUploadingAttachments = useMemo(() => selectedImages.some(img => img.isUploading), [selectedImages]);
|
|
122
|
+
|
|
123
|
+
// Send handler - includes attachment and preview link features
|
|
125
124
|
const handleSend = useCallback(() => {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
const hasAttachments = selectedImages.length > 0;
|
|
126
|
+
const hasText = (value ?? '').trim().length > 0;
|
|
127
|
+
// Only send metadata if preview is CURRENTLY visible (user didn't dismiss it)
|
|
128
|
+
const previewMetadata = showLinkPreview ? urlMetadata : undefined;
|
|
129
|
+
const hasPreview = !!previewMetadata;
|
|
130
|
+
|
|
131
|
+
// Prevent sending while files are uploading
|
|
132
|
+
if (isUploadingAttachments) {
|
|
133
|
+
console.warn('[ChatComposer] Cannot send message while files are uploading');
|
|
130
134
|
return;
|
|
131
135
|
}
|
|
132
|
-
|
|
133
|
-
|
|
136
|
+
|
|
137
|
+
// Validate: must have at least one of: attachments, text, or preview link
|
|
138
|
+
if (!hasAttachments && !hasText && !hasPreview) {
|
|
139
|
+
console.warn('[ChatComposer] No attachments, text, or preview link to send');
|
|
134
140
|
return;
|
|
135
141
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
if (hasAttachments) {
|
|
143
|
+
// Send attachments (+ text if present, handled in attachment handler)
|
|
144
|
+
handleAttachmentSend();
|
|
145
|
+
} else {
|
|
146
|
+
// Send text/preview link only
|
|
147
|
+
console.log('[ChatComposer] handleSend - text message:', {
|
|
148
|
+
hasText,
|
|
149
|
+
hasPreview,
|
|
150
|
+
previewUrl: previewMetadata?.url
|
|
151
|
+
});
|
|
152
|
+
onSend?.(previewMetadata);
|
|
145
153
|
}
|
|
146
|
-
|
|
147
|
-
}, [closeAttachment, isAttachmentOpen, isKeyboardVisible, keyboardHeight, isKeyboardToAttachmentSwitchSV, onPressAttach, hasAttachmentActions, openAttachment, switchKeyboardHeightSV]);
|
|
154
|
+
}, [onSend, urlMetadata, showLinkPreview, selectedImages, handleAttachmentSend, value, isUploadingAttachments]);
|
|
148
155
|
const handleInputFocus = useCallback(() => {
|
|
149
156
|
setIsInputFocused(true);
|
|
150
|
-
|
|
151
|
-
|
|
157
|
+
// Close attachment panel with animation when input is focused
|
|
158
|
+
if (isAttachmentOpen) {
|
|
159
|
+
closeAttachment();
|
|
152
160
|
}
|
|
153
|
-
|
|
154
|
-
}, [closeAttachment, isAttachmentOpen]);
|
|
161
|
+
}, [closeAttachment, isAttachmentOpen, setIsInputFocused]);
|
|
155
162
|
const handleInputBlur = useCallback(() => {
|
|
156
163
|
setIsInputFocused(false);
|
|
157
|
-
}, []);
|
|
164
|
+
}, [setIsInputFocused]);
|
|
165
|
+
const handleChangeText = useCallback(text => {
|
|
166
|
+
onChangeText?.(text);
|
|
167
|
+
}, [onChangeText]);
|
|
158
168
|
const handleInputContentSizeChange = useCallback(event => {
|
|
159
169
|
const {
|
|
160
170
|
height
|
|
161
171
|
} = event.nativeEvent.contentSize;
|
|
162
172
|
setIsInputWrapped(height > WRAPPED_HEIGHT_THRESHOLD);
|
|
163
|
-
}, []);
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
return value.includes('\n') || isInputWrapped;
|
|
169
|
-
}, [isInputWrapped, value]);
|
|
173
|
+
}, [setIsInputWrapped]);
|
|
174
|
+
|
|
175
|
+
// Reset wrapped state when value is cleared
|
|
170
176
|
useEffect(() => {
|
|
171
177
|
if (!value) {
|
|
172
178
|
setIsInputWrapped(false);
|
|
173
179
|
}
|
|
174
|
-
}, [value]);
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
}
|
|
180
|
+
}, [value, setIsInputWrapped]);
|
|
181
|
+
|
|
182
|
+
// Attachment action handler
|
|
183
|
+
const handleAttachmentActionInternal = useCallback(async action => {
|
|
184
|
+
if (action.id === 'gallery') {
|
|
185
|
+
await handleImageAttach();
|
|
186
|
+
} else {
|
|
187
|
+
onAttachmentAction?.(action);
|
|
188
|
+
}
|
|
189
|
+
}, [onAttachmentAction, handleImageAttach]);
|
|
190
|
+
|
|
191
|
+
// Input row padding
|
|
184
192
|
const inputRowStyle = useMemo(() => ({
|
|
185
|
-
paddingBottom: isAttachmentOpen
|
|
186
|
-
}), [insets.bottom, isAttachmentOpen
|
|
193
|
+
paddingBottom: isAttachmentOpen ? 8 : insets.bottom + 12
|
|
194
|
+
}), [insets.bottom, isAttachmentOpen]);
|
|
187
195
|
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
188
196
|
background: 'rgba(131, 137, 157, 0.05)',
|
|
189
197
|
children: [/*#__PURE__*/_jsx(ChatQuickActions, {
|
|
@@ -192,19 +200,47 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
192
200
|
onActionPress: onQuickActionPress,
|
|
193
201
|
renderAction: renderQuickAction,
|
|
194
202
|
renderQuickActions: renderQuickActions
|
|
195
|
-
}), showLinkPreview
|
|
203
|
+
}), showLinkPreview && /*#__PURE__*/_jsx(ChatLinkPreview, {
|
|
196
204
|
metadata: urlMetadata,
|
|
197
205
|
isLoading: isMetadataLoading,
|
|
198
206
|
onDismiss: handleDismissPreview
|
|
199
|
-
})
|
|
207
|
+
}), /*#__PURE__*/_jsx(AttachmentPreview, {
|
|
208
|
+
visible: isImagePreviewVisible,
|
|
209
|
+
attachments: selectedImages.map(img => {
|
|
210
|
+
const isVideo = isVideoFromPicker(img.image);
|
|
211
|
+
return {
|
|
212
|
+
type: isVideo ? 'video' : 'image',
|
|
213
|
+
metadata: {
|
|
214
|
+
path: img.image.path,
|
|
215
|
+
filename: img.image.filename,
|
|
216
|
+
size: img.image.size,
|
|
217
|
+
width: img.image.width,
|
|
218
|
+
height: img.image.height,
|
|
219
|
+
...(isVideo && {
|
|
220
|
+
duration: img.image.duration
|
|
221
|
+
})
|
|
222
|
+
},
|
|
223
|
+
uploadProgress: img.uploadProgress,
|
|
224
|
+
error: img.error,
|
|
225
|
+
isUploading: img.isUploading,
|
|
226
|
+
uploadedUrl: img.uploadedUrl,
|
|
227
|
+
...(isVideo && {
|
|
228
|
+
thumbnailUrl: img.thumbnailUrl
|
|
229
|
+
})
|
|
230
|
+
};
|
|
231
|
+
}),
|
|
232
|
+
onRemove: (type, index) => {
|
|
233
|
+
handleImageRemove(index);
|
|
234
|
+
}
|
|
235
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
200
236
|
row: true,
|
|
201
237
|
alignItems: true,
|
|
202
238
|
paddingH: "0.75rem",
|
|
203
239
|
paddingT: "0.75rem",
|
|
204
240
|
paddingB: "0.75rem",
|
|
205
241
|
style: inputRowStyle,
|
|
206
|
-
children: [hasAttachmentActions
|
|
207
|
-
onPress:
|
|
242
|
+
children: [hasAttachmentActions && /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
243
|
+
onPress: toggleAttachmentVisibility,
|
|
208
244
|
center: true,
|
|
209
245
|
br: "round",
|
|
210
246
|
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
@@ -212,52 +248,28 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
212
248
|
size: 24,
|
|
213
249
|
color: isAttachmentOpen ? KColors.palette.primary.w400 : KColors.palette.gray.w600
|
|
214
250
|
})
|
|
215
|
-
})
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
children: [/*#__PURE__*/_jsx(KContainer.View, {
|
|
228
|
-
marginR: "0.75rem",
|
|
229
|
-
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
230
|
-
name: "chat-suggest-o",
|
|
231
|
-
size: 24,
|
|
232
|
-
color: KColors.gray.normal
|
|
233
|
-
})
|
|
234
|
-
}), /*#__PURE__*/_jsx(TextInput, {
|
|
235
|
-
ref: inputRef,
|
|
236
|
-
placeholder: placeholder,
|
|
237
|
-
placeholderTextColor: KColors.palette.gray.w200,
|
|
238
|
-
value: value,
|
|
239
|
-
onChangeText: onChangeText,
|
|
240
|
-
onFocus: handleInputFocus,
|
|
241
|
-
onBlur: handleInputBlur,
|
|
242
|
-
onContentSizeChange: handleInputContentSizeChange,
|
|
243
|
-
multiline: true,
|
|
244
|
-
blurOnSubmit: false,
|
|
245
|
-
scrollEnabled: true,
|
|
246
|
-
allowFontScaling: false,
|
|
247
|
-
underlineColorAndroid: KColors.transparent,
|
|
248
|
-
selectionColor: KColors.selector,
|
|
249
|
-
textAlignVertical: isMultilineInput ? 'top' : 'center',
|
|
250
|
-
style: [styles.textInput]
|
|
251
|
-
}), renderEmojiNode()]
|
|
252
|
-
})
|
|
251
|
+
}), /*#__PURE__*/_jsx(ChatMessageInput, {
|
|
252
|
+
value: value,
|
|
253
|
+
placeholder: placeholder,
|
|
254
|
+
onChangeText: handleChangeText,
|
|
255
|
+
onFocus: handleInputFocus,
|
|
256
|
+
onBlur: handleInputBlur,
|
|
257
|
+
onContentSizeChange: handleInputContentSizeChange,
|
|
258
|
+
isInputFocused: isInputFocused,
|
|
259
|
+
isMultilineInput: isMultilineInput
|
|
260
|
+
// onEmojiPress={onPressEmoji}
|
|
261
|
+
,
|
|
262
|
+
inputRef: inputRef
|
|
253
263
|
}), /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
254
|
-
onPress: handleSend,
|
|
264
|
+
onPress: isUploadingAttachments ? undefined : handleSend,
|
|
265
|
+
pointerEvents: isUploadingAttachments ? 'none' : 'auto',
|
|
255
266
|
width: 40,
|
|
256
267
|
height: 40,
|
|
257
268
|
center: true,
|
|
258
269
|
br: "round",
|
|
259
|
-
background: KColors.palette.primary.w400,
|
|
270
|
+
background: isUploadingAttachments ? KColors.palette.gray.w400 : KColors.palette.primary.w400,
|
|
260
271
|
marginL: "0.75rem",
|
|
272
|
+
opacity: isUploadingAttachments ? 0.6 : 1,
|
|
261
273
|
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
262
274
|
name: "send",
|
|
263
275
|
provider: "MaterialCommunityIcons",
|
|
@@ -265,16 +277,16 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
265
277
|
color: KColors.white
|
|
266
278
|
})
|
|
267
279
|
})]
|
|
268
|
-
}), hasAttachmentActions
|
|
280
|
+
}), hasAttachmentActions && /*#__PURE__*/_jsx(Reanimated.View, {
|
|
269
281
|
style: [styles.accessorySlot, accessorySlotStyle],
|
|
270
282
|
pointerEvents: isAttachmentOpen ? 'auto' : 'none',
|
|
271
283
|
children: /*#__PURE__*/_jsx(ChatAttachmentPanel, {
|
|
272
284
|
actions: attachmentActions,
|
|
273
285
|
columns: attachmentColumns,
|
|
274
|
-
onActionPress:
|
|
286
|
+
onActionPress: handleAttachmentActionInternal,
|
|
275
287
|
renderAction: renderAttachmentAction
|
|
276
288
|
})
|
|
277
|
-
})
|
|
289
|
+
})]
|
|
278
290
|
});
|
|
279
291
|
});
|
|
280
292
|
ChatComposer.displayName = 'ChatComposer';
|
|
@@ -282,24 +294,6 @@ const styles = StyleSheet.create({
|
|
|
282
294
|
accessorySlot: {
|
|
283
295
|
overflow: 'hidden',
|
|
284
296
|
backgroundColor: KColors.palette.gray.w25
|
|
285
|
-
},
|
|
286
|
-
inputWrapper: {
|
|
287
|
-
overflow: 'hidden'
|
|
288
|
-
},
|
|
289
|
-
inputContainer: {
|
|
290
|
-
borderRadius: KSpacingValue['1.25rem'],
|
|
291
|
-
minHeight: 48,
|
|
292
|
-
paddingVertical: KSpacingValue['0.25rem']
|
|
293
|
-
},
|
|
294
|
-
textInput: {
|
|
295
|
-
flex: 1,
|
|
296
|
-
maxHeight: INPUT_MAX_HEIGHT,
|
|
297
|
-
fontSize: INPUT_FONT_SIZE,
|
|
298
|
-
lineHeight: INPUT_LINE_HEIGHT,
|
|
299
|
-
color: KColors.palette.gray.w900,
|
|
300
|
-
paddingVertical: IS_IOS ? 0 : 4,
|
|
301
|
-
paddingHorizontal: IS_IOS ? 2 : 0,
|
|
302
|
-
includeFontPadding: false
|
|
303
297
|
}
|
|
304
298
|
});
|
|
305
299
|
//# sourceMappingURL=ChatComposer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","useState","Keyboard","Platform","StyleSheet","TextInput","Reanimated","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withTiming","useKeyboardState","useReanimatedKeyboardAnimation","useSafeAreaInsets","KContainer","KImage","KColors","KSpacingValue","ChatQuickActions","ChatAttachmentPanel","ChatLinkPreview","getAttachmentPanelHeight","useLinkPreview","jsx","_jsx","jsxs","_jsxs","ACCESSORY_ANIMATION_MS","ACCESSORY_SETTLE_MS","IS_IOS","OS","INPUT_FONT_SIZE","INPUT_LINE_HEIGHT","INPUT_MAX_HEIGHT","WRAPPED_HEIGHT_THRESHOLD","ChatComposer","value","placeholder","onChangeText","onSend","onPressAttach","onPressEmoji","showQuickActions","quickActions","attachmentActions","onQuickActionPress","onAttachmentAction","renderQuickAction","renderQuickActions","renderAttachmentAction","attachmentColumns","hasAttachmentActions","length","inputRef","isSwitchingToAttachmentRef","isAttachmentOpen","setIsAttachmentOpen","isInputFocused","setIsInputFocused","isInputWrapped","setIsInputWrapped","insets","isVisible","showLinkPreview","metadata","urlMetadata","isLoading","isMetadataLoading","dismiss","handleDismissPreview","isKeyboardVisible","state","keyboardHeight","height","progress","keyboardProgress","panelHeight","attachmentHeightSV","panelHeightSV","switchKeyboardHeightSV","isKeyboardToAttachmentSwitchSV","openAttachment","duration","closeAttachment","finishKeyboardToAttachmentSwitch","current","targetHeight","startHeight","Math","abs","switching","previous","accessorySlotStyle","handleSend","undefined","handleToggleAttachment","blur","handleInputFocus","handleInputBlur","handleInputContentSizeChange","event","nativeEvent","contentSize","isMultilineInput","includes","renderEmojiNode","Touchable","marginR","onPress","children","VectorIcons","name","size","color","gray","normal","inputRowStyle","paddingBottom","bottom","View","background","visible","actions","onActionPress","renderAction","onDismiss","row","alignItems","paddingH","paddingT","paddingB","style","center","br","palette","primary","w400","w600","flex","marginL","styles","inputWrapper","brW","brC","w100","white","paddingL","inputContainer","ref","placeholderTextColor","w200","onFocus","onBlur","onContentSizeChange","multiline","blurOnSubmit","scrollEnabled","allowFontScaling","underlineColorAndroid","transparent","selectionColor","selector","textAlignVertical","textInput","width","provider","accessorySlot","pointerEvents","columns","displayName","create","overflow","backgroundColor","w25","borderRadius","minHeight","paddingVertical","maxHeight","fontSize","lineHeight","w900","paddingHorizontal","includeFontPadding"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatComposer.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useEffect","useMemo","Platform","StyleSheet","Reanimated","useSafeAreaInsets","KContainer","KColors","KImage","IS_IOS","OS","INPUT_LINE_HEIGHT","WRAPPED_HEIGHT_THRESHOLD","ChatQuickActions","ChatAttachmentPanel","ChatLinkPreview","ChatMessageInput","AttachmentPreview","getAttachmentPanelHeight","useLinkPreview","useImageAttachment","useSendAttachment","useChatComposerState","useChatComposerAnimation","useAttachmentSendHandler","isVideoFromPicker","jsx","_jsx","jsxs","_jsxs","ChatComposer","value","placeholder","onChangeText","onSend","onMessageSent","onPressEmoji","_onPressEmoji","showQuickActions","quickActions","attachmentActions","onQuickActionPress","onAttachmentAction","renderQuickAction","renderQuickActions","renderAttachmentAction","attachmentColumns","insets","hasAttachmentActions","length","isVisible","showLinkPreview","metadata","urlMetadata","isLoading","isMetadataLoading","dismiss","handleDismissPreview","selectedImages","isImagePreviewVisible","handleImageAttach","handleImageRemove","clearAllImages","send","sendAttachments","handleSendText","text","previewMetadata","metadataWithText","_capturedText","undefined","handleSend","handleAttachmentSend","textMessage","trim","onSendText","isAttachmentOpen","setIsAttachmentOpen","isInputFocused","setIsInputFocused","setIsInputWrapped","isMultilineInput","inputRef","panelHeight","accessorySlotStyle","toggleAttachmentVisibility","closeAttachment","onAttachmentOpenChange","isUploadingAttachments","some","img","isUploading","hasAttachments","hasText","hasPreview","console","warn","log","previewUrl","url","handleInputFocus","handleInputBlur","handleChangeText","handleInputContentSizeChange","event","height","nativeEvent","contentSize","handleAttachmentActionInternal","action","id","inputRowStyle","paddingBottom","bottom","View","background","children","visible","actions","onActionPress","renderAction","onDismiss","attachments","map","isVideo","image","type","path","filename","size","width","duration","uploadProgress","error","uploadedUrl","thumbnailUrl","onRemove","index","row","alignItems","paddingH","paddingT","paddingB","style","Touchable","onPress","center","br","VectorIcons","name","color","palette","primary","w400","gray","w600","onFocus","onBlur","onContentSizeChange","pointerEvents","marginL","opacity","provider","white","styles","accessorySlot","columns","displayName","create","overflow","backgroundColor","w25"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatComposer.tsx"],"mappings":"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","ignoreList":[]}
|