stream-chat-react-native-core 5.5.1 → 5.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Gallery.js +21 -16
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js +19 -3
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +535 -149
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +6 -0
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelList.js +4 -15
- package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +112 -38
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +16 -20
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +2 -4
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +21 -10
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +14 -12
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +9 -30
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActions.js +21 -19
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +28 -21
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +23 -16
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +39 -27
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendButton.js +1 -1
- package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
- package/lib/commonjs/components/index.js +1 -14
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +134 -86
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/hooks/useTranslatedMessage.js +1 -1
- package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/commonjs/mock-builders/DB/mock.js +2 -2
- package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
- package/lib/commonjs/mock-builders/api/deleteMessage.js +20 -0
- package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -0
- package/lib/commonjs/mock-builders/api/deleteReaction.js +21 -0
- package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -0
- package/lib/commonjs/mock-builders/api/sendReaction.js +21 -0
- package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -0
- package/lib/commonjs/mock-builders/event/connectionChanged.js +2 -0
- package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient.js +40 -51
- package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
- package/lib/commonjs/store/apis/addPendingTask.js +37 -0
- package/lib/commonjs/store/apis/addPendingTask.js.map +1 -0
- package/lib/commonjs/store/apis/deleteMessage.js +26 -0
- package/lib/commonjs/store/apis/deleteMessage.js.map +1 -0
- package/lib/commonjs/store/apis/deletePendingTask.js +22 -0
- package/lib/commonjs/store/apis/deletePendingTask.js.map +1 -0
- package/lib/commonjs/store/apis/deleteReaction.js +30 -0
- package/lib/commonjs/store/apis/deleteReaction.js.map +1 -0
- package/lib/commonjs/store/apis/getChannelMessages.js +3 -3
- package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
- package/lib/commonjs/store/apis/getChannels.js +1 -1
- package/lib/commonjs/store/apis/getChannels.js.map +1 -1
- package/lib/commonjs/store/apis/getPendingTasks.js +26 -0
- package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -0
- package/lib/commonjs/store/apis/index.js +13 -0
- package/lib/commonjs/store/apis/index.js.map +1 -1
- package/lib/commonjs/store/apis/insertReaction.js +28 -0
- package/lib/commonjs/store/apis/insertReaction.js.map +1 -0
- package/lib/commonjs/store/apis/updateMessage.js.map +1 -1
- package/lib/commonjs/store/apis/updateReaction.js.map +1 -1
- package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapMessageToStorable.js +3 -1
- package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapStorableToTask.js +23 -0
- package/lib/commonjs/store/mappers/mapStorableToTask.js.map +1 -0
- package/lib/commonjs/store/mappers/mapTaskToStorable.js +18 -0
- package/lib/commonjs/store/mappers/mapTaskToStorable.js.map +1 -0
- package/lib/commonjs/store/schema.js +11 -0
- package/lib/commonjs/store/schema.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js +24 -0
- package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -0
- package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js +1 -1
- package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createSelectQuery.js +8 -1
- package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js +2 -2
- package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js +1 -1
- package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js.map +1 -1
- package/lib/commonjs/utils/DBSyncManager.js +436 -0
- package/lib/commonjs/utils/DBSyncManager.js.map +1 -0
- package/lib/commonjs/utils/addReactionToLocalState.js +92 -0
- package/lib/commonjs/utils/addReactionToLocalState.js.map +1 -0
- package/lib/commonjs/utils/removeReactionFromLocalState.js +39 -0
- package/lib/commonjs/utils/removeReactionFromLocalState.js.map +1 -0
- package/lib/{module/components/Message → commonjs}/utils/removeReservedFields.js +1 -1
- package/lib/commonjs/utils/removeReservedFields.js.map +1 -0
- package/lib/commonjs/utils/utils.js +9 -3
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Gallery.js +21 -16
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/GalleryImage.js +19 -3
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +535 -149
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +6 -0
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelList.js +4 -15
- package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +112 -38
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +16 -20
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js +2 -4
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/Message/Message.js +21 -10
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageFooter.js +14 -12
- package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js +9 -30
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActions.js +21 -19
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +28 -21
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +23 -16
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +39 -27
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/SendButton.js +1 -1
- package/lib/module/components/MessageInput/SendButton.js.map +1 -1
- package/lib/module/components/index.js +1 -14
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js +2 -2
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +134 -86
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/hooks/useTranslatedMessage.js +1 -1
- package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/module/mock-builders/DB/mock.js +2 -2
- package/lib/module/mock-builders/DB/mock.js.map +1 -1
- package/lib/module/mock-builders/api/deleteMessage.js +20 -0
- package/lib/module/mock-builders/api/deleteMessage.js.map +1 -0
- package/lib/module/mock-builders/api/deleteReaction.js +21 -0
- package/lib/module/mock-builders/api/deleteReaction.js.map +1 -0
- package/lib/module/mock-builders/api/sendReaction.js +21 -0
- package/lib/module/mock-builders/api/sendReaction.js.map +1 -0
- package/lib/module/mock-builders/event/connectionChanged.js +2 -0
- package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
- package/lib/module/store/QuickSqliteClient.js +40 -51
- package/lib/module/store/QuickSqliteClient.js.map +1 -1
- package/lib/module/store/apis/addPendingTask.js +37 -0
- package/lib/module/store/apis/addPendingTask.js.map +1 -0
- package/lib/module/store/apis/deleteMessage.js +26 -0
- package/lib/module/store/apis/deleteMessage.js.map +1 -0
- package/lib/module/store/apis/deletePendingTask.js +22 -0
- package/lib/module/store/apis/deletePendingTask.js.map +1 -0
- package/lib/module/store/apis/deleteReaction.js +30 -0
- package/lib/module/store/apis/deleteReaction.js.map +1 -0
- package/lib/module/store/apis/getChannelMessages.js +3 -3
- package/lib/module/store/apis/getChannelMessages.js.map +1 -1
- package/lib/module/store/apis/getChannels.js +1 -1
- package/lib/module/store/apis/getChannels.js.map +1 -1
- package/lib/module/store/apis/getPendingTasks.js +26 -0
- package/lib/module/store/apis/getPendingTasks.js.map +1 -0
- package/lib/module/store/apis/index.js +13 -0
- package/lib/module/store/apis/index.js.map +1 -1
- package/lib/module/store/apis/insertReaction.js +28 -0
- package/lib/module/store/apis/insertReaction.js.map +1 -0
- package/lib/module/store/apis/updateMessage.js.map +1 -1
- package/lib/module/store/apis/updateReaction.js.map +1 -1
- package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapMessageToStorable.js +3 -1
- package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapStorableToTask.js +23 -0
- package/lib/module/store/mappers/mapStorableToTask.js.map +1 -0
- package/lib/module/store/mappers/mapTaskToStorable.js +18 -0
- package/lib/module/store/mappers/mapTaskToStorable.js.map +1 -0
- package/lib/module/store/schema.js +11 -0
- package/lib/module/store/schema.js.map +1 -1
- package/lib/module/store/sqlite-utils/appendOrderByClause.js +24 -0
- package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -0
- package/lib/module/store/sqlite-utils/createCreateTableQuery.js +1 -1
- package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createSelectQuery.js +8 -1
- package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createUpdateQuery.js +2 -2
- package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createUpsertQuery.js +1 -1
- package/lib/module/store/sqlite-utils/createUpsertQuery.js.map +1 -1
- package/lib/module/utils/DBSyncManager.js +436 -0
- package/lib/module/utils/DBSyncManager.js.map +1 -0
- package/lib/module/utils/addReactionToLocalState.js +92 -0
- package/lib/module/utils/addReactionToLocalState.js.map +1 -0
- package/lib/module/utils/removeReactionFromLocalState.js +39 -0
- package/lib/module/utils/removeReactionFromLocalState.js.map +1 -0
- package/lib/{commonjs/components/Message → module}/utils/removeReservedFields.js +1 -1
- package/lib/module/utils/removeReservedFields.js.map +1 -0
- package/lib/module/utils/utils.js +9 -3
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
- package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +2 -1
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
- package/lib/typescript/components/Message/Message.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -1
- package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +2 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts +2 -1
- package/lib/typescript/components/index.d.ts +1 -2
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -2
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -0
- package/lib/typescript/store/apis/addPendingTask.d.ts +2 -0
- package/lib/typescript/store/apis/deleteMessage.d.ts +4 -0
- package/lib/typescript/store/apis/deletePendingTask.d.ts +3 -0
- package/lib/typescript/store/apis/deleteReaction.d.ts +6 -0
- package/lib/typescript/store/apis/getChannelMessages.d.ts +1 -1
- package/lib/typescript/store/apis/getPendingTasks.d.ts +3 -0
- package/lib/typescript/store/apis/index.d.ts +1 -0
- package/lib/typescript/store/apis/insertReaction.d.ts +6 -0
- package/lib/typescript/store/apis/updateMessage.d.ts +2 -2
- package/lib/typescript/store/apis/updateReaction.d.ts +2 -2
- package/lib/typescript/store/mappers/mapDateTimeToStorable.d.ts +1 -1
- package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +2 -2
- package/lib/typescript/store/mappers/mapStorableToTask.d.ts +2 -0
- package/lib/typescript/store/mappers/mapTaskToStorable.d.ts +26 -0
- package/lib/typescript/store/schema.d.ts +12 -1
- package/lib/typescript/store/sqlite-utils/appendOrderByClause.d.ts +3 -0
- package/lib/typescript/store/sqlite-utils/createSelectQuery.d.ts +1 -1
- package/lib/typescript/store/types.d.ts +21 -0
- package/lib/typescript/types/types.d.ts +3 -1
- package/lib/typescript/utils/DBSyncManager.d.ts +47 -0
- package/lib/typescript/utils/addReactionToLocalState.d.ts +9 -0
- package/lib/typescript/utils/removeReactionFromLocalState.d.ts +8 -0
- package/lib/typescript/{components/Message/utils → utils}/removeReservedFields.d.ts +2 -2
- package/lib/typescript/utils/utils.d.ts +3 -3
- package/package.json +4 -3
- package/src/__tests__/offline-feature.test.js +19 -2
- package/src/__tests__/optimistic-update.test.js +368 -0
- package/src/components/Attachment/Gallery.tsx +5 -1
- package/src/components/Attachment/GalleryImage.tsx +16 -2
- package/src/components/Channel/Channel.tsx +266 -57
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +6 -0
- package/src/components/ChannelList/ChannelList.tsx +2 -10
- package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +0 -1
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +76 -26
- package/src/components/Chat/Chat.tsx +5 -9
- package/src/components/Chat/__tests__/Chat.test.js +1 -1
- package/src/components/Chat/hooks/useCreateChatContext.ts +0 -2
- package/src/components/Message/Message.tsx +18 -2
- package/src/components/Message/MessageSimple/MessageFooter.tsx +2 -1
- package/src/components/Message/hooks/useMessageActionHandlers.ts +10 -21
- package/src/components/Message/hooks/useMessageActions.tsx +10 -5
- package/src/components/MessageInput/FileUploadPreview.tsx +7 -2
- package/src/components/MessageInput/ImageUploadPreview.tsx +7 -3
- package/src/components/MessageInput/MessageInput.tsx +17 -3
- package/src/components/MessageInput/SendButton.tsx +1 -1
- package/src/components/index.ts +1 -2
- package/src/contexts/chatContext/ChatContext.tsx +1 -2
- package/src/contexts/messageInputContext/MessageInputContext.tsx +95 -57
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +29 -3
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +1 -0
- package/src/contexts/messagesContext/MessagesContext.tsx +4 -1
- package/src/hooks/useTranslatedMessage.ts +1 -1
- package/src/mock-builders/DB/mock.ts +2 -2
- package/src/mock-builders/api/deleteMessage.js +18 -0
- package/src/mock-builders/api/deleteReaction.js +19 -0
- package/src/mock-builders/api/sendReaction.tsx +19 -0
- package/src/mock-builders/event/connectionChanged.js +2 -1
- package/src/store/QuickSqliteClient.ts +39 -37
- package/src/store/apis/addPendingTask.ts +24 -0
- package/src/store/apis/deleteMessage.ts +13 -0
- package/src/store/apis/deletePendingTask.ts +12 -0
- package/src/store/apis/deleteReaction.ts +26 -0
- package/src/store/apis/getChannelMessages.ts +1 -1
- package/src/store/apis/getChannels.ts +2 -2
- package/src/store/apis/getPendingTasks.ts +13 -0
- package/src/store/apis/index.ts +1 -0
- package/src/store/apis/insertReaction.ts +29 -0
- package/src/store/apis/updateMessage.ts +2 -2
- package/src/store/apis/updateReaction.ts +2 -2
- package/src/store/mappers/mapDateTimeToStorable.ts +1 -1
- package/src/store/mappers/mapMessageToStorable.ts +8 -2
- package/src/store/mappers/mapStorableToTask.ts +13 -0
- package/src/store/mappers/mapTaskToStorable.ts +7 -0
- package/src/store/schema.ts +25 -1
- package/src/store/sqlite-utils/appendOrderByClause.ts +24 -0
- package/src/store/sqlite-utils/createCreateTableQuery.ts +2 -2
- package/src/store/sqlite-utils/createSelectQuery.ts +4 -1
- package/src/store/sqlite-utils/createUpdateQuery.ts +3 -2
- package/src/store/sqlite-utils/createUpsertQuery.ts +1 -1
- package/src/store/types.ts +28 -0
- package/src/types/types.ts +4 -1
- package/src/utils/DBSyncManager.ts +222 -0
- package/src/utils/addReactionToLocalState.ts +87 -0
- package/src/utils/removeReactionFromLocalState.ts +39 -0
- package/src/{components/Message/utils → utils}/removeReservedFields.ts +7 -3
- package/src/utils/utils.ts +14 -5
- package/src/version.json +1 -1
- package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js +0 -171
- package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
- package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +0 -1
- package/lib/module/components/Chat/hooks/useConnectionRecovered.js +0 -171
- package/lib/module/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
- package/lib/module/components/Message/utils/removeReservedFields.js.map +0 -1
- package/lib/typescript/components/Chat/hooks/useConnectionRecovered.d.ts +0 -10
- package/src/components/Chat/hooks/useConnectionRecovered.ts +0 -92
|
@@ -21,9 +21,9 @@ var _icons = require("../../../icons");
|
|
|
21
21
|
|
|
22
22
|
var _native = require("../../../native");
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _removeReservedFields = require("../../../utils/removeReservedFields");
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _utils = require("../../../utils/utils");
|
|
27
27
|
|
|
28
28
|
var _this = this,
|
|
29
29
|
_jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Message/hooks/useMessageActions.tsx";
|
|
@@ -33,6 +33,8 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
33
33
|
|
|
34
34
|
var channel = _ref.channel,
|
|
35
35
|
client = _ref.client,
|
|
36
|
+
deleteMessageFromContext = _ref.deleteMessage,
|
|
37
|
+
deleteReaction = _ref.deleteReaction,
|
|
36
38
|
enforceUniqueReaction = _ref.enforceUniqueReaction,
|
|
37
39
|
handleBlock = _ref.handleBlock,
|
|
38
40
|
handleCopy = _ref.handleCopy,
|
|
@@ -48,15 +50,14 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
48
50
|
message = _ref.message,
|
|
49
51
|
onThreadSelect = _ref.onThreadSelect,
|
|
50
52
|
openThread = _ref.openThread,
|
|
51
|
-
removeMessage = _ref.removeMessage,
|
|
52
53
|
retrySendMessage = _ref.retrySendMessage,
|
|
53
54
|
selectReaction = _ref.selectReaction,
|
|
55
|
+
sendReaction = _ref.sendReaction,
|
|
54
56
|
setEditingState = _ref.setEditingState,
|
|
55
57
|
setOverlay = _ref.setOverlay,
|
|
56
58
|
setQuotedMessageState = _ref.setQuotedMessageState,
|
|
57
59
|
supportedReactions = _ref.supportedReactions,
|
|
58
|
-
t = _ref.t
|
|
59
|
-
updateMessage = _ref.updateMessage;
|
|
60
|
+
t = _ref.t;
|
|
60
61
|
|
|
61
62
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
62
63
|
_useTheme$theme$color = _useTheme.theme.colors,
|
|
@@ -67,14 +68,15 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
67
68
|
var _useMessageActionHand = (0, _useMessageActionHandlers.useMessageActionHandlers)({
|
|
68
69
|
channel: channel,
|
|
69
70
|
client: client,
|
|
71
|
+
deleteMessage: deleteMessageFromContext,
|
|
72
|
+
deleteReaction: deleteReaction,
|
|
70
73
|
enforceUniqueReaction: enforceUniqueReaction,
|
|
71
74
|
message: message,
|
|
72
|
-
removeMessage: removeMessage,
|
|
73
75
|
retrySendMessage: retrySendMessage,
|
|
76
|
+
sendReaction: sendReaction,
|
|
74
77
|
setEditingState: setEditingState,
|
|
75
78
|
setQuotedMessageState: setQuotedMessageState,
|
|
76
|
-
supportedReactions: supportedReactions
|
|
77
|
-
updateMessage: updateMessage
|
|
79
|
+
supportedReactions: supportedReactions
|
|
78
80
|
}),
|
|
79
81
|
handleDeleteMessage = _useMessageActionHand.handleDeleteMessage,
|
|
80
82
|
handleEditMessage = _useMessageActionHand.handleEditMessage,
|
|
@@ -145,7 +147,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
145
147
|
__self: _this,
|
|
146
148
|
__source: {
|
|
147
149
|
fileName: _jsxFileName,
|
|
148
|
-
lineNumber:
|
|
150
|
+
lineNumber: 152,
|
|
149
151
|
columnNumber: 11
|
|
150
152
|
}
|
|
151
153
|
}),
|
|
@@ -167,7 +169,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
167
169
|
__self: _this,
|
|
168
170
|
__source: {
|
|
169
171
|
fileName: _jsxFileName,
|
|
170
|
-
lineNumber:
|
|
172
|
+
lineNumber: 167,
|
|
171
173
|
columnNumber: 17
|
|
172
174
|
}
|
|
173
175
|
}),
|
|
@@ -226,7 +228,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
226
228
|
__self: _this,
|
|
227
229
|
__source: {
|
|
228
230
|
fileName: _jsxFileName,
|
|
229
|
-
lineNumber:
|
|
231
|
+
lineNumber: 199,
|
|
230
232
|
columnNumber: 11
|
|
231
233
|
}
|
|
232
234
|
}),
|
|
@@ -251,7 +253,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
251
253
|
__self: _this,
|
|
252
254
|
__source: {
|
|
253
255
|
fileName: _jsxFileName,
|
|
254
|
-
lineNumber:
|
|
256
|
+
lineNumber: 213,
|
|
255
257
|
columnNumber: 11
|
|
256
258
|
}
|
|
257
259
|
}),
|
|
@@ -275,7 +277,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
275
277
|
__self: _this,
|
|
276
278
|
__source: {
|
|
277
279
|
fileName: _jsxFileName,
|
|
278
|
-
lineNumber:
|
|
280
|
+
lineNumber: 226,
|
|
279
281
|
columnNumber: 11
|
|
280
282
|
}
|
|
281
283
|
}),
|
|
@@ -297,7 +299,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
297
299
|
__self: _this,
|
|
298
300
|
__source: {
|
|
299
301
|
fileName: _jsxFileName,
|
|
300
|
-
lineNumber:
|
|
302
|
+
lineNumber: 239,
|
|
301
303
|
columnNumber: 11
|
|
302
304
|
}
|
|
303
305
|
}),
|
|
@@ -377,7 +379,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
377
379
|
__self: _this,
|
|
378
380
|
__source: {
|
|
379
381
|
fileName: _jsxFileName,
|
|
380
|
-
lineNumber:
|
|
382
|
+
lineNumber: 292,
|
|
381
383
|
columnNumber: 11
|
|
382
384
|
}
|
|
383
385
|
}),
|
|
@@ -451,7 +453,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
451
453
|
__self: _this,
|
|
452
454
|
__source: {
|
|
453
455
|
fileName: _jsxFileName,
|
|
454
|
-
lineNumber:
|
|
456
|
+
lineNumber: 320,
|
|
455
457
|
columnNumber: 11
|
|
456
458
|
}
|
|
457
459
|
}),
|
|
@@ -473,7 +475,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
473
475
|
__self: _this,
|
|
474
476
|
__source: {
|
|
475
477
|
fileName: _jsxFileName,
|
|
476
|
-
lineNumber:
|
|
478
|
+
lineNumber: 333,
|
|
477
479
|
columnNumber: 11
|
|
478
480
|
}
|
|
479
481
|
}),
|
|
@@ -517,7 +519,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
517
519
|
__self: _this,
|
|
518
520
|
__source: {
|
|
519
521
|
fileName: _jsxFileName,
|
|
520
|
-
lineNumber:
|
|
522
|
+
lineNumber: 348,
|
|
521
523
|
columnNumber: 11
|
|
522
524
|
}
|
|
523
525
|
}),
|
|
@@ -539,7 +541,7 @@ var useMessageActions = function useMessageActions(_ref) {
|
|
|
539
541
|
__self: _this,
|
|
540
542
|
__source: {
|
|
541
543
|
fileName: _jsxFileName,
|
|
542
|
-
lineNumber:
|
|
544
|
+
lineNumber: 361,
|
|
543
545
|
columnNumber: 11
|
|
544
546
|
}
|
|
545
547
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useMessageActions.tsx"],"names":["useMessageActions","channel","client","enforceUniqueReaction","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReactionProp","handleReaction","handleRetry","handleThreadReply","message","onThreadSelect","openThread","removeMessage","retrySendMessage","selectReaction","setEditingState","setOverlay","setQuotedMessageState","supportedReactions","t","updateMessage","theme","colors","accent_blue","accent_red","grey","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","error","type","status","MessageStatusTypes","FAILED","onOpenThread","isMuted","mutedUsers","some","mute","user","id","userID","target","blockUser","action","actionType","icon","title","banned","copyMessage","setClipboardString","text","undefined","deleteMessage","Alert","alert","onPress","style","cancelable","titleStyle","color","editMessage","pinMessage","unpinMessage","flagMessage","reactionType","muteUser","quotedReply","retry","messageWithoutReservedFields","threadReply"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Alert } from 'react-native';\n\nimport { useMessageActionHandlers } from './useMessageActionHandlers';\n\nimport type { ChannelContextValue } from '../../../contexts/channelContext/ChannelContext';\nimport type { ChatContextValue } from '../../../contexts/chatContext/ChatContext';\nimport type { MessageContextValue } from '../../../contexts/messageContext/MessageContext';\nimport type { MessagesContextValue } from '../../../contexts/messagesContext/MessagesContext';\nimport type { OverlayContextValue } from '../../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport type { ThreadContextValue } from '../../../contexts/threadContext/ThreadContext';\nimport type { TranslationContextValue } from '../../../contexts/translationContext/TranslationContext';\nimport {\n Copy,\n CurveLineLeftUp,\n Delete,\n Edit,\n MessageFlag,\n Mute,\n Pin,\n SendUp,\n ThreadReply,\n Unpin,\n UserDelete,\n} from '../../../icons';\nimport { setClipboardString } from '../../../native';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { MessageStatusTypes } from '../../../utils/utils';\n\nimport type { MessageType } from '../../MessageList/hooks/useMessageList';\nimport type { MessageActionType } from '../../MessageOverlay/MessageActionListItem';\nimport { removeReservedFields } from '../utils/removeReservedFields';\n\nexport const useMessageActions = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n client,\n enforceUniqueReaction,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n message,\n onThreadSelect,\n openThread,\n removeMessage,\n retrySendMessage,\n selectReaction,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n supportedReactions,\n t,\n updateMessage,\n}: Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleQuotedReply'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleRetry'\n | 'handleReaction'\n | 'handleThreadReply'\n | 'removeMessage'\n | 'retrySendMessage'\n | 'setEditingState'\n | 'setQuotedMessageState'\n | 'selectReaction'\n | 'supportedReactions'\n | 'updateMessage'\n> &\n Pick<ChannelContextValue<StreamChatGenerics>, 'channel' | 'enforceUniqueReaction'> &\n Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<OverlayContextValue, 'setOverlay'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'openThread'> &\n Pick<MessageContextValue<StreamChatGenerics>, 'message'> &\n Pick<TranslationContextValue, 't'> & {\n onThreadSelect?: (message: MessageType<StreamChatGenerics>) => void;\n }) => {\n const {\n theme: {\n colors: { accent_blue, accent_red, grey },\n },\n } = useTheme();\n const {\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleTogglePinMessage,\n handleToggleReaction,\n } = useMessageActionHandlers({\n channel,\n client,\n enforceUniqueReaction,\n message,\n removeMessage,\n retrySendMessage,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n updateMessage,\n });\n\n const error = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const onOpenThread = () => {\n if (onThreadSelect) {\n onThreadSelect(message);\n }\n if (openThread) {\n openThread(message);\n }\n };\n\n const isMuted = (client.mutedUsers || []).some(\n (mute) => mute.user.id === client.userID && mute.target.id === message.user?.id,\n );\n\n const blockUser: MessageActionType = {\n action: async () => {\n setOverlay('none');\n if (message.user?.id) {\n if (handleBlock) {\n handleBlock(message);\n }\n\n await handleToggleBanUser();\n }\n },\n actionType: 'blockUser',\n icon: <UserDelete pathFill={grey} />,\n title: message.user?.banned ? t('Unblock User') : t('Block User'),\n };\n\n const copyMessage: MessageActionType | undefined =\n setClipboardString !== null\n ? {\n action: () => {\n setOverlay('none');\n if (handleCopy) {\n handleCopy(message);\n }\n setClipboardString(message.text || '');\n },\n actionType: 'copyMessage',\n icon: <Copy pathFill={grey} />,\n title: t('Copy Message'),\n }\n : undefined;\n\n const deleteMessage: MessageActionType = {\n action: () => {\n setOverlay('alert');\n if (message.id) {\n Alert.alert(\n t('Delete Message'),\n t('Are you sure you want to permanently delete this message?'),\n [\n { onPress: () => setOverlay('none'), text: t('Cancel') },\n {\n onPress: async () => {\n setOverlay('none');\n if (handleDelete) {\n handleDelete(message);\n }\n\n await handleDeleteMessage();\n },\n style: 'destructive',\n text: t('Delete'),\n },\n ],\n { cancelable: false },\n );\n }\n },\n actionType: 'deleteMessage',\n icon: <Delete pathFill={accent_red} />,\n title: t('Delete Message'),\n titleStyle: { color: accent_red },\n };\n\n const editMessage: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handleEdit) {\n handleEdit(message);\n }\n handleEditMessage();\n },\n actionType: 'editMessage',\n icon: <Edit pathFill={grey} />,\n title: t('Edit Message'),\n };\n\n const pinMessage: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handlePinMessage) {\n handlePinMessage(message);\n }\n handleTogglePinMessage();\n },\n actionType: 'pinMessage',\n icon: <Pin height={23} pathFill={grey} width={24} />,\n title: t('Pin to Conversation'),\n };\n\n const unpinMessage: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handlePinMessage) {\n handlePinMessage(message);\n }\n handleTogglePinMessage();\n },\n actionType: 'unpinMessage',\n icon: <Unpin pathFill={grey} />,\n title: t('Unpin from Conversation'),\n };\n\n const flagMessage: MessageActionType = {\n action: () => {\n setOverlay('alert');\n if (message.id) {\n Alert.alert(\n t('Flag Message'),\n t('Do you want to send a copy of this message to a moderator for further investigation?'),\n [\n { onPress: () => setOverlay('none'), text: t('Cancel') },\n {\n onPress: async () => {\n try {\n if (handleFlag) {\n handleFlag(message);\n }\n await client.flagMessage(message.id);\n Alert.alert(\n t('Message flagged'),\n t('The message has been reported to a moderator.'),\n [\n {\n onPress: () => setOverlay('none'),\n text: t('Ok'),\n },\n ],\n );\n } catch (_) {\n Alert.alert(\n t('Cannot Flag Message'),\n t(\n 'Flag action failed either due to a network issue or the message is already flagged',\n ),\n [\n {\n onPress: () => setOverlay('none'),\n text: t('Ok'),\n },\n ],\n );\n }\n },\n text: t('Flag'),\n },\n ],\n { cancelable: false },\n );\n }\n },\n actionType: 'flagMessage',\n icon: <MessageFlag pathFill={grey} />,\n title: t('Flag Message'),\n };\n\n const handleReaction = !error\n ? selectReaction\n ? selectReaction(message)\n : async (reactionType: string) => {\n if (handleReactionProp) {\n handleReactionProp(message, reactionType);\n }\n\n await handleToggleReaction(reactionType);\n }\n : undefined;\n\n const muteUser: MessageActionType = {\n action: async () => {\n setOverlay('none');\n if (message.user?.id) {\n if (handleMute) {\n handleMute(message);\n }\n\n await handleToggleMuteUser();\n }\n },\n actionType: 'muteUser',\n icon: <Mute pathFill={grey} />,\n title: isMuted ? t('Unmute User') : t('Mute User'),\n };\n\n const quotedReply: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handleQuotedReply) {\n handleQuotedReply(message);\n }\n handleQuotedReplyMessage();\n },\n actionType: 'quotedReply',\n icon: <CurveLineLeftUp pathFill={grey} />,\n title: t('Reply'),\n };\n\n const retry: MessageActionType = {\n action: async () => {\n setOverlay('none');\n const messageWithoutReservedFields = removeReservedFields(message);\n if (handleRetry) {\n handleRetry(messageWithoutReservedFields);\n }\n\n await handleResendMessage();\n },\n actionType: 'retry',\n icon: <SendUp pathFill={accent_blue} />,\n title: t('Resend'),\n };\n\n const threadReply: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handleThreadReply) {\n handleThreadReply(message);\n }\n onOpenThread();\n },\n actionType: 'threadReply',\n icon: <ThreadReply pathFill={grey} />,\n title: t('Thread Reply'),\n };\n\n return {\n blockUser,\n copyMessage,\n deleteMessage,\n editMessage,\n flagMessage,\n handleReaction,\n muteUser,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["useMessageActions.tsx"],"names":["useMessageActions","channel","client","deleteMessageFromContext","deleteMessage","deleteReaction","enforceUniqueReaction","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReactionProp","handleReaction","handleRetry","handleThreadReply","message","onThreadSelect","openThread","retrySendMessage","selectReaction","sendReaction","setEditingState","setOverlay","setQuotedMessageState","supportedReactions","t","theme","colors","accent_blue","accent_red","grey","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","error","type","status","MessageStatusTypes","FAILED","onOpenThread","isMuted","mutedUsers","some","mute","user","id","userID","target","blockUser","action","actionType","icon","title","banned","copyMessage","setClipboardString","text","undefined","Alert","alert","onPress","style","cancelable","titleStyle","color","editMessage","pinMessage","unpinMessage","flagMessage","reactionType","muteUser","quotedReply","retry","messageWithoutReservedFields","threadReply"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Alert } from 'react-native';\n\nimport { useMessageActionHandlers } from './useMessageActionHandlers';\n\nimport type { ChannelContextValue } from '../../../contexts/channelContext/ChannelContext';\nimport type { ChatContextValue } from '../../../contexts/chatContext/ChatContext';\nimport type { MessageContextValue } from '../../../contexts/messageContext/MessageContext';\nimport type { MessagesContextValue } from '../../../contexts/messagesContext/MessagesContext';\nimport type { OverlayContextValue } from '../../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport type { ThreadContextValue } from '../../../contexts/threadContext/ThreadContext';\nimport type { TranslationContextValue } from '../../../contexts/translationContext/TranslationContext';\nimport {\n Copy,\n CurveLineLeftUp,\n Delete,\n Edit,\n MessageFlag,\n Mute,\n Pin,\n SendUp,\n ThreadReply,\n Unpin,\n UserDelete,\n} from '../../../icons';\nimport { setClipboardString } from '../../../native';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { removeReservedFields } from '../../../utils/removeReservedFields';\nimport { MessageStatusTypes } from '../../../utils/utils';\n\nimport type { MessageType } from '../../MessageList/hooks/useMessageList';\nimport type { MessageActionType } from '../../MessageOverlay/MessageActionListItem';\n\nexport const useMessageActions = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n message,\n onThreadSelect,\n openThread,\n retrySendMessage,\n selectReaction,\n sendReaction,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n supportedReactions,\n t,\n}: Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'deleteMessage'\n | 'sendReaction'\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleQuotedReply'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleRetry'\n | 'handleReaction'\n | 'handleThreadReply'\n | 'removeMessage'\n | 'deleteReaction'\n | 'retrySendMessage'\n | 'setEditingState'\n | 'setQuotedMessageState'\n | 'selectReaction'\n | 'supportedReactions'\n | 'updateMessage'\n> &\n Pick<ChannelContextValue<StreamChatGenerics>, 'channel' | 'enforceUniqueReaction'> &\n Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<OverlayContextValue, 'setOverlay'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'openThread'> &\n Pick<MessageContextValue<StreamChatGenerics>, 'message'> &\n Pick<TranslationContextValue, 't'> & {\n onThreadSelect?: (message: MessageType<StreamChatGenerics>) => void;\n }) => {\n const {\n theme: {\n colors: { accent_blue, accent_red, grey },\n },\n } = useTheme();\n const {\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleTogglePinMessage,\n handleToggleReaction,\n } = useMessageActionHandlers({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n message,\n retrySendMessage,\n sendReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n });\n\n const error = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const onOpenThread = () => {\n if (onThreadSelect) {\n onThreadSelect(message);\n }\n if (openThread) {\n openThread(message);\n }\n };\n\n const isMuted = (client.mutedUsers || []).some(\n (mute) => mute.user.id === client.userID && mute.target.id === message.user?.id,\n );\n\n const blockUser: MessageActionType = {\n action: async () => {\n setOverlay('none');\n if (message.user?.id) {\n if (handleBlock) {\n handleBlock(message);\n }\n\n await handleToggleBanUser();\n }\n },\n actionType: 'blockUser',\n icon: <UserDelete pathFill={grey} />,\n title: message.user?.banned ? t('Unblock User') : t('Block User'),\n };\n\n const copyMessage: MessageActionType | undefined =\n setClipboardString !== null\n ? {\n action: () => {\n setOverlay('none');\n if (handleCopy) {\n handleCopy(message);\n }\n setClipboardString(message.text || '');\n },\n actionType: 'copyMessage',\n icon: <Copy pathFill={grey} />,\n title: t('Copy Message'),\n }\n : undefined;\n\n const deleteMessage: MessageActionType = {\n action: () => {\n setOverlay('alert');\n if (message.id) {\n Alert.alert(\n t('Delete Message'),\n t('Are you sure you want to permanently delete this message?'),\n [\n { onPress: () => setOverlay('none'), text: t('Cancel') },\n {\n onPress: async () => {\n setOverlay('none');\n if (handleDelete) {\n handleDelete(message);\n }\n\n await handleDeleteMessage();\n },\n style: 'destructive',\n text: t('Delete'),\n },\n ],\n { cancelable: false },\n );\n }\n },\n actionType: 'deleteMessage',\n icon: <Delete pathFill={accent_red} />,\n title: t('Delete Message'),\n titleStyle: { color: accent_red },\n };\n\n const editMessage: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handleEdit) {\n handleEdit(message);\n }\n handleEditMessage();\n },\n actionType: 'editMessage',\n icon: <Edit pathFill={grey} />,\n title: t('Edit Message'),\n };\n\n const pinMessage: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handlePinMessage) {\n handlePinMessage(message);\n }\n handleTogglePinMessage();\n },\n actionType: 'pinMessage',\n icon: <Pin height={23} pathFill={grey} width={24} />,\n title: t('Pin to Conversation'),\n };\n\n const unpinMessage: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handlePinMessage) {\n handlePinMessage(message);\n }\n handleTogglePinMessage();\n },\n actionType: 'unpinMessage',\n icon: <Unpin pathFill={grey} />,\n title: t('Unpin from Conversation'),\n };\n\n const flagMessage: MessageActionType = {\n action: () => {\n setOverlay('alert');\n if (message.id) {\n Alert.alert(\n t('Flag Message'),\n t('Do you want to send a copy of this message to a moderator for further investigation?'),\n [\n { onPress: () => setOverlay('none'), text: t('Cancel') },\n {\n onPress: async () => {\n try {\n if (handleFlag) {\n handleFlag(message);\n }\n await client.flagMessage(message.id);\n Alert.alert(\n t('Message flagged'),\n t('The message has been reported to a moderator.'),\n [\n {\n onPress: () => setOverlay('none'),\n text: t('Ok'),\n },\n ],\n );\n } catch (_) {\n Alert.alert(\n t('Cannot Flag Message'),\n t(\n 'Flag action failed either due to a network issue or the message is already flagged',\n ),\n [\n {\n onPress: () => setOverlay('none'),\n text: t('Ok'),\n },\n ],\n );\n }\n },\n text: t('Flag'),\n },\n ],\n { cancelable: false },\n );\n }\n },\n actionType: 'flagMessage',\n icon: <MessageFlag pathFill={grey} />,\n title: t('Flag Message'),\n };\n\n const handleReaction = !error\n ? selectReaction\n ? selectReaction(message)\n : async (reactionType: string) => {\n if (handleReactionProp) {\n handleReactionProp(message, reactionType);\n }\n\n await handleToggleReaction(reactionType);\n }\n : undefined;\n\n const muteUser: MessageActionType = {\n action: async () => {\n setOverlay('none');\n if (message.user?.id) {\n if (handleMute) {\n handleMute(message);\n }\n\n await handleToggleMuteUser();\n }\n },\n actionType: 'muteUser',\n icon: <Mute pathFill={grey} />,\n title: isMuted ? t('Unmute User') : t('Mute User'),\n };\n\n const quotedReply: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handleQuotedReply) {\n handleQuotedReply(message);\n }\n handleQuotedReplyMessage();\n },\n actionType: 'quotedReply',\n icon: <CurveLineLeftUp pathFill={grey} />,\n title: t('Reply'),\n };\n\n const retry: MessageActionType = {\n action: async () => {\n setOverlay('none');\n const messageWithoutReservedFields = removeReservedFields(message);\n if (handleRetry) {\n handleRetry(messageWithoutReservedFields);\n }\n\n await handleResendMessage();\n },\n actionType: 'retry',\n icon: <SendUp pathFill={accent_blue} />,\n title: t('Resend'),\n };\n\n const threadReply: MessageActionType = {\n action: () => {\n setOverlay('none');\n if (handleThreadReply) {\n handleThreadReply(message);\n }\n onOpenThread();\n },\n actionType: 'threadReply',\n icon: <ThreadReply pathFill={grey} />,\n title: t('Thread Reply'),\n };\n\n return {\n blockUser,\n copyMessage,\n deleteMessage,\n editMessage,\n flagMessage,\n handleReaction,\n muteUser,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n };\n};\n"]}
|
|
@@ -17,6 +17,8 @@ var _reactNative = require("react-native");
|
|
|
17
17
|
|
|
18
18
|
var _UploadProgressIndicator = require("./UploadProgressIndicator");
|
|
19
19
|
|
|
20
|
+
var _contexts = require("../../contexts");
|
|
21
|
+
|
|
20
22
|
var _MessageInputContext = require("../../contexts/messageInputContext/MessageInputContext");
|
|
21
23
|
|
|
22
24
|
var _MessagesContext = require("../../contexts/messagesContext/MessagesContext");
|
|
@@ -130,7 +132,7 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
130
132
|
__self: _this,
|
|
131
133
|
__source: {
|
|
132
134
|
fileName: _jsxFileName,
|
|
133
|
-
lineNumber:
|
|
135
|
+
lineNumber: 106,
|
|
134
136
|
columnNumber: 5
|
|
135
137
|
}
|
|
136
138
|
}, _react["default"].createElement(_Warning.Warning, {
|
|
@@ -141,7 +143,7 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
141
143
|
__self: _this,
|
|
142
144
|
__source: {
|
|
143
145
|
fileName: _jsxFileName,
|
|
144
|
-
lineNumber:
|
|
146
|
+
lineNumber: 107,
|
|
145
147
|
columnNumber: 7
|
|
146
148
|
}
|
|
147
149
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -151,7 +153,7 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
151
153
|
__self: _this,
|
|
152
154
|
__source: {
|
|
153
155
|
fileName: _jsxFileName,
|
|
154
|
-
lineNumber:
|
|
156
|
+
lineNumber: 113,
|
|
155
157
|
columnNumber: 7
|
|
156
158
|
}
|
|
157
159
|
}, t('File type not supported'))) : _react["default"].createElement(_WritingDirectionAwareText.WritingDirectionAwareText, {
|
|
@@ -161,7 +163,7 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
161
163
|
__self: _this,
|
|
162
164
|
__source: {
|
|
163
165
|
fileName: _jsxFileName,
|
|
164
|
-
lineNumber:
|
|
166
|
+
lineNumber: 118,
|
|
165
167
|
columnNumber: 5
|
|
166
168
|
}
|
|
167
169
|
}, item.file.duration || (0, _FileAttachment.getFileSizeDisplayText)(item.file.size));
|
|
@@ -169,6 +171,7 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
169
171
|
|
|
170
172
|
var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props) {
|
|
171
173
|
var AudioAttachment = props.AudioAttachment,
|
|
174
|
+
enableOfflineSupport = props.enableOfflineSupport,
|
|
172
175
|
FileAttachmentIcon = props.FileAttachmentIcon,
|
|
173
176
|
fileUploads = props.fileUploads,
|
|
174
177
|
removeFile = props.removeFile,
|
|
@@ -243,7 +246,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
243
246
|
|
|
244
247
|
var index = _ref2.index,
|
|
245
248
|
item = _ref2.item;
|
|
246
|
-
var indicatorType = (0, _utils.getIndicatorTypeForFileState)(item.state);
|
|
249
|
+
var indicatorType = (0, _utils.getIndicatorTypeForFileState)(item.state, enableOfflineSupport);
|
|
247
250
|
var lastIndexOfDot = item.file.name.lastIndexOf('.');
|
|
248
251
|
return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_UploadProgressIndicator.UploadProgressIndicator, {
|
|
249
252
|
action: function action() {
|
|
@@ -256,7 +259,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
256
259
|
__self: _this,
|
|
257
260
|
__source: {
|
|
258
261
|
fileName: _jsxFileName,
|
|
259
|
-
lineNumber:
|
|
262
|
+
lineNumber: 223,
|
|
260
263
|
columnNumber: 9
|
|
261
264
|
}
|
|
262
265
|
}, (_item$file$type = item.file.type) != null && _item$file$type.startsWith('audio/') && (0, _native.isAudioPackageAvailable)() ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -266,7 +269,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
266
269
|
__self: _this,
|
|
267
270
|
__source: {
|
|
268
271
|
fileName: _jsxFileName,
|
|
269
|
-
lineNumber:
|
|
272
|
+
lineNumber: 231,
|
|
270
273
|
columnNumber: 13
|
|
271
274
|
}
|
|
272
275
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -281,7 +284,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
281
284
|
__self: _this,
|
|
282
285
|
__source: {
|
|
283
286
|
fileName: _jsxFileName,
|
|
284
|
-
lineNumber:
|
|
287
|
+
lineNumber: 237,
|
|
285
288
|
columnNumber: 15
|
|
286
289
|
}
|
|
287
290
|
}, _react["default"].createElement(AudioAttachment, {
|
|
@@ -293,7 +296,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
293
296
|
__self: _this,
|
|
294
297
|
__source: {
|
|
295
298
|
fileName: _jsxFileName,
|
|
296
|
-
lineNumber:
|
|
299
|
+
lineNumber: 254,
|
|
297
300
|
columnNumber: 17
|
|
298
301
|
}
|
|
299
302
|
}))) : _react["default"].createElement(_reactNative.View, {
|
|
@@ -306,7 +309,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
306
309
|
__self: _this,
|
|
307
310
|
__source: {
|
|
308
311
|
fileName: _jsxFileName,
|
|
309
|
-
lineNumber:
|
|
312
|
+
lineNumber: 264,
|
|
310
313
|
columnNumber: 13
|
|
311
314
|
}
|
|
312
315
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -314,7 +317,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
314
317
|
__self: _this,
|
|
315
318
|
__source: {
|
|
316
319
|
fileName: _jsxFileName,
|
|
317
|
-
lineNumber:
|
|
320
|
+
lineNumber: 279,
|
|
318
321
|
columnNumber: 15
|
|
319
322
|
}
|
|
320
323
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -322,7 +325,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
322
325
|
__self: _this,
|
|
323
326
|
__source: {
|
|
324
327
|
fileName: _jsxFileName,
|
|
325
|
-
lineNumber:
|
|
328
|
+
lineNumber: 280,
|
|
326
329
|
columnNumber: 17
|
|
327
330
|
}
|
|
328
331
|
}, _react["default"].createElement(FileAttachmentIcon, {
|
|
@@ -330,7 +333,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
330
333
|
__self: _this,
|
|
331
334
|
__source: {
|
|
332
335
|
fileName: _jsxFileName,
|
|
333
|
-
lineNumber:
|
|
336
|
+
lineNumber: 281,
|
|
334
337
|
columnNumber: 19
|
|
335
338
|
}
|
|
336
339
|
})), _react["default"].createElement(_reactNative.View, {
|
|
@@ -338,7 +341,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
338
341
|
__self: _this,
|
|
339
342
|
__source: {
|
|
340
343
|
fileName: _jsxFileName,
|
|
341
|
-
lineNumber:
|
|
344
|
+
lineNumber: 283,
|
|
342
345
|
columnNumber: 17
|
|
343
346
|
}
|
|
344
347
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -354,7 +357,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
354
357
|
__self: _this,
|
|
355
358
|
__source: {
|
|
356
359
|
fileName: _jsxFileName,
|
|
357
|
-
lineNumber:
|
|
360
|
+
lineNumber: 284,
|
|
358
361
|
columnNumber: 19
|
|
359
362
|
}
|
|
360
363
|
}, item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)), indicatorType !== null && _react["default"].createElement(UnsupportedFileTypeOrFileSizeIndicator, {
|
|
@@ -363,7 +366,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
363
366
|
__self: _this,
|
|
364
367
|
__source: {
|
|
365
368
|
fileName: _jsxFileName,
|
|
366
|
-
lineNumber:
|
|
369
|
+
lineNumber: 304,
|
|
367
370
|
columnNumber: 21
|
|
368
371
|
}
|
|
369
372
|
})))), _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -377,7 +380,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
377
380
|
__self: _this,
|
|
378
381
|
__source: {
|
|
379
382
|
fileName: _jsxFileName,
|
|
380
|
-
lineNumber:
|
|
383
|
+
lineNumber: 313,
|
|
381
384
|
columnNumber: 11
|
|
382
385
|
}
|
|
383
386
|
}, _react["default"].createElement(_Close.Close, {
|
|
@@ -385,7 +388,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
385
388
|
__self: _this,
|
|
386
389
|
__source: {
|
|
387
390
|
fileName: _jsxFileName,
|
|
388
|
-
lineNumber:
|
|
391
|
+
lineNumber: 320,
|
|
389
392
|
columnNumber: 13
|
|
390
393
|
}
|
|
391
394
|
}))));
|
|
@@ -423,7 +426,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
423
426
|
__self: _this,
|
|
424
427
|
__source: {
|
|
425
428
|
fileName: _jsxFileName,
|
|
426
|
-
lineNumber:
|
|
429
|
+
lineNumber: 336,
|
|
427
430
|
columnNumber: 5
|
|
428
431
|
}
|
|
429
432
|
}) : null;
|
|
@@ -440,6 +443,9 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
440
443
|
var MemoizedFileUploadPreview = _react["default"].memo(FileUploadPreviewWithContext, areEqual);
|
|
441
444
|
|
|
442
445
|
var FileUploadPreview = function FileUploadPreview(props) {
|
|
446
|
+
var _useChatContext = (0, _contexts.useChatContext)(),
|
|
447
|
+
enableOfflineSupport = _useChatContext.enableOfflineSupport;
|
|
448
|
+
|
|
443
449
|
var _useMessageInputConte = (0, _MessageInputContext.useMessageInputContext)(),
|
|
444
450
|
fileUploads = _useMessageInputConte.fileUploads,
|
|
445
451
|
removeFile = _useMessageInputConte.removeFile,
|
|
@@ -456,12 +462,13 @@ var FileUploadPreview = function FileUploadPreview(props) {
|
|
|
456
462
|
fileUploads: fileUploads,
|
|
457
463
|
removeFile: removeFile,
|
|
458
464
|
setFileUploads: setFileUploads,
|
|
459
|
-
uploadFile: uploadFile
|
|
465
|
+
uploadFile: uploadFile,
|
|
466
|
+
enableOfflineSupport: enableOfflineSupport
|
|
460
467
|
}, props, {
|
|
461
468
|
__self: _this,
|
|
462
469
|
__source: {
|
|
463
470
|
fileName: _jsxFileName,
|
|
464
|
-
lineNumber:
|
|
471
|
+
lineNumber: 401,
|
|
465
472
|
columnNumber: 5
|
|
466
473
|
}
|
|
467
474
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileUploadPreview.tsx"],"names":["FILE_PREVIEW_HEIGHT","WARNING_ICON_SIZE","styles","StyleSheet","create","dismiss","borderRadius","height","position","right","top","width","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","paddingLeft","paddingRight","fileContentContainer","fileIcon","alignItems","alignSelf","filenameText","fontSize","fontWeight","paddingHorizontal","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","unsupportedFile","unsupportedFileText","marginHorizontal","warningIconStyle","marginTop","UnsupportedFileTypeOrFileSizeIndicator","indicatorType","item","theme","colors","accent_red","grey","grey_dark","messageInput","fileUploadPreview","t","ProgressIndicatorTypes","NOT_SUPPORTED","color","file","duration","size","FileUploadPreviewWithContext","props","AudioAttachment","FileAttachmentIcon","fileUploads","removeFile","setFileUploads","uploadFile","flatListRef","flatListWidth","setFlatListWidth","onLoad","index","prevFileUploads","map","fileUpload","id","onProgress","currentTime","hasEnd","progress","onPlayPause","pausedStatus","paused","black","grey_gainsboro","grey_whisper","white","audioAttachmentFileContainer","renderItem","state","lastIndexOfDot","name","lastIndexOf","newFile","type","startsWith","FileState","UPLOADED","length","backgroundColor","borderColor","I18nManager","isRTL","writingDirection","slice","fileUploadsLength","current","setTimeout","scrollToEnd","_","offset","nativeEvent","layout","areEqual","prevProps","nextProps","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","displayName"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AAKA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;AAEA,IAAMA,mBAAmB,GAAG,EAA5B;AACA,IAAMC,iBAAiB,GAAG,EAA1B;;AAEA,IAAMC,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,YAAY,EAAE,EADP;AAEPC,IAAAA,MAAM,EAAE,EAFD;AAGPC,IAAAA,QAAQ,EAAE,UAHH;AAIPC,IAAAA,KAAK,EAAE,CAJA;AAKPC,IAAAA,GAAG,EAAE,CALE;AAMPC,IAAAA,KAAK,EAAE;AANA,GADsB;AAS/BC,EAAAA,aAAa,EAAE;AACbN,IAAAA,YAAY,EAAE,EADD;AAEbO,IAAAA,WAAW,EAAE,CAFA;AAGbC,IAAAA,aAAa,EAAE,KAHF;AAIbP,IAAAA,MAAM,EAAEP,mBAJK;AAKbe,IAAAA,cAAc,EAAE,eALH;AAMbC,IAAAA,YAAY,EAAE,CAND;AAObC,IAAAA,WAAW,EAAE,CAPA;AAQbC,IAAAA,YAAY,EAAE;AARD,GATgB;AAmB/BC,EAAAA,oBAAoB,EAAE;AAAEL,IAAAA,aAAa,EAAE;AAAjB,GAnBS;AAoB/BM,EAAAA,QAAQ,EAAE;AACRC,IAAAA,UAAU,EAAE,QADJ;AAERC,IAAAA,SAAS,EAAE,QAFH;AAGRP,IAAAA,cAAc,EAAE;AAHR,GApBqB;AAyB/BQ,EAAAA,YAAY,EAAE;AACZC,IAAAA,QAAQ,EAAE,EADE;AAEZC,IAAAA,UAAU,EAAE,MAFA;AAGZC,IAAAA,iBAAiB,EAAE;AAHP,GAzBiB;AA8B/BC,EAAAA,YAAY,EAAE;AACZH,IAAAA,QAAQ,EAAE,EADE;AAEZE,IAAAA,iBAAiB,EAAE;AAFP,GA9BiB;AAkC/BE,EAAAA,iBAAiB,EAAE;AACjBrB,IAAAA,MAAM,EAAE,MADS;AAEjBQ,IAAAA,cAAc,EAAE;AAFC,GAlCY;AAsC/Bc,EAAAA,QAAQ,EAAE;AAAEb,IAAAA,YAAY,EAAE,EAAhB;AAAoBc,IAAAA,SAAS,EAAE9B,mBAAmB,GAAG,GAAtB,GAA4B;AAA3D,GAtCqB;AAuC/B+B,EAAAA,OAAO,EAAE;AACPzB,IAAAA,YAAY,EAAE,EADP;AAEP0B,IAAAA,UAAU,EAAE,CAFL;AAGPC,IAAAA,WAAW,EAAE;AAHN,GAvCsB;AA4C/BC,EAAAA,eAAe,EAAE;AACfpB,IAAAA,aAAa,EAAE,KADA;AAEfG,IAAAA,WAAW,EAAE;AAFE,GA5Cc;AAgD/BkB,EAAAA,mBAAmB,EAAE;AACnBX,IAAAA,QAAQ,EAAE,EADS;AAEnBY,IAAAA,gBAAgB,EAAE;AAFC,GAhDU;AAoD/BC,EAAAA,gBAAgB,EAAE;AAChB/B,IAAAA,YAAY,EAAE,EADE;AAEhBgC,IAAAA,SAAS,EAAE;AAFK;AApDa,CAAlB,CAAf;;AA0DA,IAAMC,sCAAsC,GAAG,SAAzCA,sCAAyC,OAMzC;AAAA,MALJC,aAKI,QALJA,aAKI;AAAA,MAJJC,IAII,QAJJA,IAII;;AACJ,kBAOI,6BAPJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,UAFd,yBAEcA,UAFd;AAAA,MAE0BC,IAF1B,yBAE0BA,IAF1B;AAAA,MAEgCC,SAFhC,yBAEgCA,SAFhC;AAAA,MAI2BnB,YAJ3B,mBAGIoB,YAHJ,CAIMC,iBAJN,CAI2BrB,YAJ3B;;AASA,8BAAc,gDAAd;AAAA,MAAQsB,CAAR,yBAAQA,CAAR;;AAEA,SAAOT,aAAa,KAAKU,8BAAuBC,aAAzC,GACL,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAEjD,MAAM,CAACgC,eAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,gBAAD;AACE,IAAA,MAAM,EAAEjC,iBADV;AAEE,IAAA,QAAQ,EAAE2C,UAFZ;AAGE,IAAA,KAAK,EAAE1C,MAAM,CAACmC,gBAHhB;AAIE,IAAA,KAAK,EAAEpC,iBAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAOE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACC,MAAM,CAACiC,mBAAR,EAA6B;AAAEiB,MAAAA,KAAK,EAAEN;AAAT,KAA7B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGG,CAAC,CAAC,yBAAD,CADJ,CAPF,CADK,GAaL,gCAAC,oDAAD;AAA2B,IAAA,KAAK,EAAE,CAAC/C,MAAM,CAACyB,YAAR,EAAsB;AAAEyB,MAAAA,KAAK,EAAEP;AAAT,KAAtB,EAAuClB,YAAvC,CAAlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGc,IAAI,CAACY,IAAL,CAAUC,QAAV,IAAsB,4CAAuBb,IAAI,CAACY,IAAL,CAAUE,IAAjC,CADzB,CAbF;AAiBD,CAnCD;;AA6CA,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CAGnCC,KAHmC,EAIhC;AACH,MACEC,eADF,GAOID,KAPJ,CACEC,eADF;AAAA,MAEEC,kBAFF,GAOIF,KAPJ,CAEEE,kBAFF;AAAA,MAGEC,WAHF,GAOIH,KAPJ,CAGEG,WAHF;AAAA,MAIEC,UAJF,GAOIJ,KAPJ,CAIEI,UAJF;AAAA,MAKEC,cALF,GAOIL,KAPJ,CAKEK,cALF;AAAA,MAMEC,UANF,GAOIN,KAPJ,CAMEM,UANF;AASA,MAAMC,WAAW,GAAG,mBAAoC,IAApC,CAApB;;AACA,kBAA0C,qBAAS,CAAT,CAA1C;AAAA;AAAA,MAAOC,aAAP;AAAA,MAAsBC,gBAAtB;;AAGA,MAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD,EAAgBd,QAAhB,EAAqC;AAClDQ,IAAAA,cAAc,CAAC,UAACO,eAAD;AAAA,aACbA,eAAe,CAACC,GAAhB,CAAoB,UAACC,UAAD;AAAA,6CACfA,UADe;AAElBjB,UAAAA,QAAQ,EAAEiB,UAAU,CAACC,EAAX,KAAkBJ,KAAlB,GAA0Bd,QAA1B,GAAqCiB,UAAU,CAACjB;AAFxC;AAAA,OAApB,CADa;AAAA,KAAD,CAAd;AAMD,GAPD;;AAUA,MAAMmB,UAAU,GAAG,SAAbA,UAAa,CAACL,KAAD,EAAgBM,WAAhB,EAAsCC,MAAtC,EAA2D;AAC5Eb,IAAAA,cAAc,CAAC,UAACO,eAAD;AAAA,aACbA,eAAe,CAACC,GAAhB,CAAoB,UAACC,UAAD;AAAA,6CACfA,UADe;AAElBK,UAAAA,QAAQ,EACNL,UAAU,CAACC,EAAX,KAAkBJ,KAAlB,GACIO,MAAM,GACJ,CADI,GAEJD,WAAW,GACXA,WAAW,GAAIH,UAAU,CAACjB,QADf,GAEX,CALN,GAMIiB,UAAU,CAACK;AATC;AAAA,OAApB,CADa;AAAA,KAAD,CAAd;AAaD,GAdD;;AAiBA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACT,KAAD,EAAgBU,YAAhB,EAA2C;AAC7D,QAAIA,YAAY,KAAK,KAArB,EAA4B;AAE1BhB,MAAAA,cAAc,CAAC,UAACO,eAAD;AAAA,eACbA,eAAe,CAACC,GAAhB,CAAoB,UAACC,UAAD;AAAA,+CACfA,UADe;AAElBQ,YAAAA,MAAM,EAAER,UAAU,CAACC,EAAX,KAAkBJ,KAAlB,GAA0B,KAA1B,GAAkC;AAFxB;AAAA,SAApB,CADa;AAAA,OAAD,CAAd;AAMD,KARD,MAQO;AAELN,MAAAA,cAAc,CAAC,UAACO,eAAD;AAAA,eACbA,eAAe,CAACC,GAAhB,CAAoB,UAACC,UAAD;AAAA,+CACfA,UADe;AAElBQ,YAAAA,MAAM,EAAE;AAFU;AAAA,SAApB,CADa;AAAA,OAAD,CAAd;AAMD;AACF,GAlBD;;AAoBA,mBAeI,6BAfJ;AAAA,oCACErC,KADF;AAAA,+CAEIC,MAFJ;AAAA,MAEcqC,KAFd,yBAEcA,KAFd;AAAA,MAEqBlC,SAFrB,yBAEqBA,SAFrB;AAAA,MAEgCmC,cAFhC,yBAEgCA,cAFhC;AAAA,MAEgDC,YAFhD,yBAEgDA,YAFhD;AAAA,MAE8DC,KAF9D,yBAE8DA,KAF9D;AAAA,+CAGIpC,YAHJ,CAIMC,iBAJN;AAAA,MAKQoC,4BALR,yBAKQA,4BALR;AAAA,MAMQ/E,OANR,yBAMQA,OANR;AAAA,MAOQO,aAPR,yBAOQA,aAPR;AAAA,MAQQO,oBARR,yBAQQA,oBARR;AAAA,MASQI,YATR,yBASQA,YATR;AAAA,MAUQK,iBAVR,yBAUQA,iBAVR;AAAA,MAWQC,QAXR,yBAWQA,QAXR;;AAiBA,MAAMwD,UAAU,GAAG,SAAbA,UAAa,QAA0D;AAAA;;AAAA,QAAvDjB,KAAuD,SAAvDA,KAAuD;AAAA,QAAhD3B,IAAgD,SAAhDA,IAAgD;AAC3E,QAAMD,aAAa,GAAG,yCAA6BC,IAAI,CAAC6C,KAAlC,CAAtB;AAEA,QAAMC,cAAc,GAAG9C,IAAI,CAACY,IAAL,CAAUmC,IAAV,CAAeC,WAAf,CAA2B,GAA3B,CAAvB;AAEA,WACE,kEACE,gCAAC,gDAAD;AACE,MAAA,MAAM,EAAE,kBAAM;AACZ1B,QAAAA,UAAU,CAAC;AAAE2B,UAAAA,OAAO,EAAEjD;AAAX,SAAD,CAAV;AACD,OAHH;AAIE,MAAA,KAAK,EAAEvC,MAAM,CAAC6B,OAJhB;AAKE,MAAA,IAAI,EAAES,aALR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAOG,mBAAAC,IAAI,CAACY,IAAL,CAAUsC,IAAV,6BAAgBC,UAAhB,CAA2B,QAA3B,KAAwC,sCAAxC,GACC,gCAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACL;AAAE5E,QAAAA,YAAY,EAAEyB,IAAI,CAAC6C,KAAL,KAAeO,iBAAUC,QAAzB,GAAoC,CAApC,GAAwC;AAAxD,OADK,EAELV,4BAFK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAME,gCAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACLlF,MAAM,CAACU,aADF,EAELwD,KAAK,KAAKR,WAAW,CAACmC,MAAZ,GAAqB,CAA/B,GACI;AACE/E,QAAAA,YAAY,EAAE;AADhB,OADJ,GAII,EANC,EAOL;AACEgF,QAAAA,eAAe,EAAEb,KADnB;AAEEc,QAAAA,WAAW,EAAEf,YAFf;AAGEvE,QAAAA,KAAK,EAAE,CAAC;AAHV,OAPK,EAYLC,aAZK,CADT;AAeE,MAAA,MAAM,EAAC,iCAfT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAiBE,gCAAC,eAAD;AACE,MAAA,IAAI,EAAE6B,IADR;AAEE,MAAA,MAAM,EAAE0B,MAFV;AAGE,MAAA,WAAW,EAAEU,WAHf;AAIE,MAAA,UAAU,EAAEJ,UAJd;AAKE,MAAA,MAAM,EAAC,iCALT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAjBF,CANF,CADD,GAkCC,gCAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACLvE,MAAM,CAACU,aADF,EAELwD,KAAK,KAAKR,WAAW,CAACmC,MAAZ,GAAqB,CAA/B,GACI;AACE/E,QAAAA,YAAY,EAAE;AADhB,OADJ,GAII,EANC,EAOL;AACEiF,QAAAA,WAAW,EAAEf,YADf;AAEEvE,QAAAA,KAAK,EAAEsD,aAAa,GAAG;AAFzB,OAPK,EAWLrD,aAXK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAeE,gCAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,CAACV,MAAM,CAACiB,oBAAR,EAA8BA,oBAA9B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,iBAAD;AAAM,MAAA,KAAK,EAAEjB,MAAM,CAACkB,QAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,kBAAD;AAAoB,MAAA,QAAQ,EAAEqB,IAAI,CAACY,IAAL,CAAUsC,IAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MADF,CADF,EAIE,gCAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,CAACzF,MAAM,CAAC0B,iBAAR,EAA2BA,iBAA3B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,iBAAD;AACE,MAAA,aAAa,EAAE,CADjB;AAEE,MAAA,KAAK,EAAE,CACL1B,MAAM,CAACqB,YADF,EAEL;AACE6B,QAAAA,KAAK,EAAE4B,KADT;AAEErE,QAAAA,KAAK,EACHsD,aAAa,GACb,EADA,GAEA,EAFA,GAGA,EAHA,GAIA;AAPJ,OAFK,EAWLiC,yBAAYC,KAAZ,GAAoB;AAAEC,QAAAA,gBAAgB,EAAE;AAApB,OAApB,GAAkD;AAAEA,QAAAA,gBAAgB,EAAE;AAApB,OAX7C,EAYL7E,YAZK,CAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAiBGkB,IAAI,CAACY,IAAL,CAAUmC,IAAV,CAAea,KAAf,CAAqB,CAArB,EAAwB,EAAxB,IAA8B,KAA9B,GAAsC5D,IAAI,CAACY,IAAL,CAAUmC,IAAV,CAAea,KAAf,CAAqBd,cAArB,CAjBzC,CADF,EAoBG/C,aAAa,KAAK,IAAlB,IACC,gCAAC,sCAAD;AACE,MAAA,aAAa,EAAEA,aADjB;AAEE,MAAA,IAAI,EAAEC,IAFR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MArBJ,CAJF,CAfF,CAzCJ,EA0FE,gCAAC,6BAAD;AACE,MAAA,OAAO,EAAE,mBAAM;AACboB,QAAAA,UAAU,CAACpB,IAAI,CAAC+B,EAAN,CAAV;AACD,OAHH;AAIE,MAAA,KAAK,EAAE,CAACtE,MAAM,CAACG,OAAR,EAAiB;AAAE2F,QAAAA,eAAe,EAAEf;AAAnB,OAAjB,EAAsD5E,OAAtD,CAJT;AAKE,MAAA,MAAM,EAAC,4BALT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAOE,gCAAC,YAAD;AAAO,MAAA,QAAQ,EAAEyC,SAAjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAPF,CA1FF,CADF,CADF;AAwGD,GA7GD;;AA+GA,MAAMwD,iBAAiB,GAAG1C,WAAW,CAACmC,MAAtC;AAEA,wBAAU,YAAM;AACd,QAAIO,iBAAiB,IAAItC,WAAW,CAACuC,OAArC,EAA8C;AAC5CC,MAAAA,UAAU,CAAC;AAAA;;AAAA,uCAAMxC,WAAW,CAACuC,OAAlB,qBAAM,qBAAqBE,WAArB,EAAN;AAAA,OAAD,EAA2C,CAA3C,CAAV;AACD;AACF,GAJD,EAIG,CAACH,iBAAD,CAJH;AAMA,SAAOA,iBAAiB,GACtB,gCAAC,qBAAD;AACE,IAAA,IAAI,EAAE1C,WADR;AAEE,IAAA,aAAa,EAAE,uBAAC8C,CAAD,EAAItC,KAAJ;AAAA,aAAe;AAC5BA,QAAAA,KAAK,EAALA,KAD4B;AAE5B2B,QAAAA,MAAM,EAAE/F,mBAAmB,GAAG,CAFF;AAG5B2G,QAAAA,MAAM,EAAE,CAAC3G,mBAAmB,GAAG,CAAvB,IAA4BoE;AAHR,OAAf;AAAA,KAFjB;AAOE,IAAA,YAAY,EAAE,sBAAC3B,IAAD;AAAA,kBAAaA,IAAI,CAAC+B,EAAlB;AAAA,KAPhB;AAQE,IAAA,QAAQ,EAAE,yBAIJ;AAAA,UAFQ7D,KAER,SAHJiG,WAGI,CAFFC,MAEE,CAFQlG,KAER;AACJuD,MAAAA,gBAAgB,CAACvD,KAAD,CAAhB;AACD,KAdH;AAeE,IAAA,GAAG,EAAEqD,WAfP;AAgBE,IAAA,UAAU,EAAEqB,UAhBd;AAiBE,IAAA,KAAK,EAAE,CAACnF,MAAM,CAAC2B,QAAR,EAAkBA,QAAlB,CAjBT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADsB,GAoBpB,IApBJ;AAqBD,CA9ND;;AAgOA,IAAMiF,QAAQ,GAAG,SAAXA,QAAW,CACfC,SADe,EAEfC,SAFe,EAGZ;AACH,MAAqB3C,eAArB,GAAyC0C,SAAzC,CAAQnD,WAAR;AACA,MAAqBqD,eAArB,GAAyCD,SAAzC,CAAQpD,WAAR;AAEA,SACES,eAAe,CAAC0B,MAAhB,KAA2BkB,eAAe,CAAClB,MAA3C,IACA1B,eAAe,CAAC6C,KAAhB,CACE,UAACC,cAAD,EAAiB/C,KAAjB;AAAA,WACE+C,cAAc,CAAC7B,KAAf,KAAyB2B,eAAe,CAAC7C,KAAD,CAAf,CAAuBkB,KAAhD,IACA6B,cAAc,CAACpC,MAAf,KAA0BkC,eAAe,CAAC7C,KAAD,CAAf,CAAuBW,MADjD,IAEAoC,cAAc,CAACvC,QAAf,KAA4BqC,eAAe,CAAC7C,KAAD,CAAf,CAAuBQ,QAFnD,IAGAuC,cAAc,CAAC7D,QAAf,KAA4B2D,eAAe,CAAC7C,KAAD,CAAf,CAAuBd,QAJrD;AAAA,GADF,CAFF;AAUD,CAjBD;;AAmBA,IAAM8D,yBAAyB,GAAGC,kBAAMC,IAAN,CAChC9D,4BADgC,EAEhCsD,QAFgC,CAAlC;;AAaO,IAAMS,iBAAiB,GAAG,SAApBA,iBAAoB,CAG/B9D,KAH+B,EAI5B;AACH,8BACE,kDADF;AAAA,MAAQG,WAAR,yBAAQA,WAAR;AAAA,MAAqBC,UAArB,yBAAqBA,UAArB;AAAA,MAAiCC,cAAjC,yBAAiCA,cAAjC;AAAA,MAAiDC,UAAjD,yBAAiDA,UAAjD;;AAEA,4BAAgD,0CAAhD;AAAA,MAAQL,eAAR,uBAAQA,eAAR;AAAA,MAAyBC,kBAAzB,uBAAyBA,kBAAzB;;AAEA,SACE,gCAAC,yBAAD;AAEID,IAAAA,eAAe,EAAfA,eAFJ;AAGIC,IAAAA,kBAAkB,EAAlBA,kBAHJ;AAIIC,IAAAA,WAAW,EAAXA,WAJJ;AAKIC,IAAAA,UAAU,EAAVA,UALJ;AAMIC,IAAAA,cAAc,EAAdA,cANJ;AAOIC,IAAAA,UAAU,EAAVA;AAPJ,KASMN,KATN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAaD,CAtBM;;;AAwBP8D,iBAAiB,CAACC,WAAlB,GAAgC,oDAAhC","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, I18nManager, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport {\n FileUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../icons/Close';\nimport { Warning } from '../../icons/Warning';\nimport { isAudioPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { FileState, getIndicatorTypeForFileState, ProgressIndicatorTypes } from '../../utils/utils';\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport { WritingDirectionAwareText } from '../RTLComponents/WritingDirectionAwareText';\n\nconst FILE_PREVIEW_HEIGHT = 60;\nconst WARNING_ICON_SIZE = 16;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n width: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n paddingLeft: 8,\n paddingRight: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n fileIcon: {\n alignItems: 'center',\n alignSelf: 'center',\n justifyContent: 'center',\n },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingHorizontal: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingHorizontal: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n },\n unsupportedFile: {\n flexDirection: 'row',\n paddingLeft: 10,\n },\n unsupportedFileText: {\n fontSize: 12,\n marginHorizontal: 4,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginTop: 2,\n },\n});\n\nconst UnsupportedFileTypeOrFileSizeIndicator = ({\n indicatorType,\n item,\n}: {\n indicatorType: typeof ProgressIndicatorTypes[keyof typeof ProgressIndicatorTypes];\n item: FileUpload;\n}) => {\n const {\n theme: {\n colors: { accent_red, grey, grey_dark },\n messageInput: {\n fileUploadPreview: { fileSizeText },\n },\n },\n } = useTheme();\n\n const { t } = useTranslationContext();\n\n return indicatorType === ProgressIndicatorTypes.NOT_SUPPORTED ? (\n <View style={styles.unsupportedFile}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.unsupportedFileText, { color: grey_dark }]}>\n {t('File type not supported')}\n </Text>\n </View>\n ) : (\n <WritingDirectionAwareText style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {item.file.duration || getFileSizeDisplayText(item.file.size)}\n </WritingDirectionAwareText>\n );\n};\n\ntype FileUploadPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageInputContextValue<StreamChatGenerics>,\n 'fileUploads' | 'removeFile' | 'uploadFile' | 'setFileUploads'\n> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'AudioAttachment' | 'FileAttachmentIcon'>;\n\nconst FileUploadPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n AudioAttachment,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n // Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.\n const onLoad = (index: string, duration: number) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n duration: fileUpload.id === index ? duration : fileUpload.duration,\n })),\n );\n };\n\n // The handler which is triggered when the audio progresses/ the thumb is dragged in the progress control. The progressed duration is set here.\n const onProgress = (index: string, currentTime?: number, hasEnd?: boolean) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n progress:\n fileUpload.id === index\n ? hasEnd\n ? 1\n : currentTime\n ? currentTime / (fileUpload.duration as number)\n : 0\n : fileUpload.progress,\n })),\n );\n };\n\n // The handler which controls or sets the paused/played state of the audio.\n const onPlayPause = (index: string, pausedStatus?: boolean) => {\n if (pausedStatus === false) {\n // If the status is false we set the audio with the index as playing and the others as paused.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: fileUpload.id === index ? false : true,\n })),\n );\n } else {\n // If the status is true we simply set all the audio's paused state as true.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: true,\n })),\n );\n }\n };\n\n const {\n theme: {\n colors: { black, grey_dark, grey_gainsboro, grey_whisper, white },\n messageInput: {\n fileUploadPreview: {\n audioAttachmentFileContainer,\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => {\n const indicatorType = getIndicatorTypeForFileState(item.state);\n\n const lastIndexOfDot = item.file.name.lastIndexOf('.');\n\n return (\n <>\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n style={styles.overlay}\n type={indicatorType}\n >\n {item.file.type?.startsWith('audio/') && isAudioPackageAvailable() ? (\n <View\n style={[\n { marginBottom: item.state === FileState.UPLOADED ? 8 : 0 },\n audioAttachmentFileContainer,\n ]}\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n backgroundColor: white,\n borderColor: grey_whisper,\n width: -16,\n },\n fileContainer,\n ]}\n testID='audio-attachment-upload-preview'\n >\n <AudioAttachment\n item={item}\n onLoad={onLoad}\n onPlayPause={onPlayPause}\n onProgress={onProgress}\n testID='audio-attachment-upload-preview'\n />\n </View>\n </View>\n ) : (\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <View style={styles.fileIcon}>\n <FileAttachmentIcon mimeType={item.file.type} />\n </View>\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n I18nManager.isRTL ? { writingDirection: 'rtl' } : { writingDirection: 'ltr' },\n filenameText,\n ]}\n >\n {item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)}\n </Text>\n {indicatorType !== null && (\n <UnsupportedFileTypeOrFileSizeIndicator\n indicatorType={indicatorType}\n item={item}\n />\n )}\n </View>\n </View>\n </View>\n )}\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close pathFill={grey_dark} />\n </TouchableOpacity>\n </UploadProgressIndicator>\n </>\n );\n };\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => `${item.id}`}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n nextProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) =>\n prevFileUpload.state === nextFileUploads[index].state &&\n prevFileUpload.paused === nextFileUploads[index].paused &&\n prevFileUpload.progress === nextFileUploads[index].progress &&\n prevFileUpload.duration === nextFileUploads[index].duration,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<FileUploadPreviewPropsWithContext<StreamChatGenerics>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewProps<StreamChatGenerics>,\n) => {\n const { fileUploads, removeFile, setFileUploads, uploadFile } =\n useMessageInputContext<StreamChatGenerics>();\n const { AudioAttachment, FileAttachmentIcon } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedFileUploadPreview\n {...{\n AudioAttachment,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["FileUploadPreview.tsx"],"names":["FILE_PREVIEW_HEIGHT","WARNING_ICON_SIZE","styles","StyleSheet","create","dismiss","borderRadius","height","position","right","top","width","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","paddingLeft","paddingRight","fileContentContainer","fileIcon","alignItems","alignSelf","filenameText","fontSize","fontWeight","paddingHorizontal","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","unsupportedFile","unsupportedFileText","marginHorizontal","warningIconStyle","marginTop","UnsupportedFileTypeOrFileSizeIndicator","indicatorType","item","theme","colors","accent_red","grey","grey_dark","messageInput","fileUploadPreview","t","ProgressIndicatorTypes","NOT_SUPPORTED","color","file","duration","size","FileUploadPreviewWithContext","props","AudioAttachment","enableOfflineSupport","FileAttachmentIcon","fileUploads","removeFile","setFileUploads","uploadFile","flatListRef","flatListWidth","setFlatListWidth","onLoad","index","prevFileUploads","map","fileUpload","id","onProgress","currentTime","hasEnd","progress","onPlayPause","pausedStatus","paused","black","grey_gainsboro","grey_whisper","white","audioAttachmentFileContainer","renderItem","state","lastIndexOfDot","name","lastIndexOf","newFile","type","startsWith","FileState","UPLOADED","length","backgroundColor","borderColor","I18nManager","isRTL","writingDirection","slice","fileUploadsLength","current","setTimeout","scrollToEnd","_","offset","nativeEvent","layout","areEqual","prevProps","nextProps","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, I18nManager, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport {\n FileUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../icons/Close';\nimport { Warning } from '../../icons/Warning';\nimport { isAudioPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { FileState, getIndicatorTypeForFileState, ProgressIndicatorTypes } from '../../utils/utils';\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport { WritingDirectionAwareText } from '../RTLComponents/WritingDirectionAwareText';\n\nconst FILE_PREVIEW_HEIGHT = 60;\nconst WARNING_ICON_SIZE = 16;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n width: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n paddingLeft: 8,\n paddingRight: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n fileIcon: {\n alignItems: 'center',\n alignSelf: 'center',\n justifyContent: 'center',\n },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingHorizontal: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingHorizontal: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n },\n unsupportedFile: {\n flexDirection: 'row',\n paddingLeft: 10,\n },\n unsupportedFileText: {\n fontSize: 12,\n marginHorizontal: 4,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginTop: 2,\n },\n});\n\nconst UnsupportedFileTypeOrFileSizeIndicator = ({\n indicatorType,\n item,\n}: {\n indicatorType: typeof ProgressIndicatorTypes[keyof typeof ProgressIndicatorTypes];\n item: FileUpload;\n}) => {\n const {\n theme: {\n colors: { accent_red, grey, grey_dark },\n messageInput: {\n fileUploadPreview: { fileSizeText },\n },\n },\n } = useTheme();\n\n const { t } = useTranslationContext();\n\n return indicatorType === ProgressIndicatorTypes.NOT_SUPPORTED ? (\n <View style={styles.unsupportedFile}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.unsupportedFileText, { color: grey_dark }]}>\n {t('File type not supported')}\n </Text>\n </View>\n ) : (\n <WritingDirectionAwareText style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {item.file.duration || getFileSizeDisplayText(item.file.size)}\n </WritingDirectionAwareText>\n );\n};\n\ntype FileUploadPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageInputContextValue<StreamChatGenerics>,\n 'fileUploads' | 'removeFile' | 'uploadFile' | 'setFileUploads'\n> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'AudioAttachment' | 'FileAttachmentIcon'> &\n Pick<ChatContextValue<StreamChatGenerics>, 'enableOfflineSupport'>;\n\nconst FileUploadPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n AudioAttachment,\n enableOfflineSupport,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n // Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.\n const onLoad = (index: string, duration: number) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n duration: fileUpload.id === index ? duration : fileUpload.duration,\n })),\n );\n };\n\n // The handler which is triggered when the audio progresses/ the thumb is dragged in the progress control. The progressed duration is set here.\n const onProgress = (index: string, currentTime?: number, hasEnd?: boolean) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n progress:\n fileUpload.id === index\n ? hasEnd\n ? 1\n : currentTime\n ? currentTime / (fileUpload.duration as number)\n : 0\n : fileUpload.progress,\n })),\n );\n };\n\n // The handler which controls or sets the paused/played state of the audio.\n const onPlayPause = (index: string, pausedStatus?: boolean) => {\n if (pausedStatus === false) {\n // If the status is false we set the audio with the index as playing and the others as paused.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: fileUpload.id === index ? false : true,\n })),\n );\n } else {\n // If the status is true we simply set all the audio's paused state as true.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: true,\n })),\n );\n }\n };\n\n const {\n theme: {\n colors: { black, grey_dark, grey_gainsboro, grey_whisper, white },\n messageInput: {\n fileUploadPreview: {\n audioAttachmentFileContainer,\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => {\n const indicatorType = getIndicatorTypeForFileState(item.state, enableOfflineSupport);\n\n const lastIndexOfDot = item.file.name.lastIndexOf('.');\n\n return (\n <>\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n style={styles.overlay}\n type={indicatorType}\n >\n {item.file.type?.startsWith('audio/') && isAudioPackageAvailable() ? (\n <View\n style={[\n { marginBottom: item.state === FileState.UPLOADED ? 8 : 0 },\n audioAttachmentFileContainer,\n ]}\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n backgroundColor: white,\n borderColor: grey_whisper,\n width: -16,\n },\n fileContainer,\n ]}\n testID='audio-attachment-upload-preview'\n >\n <AudioAttachment\n item={item}\n onLoad={onLoad}\n onPlayPause={onPlayPause}\n onProgress={onProgress}\n testID='audio-attachment-upload-preview'\n />\n </View>\n </View>\n ) : (\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <View style={styles.fileIcon}>\n <FileAttachmentIcon mimeType={item.file.type} />\n </View>\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n I18nManager.isRTL ? { writingDirection: 'rtl' } : { writingDirection: 'ltr' },\n filenameText,\n ]}\n >\n {item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)}\n </Text>\n {indicatorType !== null && (\n <UnsupportedFileTypeOrFileSizeIndicator\n indicatorType={indicatorType}\n item={item}\n />\n )}\n </View>\n </View>\n </View>\n )}\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close pathFill={grey_dark} />\n </TouchableOpacity>\n </UploadProgressIndicator>\n </>\n );\n };\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => `${item.id}`}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n nextProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) =>\n prevFileUpload.state === nextFileUploads[index].state &&\n prevFileUpload.paused === nextFileUploads[index].paused &&\n prevFileUpload.progress === nextFileUploads[index].progress &&\n prevFileUpload.duration === nextFileUploads[index].duration,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<FileUploadPreviewPropsWithContext<StreamChatGenerics>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewProps<StreamChatGenerics>,\n) => {\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { fileUploads, removeFile, setFileUploads, uploadFile } =\n useMessageInputContext<StreamChatGenerics>();\n const { AudioAttachment, FileAttachmentIcon } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedFileUploadPreview\n {...{\n AudioAttachment,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n }}\n {...{ enableOfflineSupport }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"]}
|