@ethora/chat-component-rn 26.8.2 → 26.8.3
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/CHANGELOG.md +14 -0
- package/README.md +27 -1
- package/lib/commonjs/assets/EmptyChatIllustration.js +7 -6
- package/lib/commonjs/assets/EmptyChatIllustration.js.map +1 -1
- package/lib/commonjs/assets/icons.js +2 -2
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/AuthForms/Login.js +23 -8
- package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
- package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js +12 -4
- package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js.map +1 -1
- package/lib/commonjs/components/DropdownMenu/DropdownMenu.js +16 -9
- package/lib/commonjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/lib/commonjs/components/ExampleComponents/CustomMessage.js +25 -7
- package/lib/commonjs/components/ExampleComponents/CustomMessage.js.map +1 -1
- package/lib/commonjs/components/ExampleComponents/CustomTypingIndicatorExamples.js +18 -6
- package/lib/commonjs/components/ExampleComponents/CustomTypingIndicatorExamples.js.map +1 -1
- package/lib/commonjs/components/Header/HeaderRoomList.js +9 -6
- package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
- package/lib/commonjs/components/InputComponents/Search.js +13 -4
- package/lib/commonjs/components/InputComponents/Search.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +9 -3
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +6 -3
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +8 -6
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js +37 -10
- package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MediaMessage.js +43 -19
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageList.js +9 -3
- package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RNStyled.js +12 -4
- package/lib/commonjs/components/MainComponents/RNStyled.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js +25 -8
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomList.js +12 -9
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/Select.js +29 -8
- package/lib/commonjs/components/MainComponents/Select.js.map +1 -1
- package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +24 -13
- package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +24 -8
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +46 -24
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js +15 -4
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageReaction.js +10 -5
- package/lib/commonjs/components/MessageBubble/MessageReaction.js.map +1 -1
- package/lib/commonjs/components/Modals/AddMembersModal/AddMembersModal.js +1 -5
- package/lib/commonjs/components/Modals/AddMembersModal/AddMembersModal.js.map +1 -1
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +42 -27
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +77 -24
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js +5 -7
- package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +18 -14
- package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +20 -9
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/commonjs/components/Modals/ModalHeaderComponent.js +8 -2
- package/lib/commonjs/components/Modals/ModalHeaderComponent.js.map +1 -1
- package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +8 -8
- package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
- package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +1 -5
- package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
- package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +18 -15
- package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +14 -9
- package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -1
- package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +3 -7
- package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
- package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +8 -6
- package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
- package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js +7 -2
- package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
- package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js +7 -3
- package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
- package/lib/commonjs/components/Modals/SettingsModals/Visibility/RadioInput.js +10 -6
- package/lib/commonjs/components/Modals/SettingsModals/Visibility/RadioInput.js.map +1 -1
- package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js +7 -6
- package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +3 -1
- package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +18 -15
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +9 -6
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/commonjs/components/Modals/styledModalComponents.js +60 -16
- package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +16 -10
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +6 -2
- package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/StyledRoomComponents.js +6 -0
- package/lib/commonjs/components/RoomComponents/styled/StyledRoomComponents.js.map +1 -1
- package/lib/commonjs/components/Thread/ThreadWrapper.js +9 -2
- package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/commonjs/components/Toast/Toast.js +3 -1
- package/lib/commonjs/components/Toast/Toast.js.map +1 -1
- package/lib/commonjs/components/styled/AudioMessage.js +16 -11
- package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
- package/lib/commonjs/components/styled/Button.js +18 -9
- package/lib/commonjs/components/styled/Button.js.map +1 -1
- package/lib/commonjs/components/styled/DateLabel.js +8 -5
- package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
- package/lib/commonjs/components/styled/MediaModal.js +27 -21
- package/lib/commonjs/components/styled/MediaModal.js.map +1 -1
- package/lib/commonjs/components/styled/RoomListComponents/index.js +60 -38
- package/lib/commonjs/components/styled/RoomListComponents/index.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +13 -8
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/components/styled/StyledComponents.js +67 -23
- package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInput.js +32 -18
- package/lib/commonjs/components/styled/StyledInput.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInputComponents/CustomTypingIndicator.js +13 -8
- package/lib/commonjs/components/styled/StyledInputComponents/CustomTypingIndicator.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js +20 -9
- package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +39 -18
- package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
- package/lib/commonjs/components/styled/TreadLabel.js +6 -3
- package/lib/commonjs/components/styled/TreadLabel.js.map +1 -1
- package/lib/commonjs/context/MessageNotificationContext.js +14 -3
- package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
- package/lib/commonjs/helpers/getChatBackground.js +4 -1
- package/lib/commonjs/helpers/getChatBackground.js.map +1 -1
- package/lib/commonjs/helpers/getDateLabelColor.js +3 -1
- package/lib/commonjs/helpers/getDateLabelColor.js.map +1 -1
- package/lib/commonjs/helpers/getIconColor.js +4 -1
- package/lib/commonjs/helpers/getIconColor.js.map +1 -1
- package/lib/commonjs/helpers/getSenderNameColor.js +3 -1
- package/lib/commonjs/helpers/getSenderNameColor.js.map +1 -1
- package/lib/commonjs/helpers/markdownParser.js +27 -5
- package/lib/commonjs/helpers/markdownParser.js.map +1 -1
- package/lib/commonjs/helpers/parseMessageBody.js +82 -24
- package/lib/commonjs/helpers/parseMessageBody.js.map +1 -1
- package/lib/commonjs/hooks/useCustomTypingIndicator.js +7 -3
- package/lib/commonjs/hooks/useCustomTypingIndicator.js.map +1 -1
- package/lib/commonjs/hooks/useLogout.js +10 -3
- package/lib/commonjs/hooks/useLogout.js.map +1 -1
- package/lib/commonjs/hooks/useTheme.js +35 -0
- package/lib/commonjs/hooks/useTheme.js.map +1 -0
- package/lib/commonjs/i18n/strings.js +18 -0
- package/lib/commonjs/i18n/strings.js.map +1 -1
- package/lib/commonjs/main.js +75 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/push.api.js +130 -45
- package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +13 -0
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/services/pushRegistration.js +250 -0
- package/lib/commonjs/services/pushRegistration.js.map +1 -0
- package/lib/commonjs/services/pushSubscriptionService.js +0 -24
- package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
- package/lib/commonjs/theme/index.js +38 -0
- package/lib/commonjs/theme/index.js.map +1 -0
- package/lib/commonjs/theme/styled.d.js +4 -0
- package/lib/commonjs/theme/styled.d.js.map +1 -0
- package/lib/commonjs/theme/theme.js +137 -0
- package/lib/commonjs/theme/theme.js.map +1 -0
- package/lib/module/assets/EmptyChatIllustration.js +7 -6
- package/lib/module/assets/EmptyChatIllustration.js.map +1 -1
- package/lib/module/assets/icons.js +1 -1
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/AuthForms/Login.js +23 -8
- package/lib/module/components/AuthForms/Login.js.map +1 -1
- package/lib/module/components/ContextMenu/ContextMenuComponents.js +12 -4
- package/lib/module/components/ContextMenu/ContextMenuComponents.js.map +1 -1
- package/lib/module/components/DropdownMenu/DropdownMenu.js +16 -9
- package/lib/module/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/lib/module/components/ExampleComponents/CustomMessage.js +25 -7
- package/lib/module/components/ExampleComponents/CustomMessage.js.map +1 -1
- package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js +18 -6
- package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js.map +1 -1
- package/lib/module/components/Header/HeaderRoomList.js +9 -6
- package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
- package/lib/module/components/InputComponents/Search.js +13 -4
- package/lib/module/components/InputComponents/Search.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +9 -3
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +6 -3
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +8 -6
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/LanguageSelectorModal.js +37 -10
- package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -1
- package/lib/module/components/MainComponents/MediaMessage.js +42 -19
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/MessageList.js +9 -3
- package/lib/module/components/MainComponents/MessageList.js.map +1 -1
- package/lib/module/components/MainComponents/RNStyled.js +12 -4
- package/lib/module/components/MainComponents/RNStyled.js.map +1 -1
- package/lib/module/components/MainComponents/ReduxWrapper.js +25 -8
- package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/RoomList.js +12 -9
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/MainComponents/Select.js +29 -8
- package/lib/module/components/MainComponents/Select.js.map +1 -1
- package/lib/module/components/Menu/HeaderRoomListMenu.js +24 -13
- package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/module/components/MessageBubble/BottomReplyContainer.js +24 -8
- package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +47 -25
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageInteractions.js +15 -4
- package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageReaction.js +10 -5
- package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
- package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js +2 -6
- package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js.map +1 -1
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js +42 -27
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +79 -26
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js +6 -8
- package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +18 -16
- package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +20 -9
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/module/components/Modals/ModalHeaderComponent.js +8 -2
- package/lib/module/components/Modals/ModalHeaderComponent.js.map +1 -1
- package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +10 -10
- package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
- package/lib/module/components/Modals/NewChatModal/ModalContent.js +2 -6
- package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
- package/lib/module/components/Modals/NewChatModal/NewChatModal.js +18 -15
- package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
- package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +14 -9
- package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -1
- package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +4 -8
- package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
- package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +8 -6
- package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
- package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js +7 -2
- package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
- package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js +7 -3
- package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
- package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js +10 -6
- package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js.map +1 -1
- package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +7 -6
- package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +3 -2
- package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +18 -15
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +9 -6
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/module/components/Modals/styledModalComponents.js +59 -15
- package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
- package/lib/module/components/RoomComponents/ChatRoomItem.js +16 -10
- package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +6 -2
- package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js +6 -0
- package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js.map +1 -1
- package/lib/module/components/Thread/ThreadWrapper.js +9 -2
- package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/module/components/Toast/Toast.js +3 -1
- package/lib/module/components/Toast/Toast.js.map +1 -1
- package/lib/module/components/styled/AudioMessage.js +16 -11
- package/lib/module/components/styled/AudioMessage.js.map +1 -1
- package/lib/module/components/styled/Button.js +17 -9
- package/lib/module/components/styled/Button.js.map +1 -1
- package/lib/module/components/styled/DateLabel.js +8 -5
- package/lib/module/components/styled/DateLabel.js.map +1 -1
- package/lib/module/components/styled/MediaModal.js +29 -23
- package/lib/module/components/styled/MediaModal.js.map +1 -1
- package/lib/module/components/styled/RoomListComponents/index.js +62 -39
- package/lib/module/components/styled/RoomListComponents/index.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +13 -8
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/components/styled/StyledComponents.js +67 -23
- package/lib/module/components/styled/StyledComponents.js.map +1 -1
- package/lib/module/components/styled/StyledInput.js +32 -18
- package/lib/module/components/styled/StyledInput.js.map +1 -1
- package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js +13 -8
- package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js.map +1 -1
- package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +20 -9
- package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
- package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +39 -18
- package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
- package/lib/module/components/styled/TreadLabel.js +6 -3
- package/lib/module/components/styled/TreadLabel.js.map +1 -1
- package/lib/module/context/MessageNotificationContext.js +14 -3
- package/lib/module/context/MessageNotificationContext.js.map +1 -1
- package/lib/module/helpers/getChatBackground.js +5 -1
- package/lib/module/helpers/getChatBackground.js.map +1 -1
- package/lib/module/helpers/getDateLabelColor.js +4 -1
- package/lib/module/helpers/getDateLabelColor.js.map +1 -1
- package/lib/module/helpers/getIconColor.js +5 -1
- package/lib/module/helpers/getIconColor.js.map +1 -1
- package/lib/module/helpers/getSenderNameColor.js +4 -1
- package/lib/module/helpers/getSenderNameColor.js.map +1 -1
- package/lib/module/helpers/markdownParser.js +27 -5
- package/lib/module/helpers/markdownParser.js.map +1 -1
- package/lib/module/helpers/parseMessageBody.js +82 -24
- package/lib/module/helpers/parseMessageBody.js.map +1 -1
- package/lib/module/hooks/useCustomTypingIndicator.js +8 -3
- package/lib/module/hooks/useCustomTypingIndicator.js.map +1 -1
- package/lib/module/hooks/useLogout.js +10 -3
- package/lib/module/hooks/useLogout.js.map +1 -1
- package/lib/module/hooks/useTheme.js +30 -0
- package/lib/module/hooks/useTheme.js.map +1 -0
- package/lib/module/i18n/strings.js +18 -0
- package/lib/module/i18n/strings.js.map +1 -1
- package/lib/module/main.js +3 -0
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/push.api.js +119 -45
- package/lib/module/networking/api-requests/push.api.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +12 -0
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/services/pushRegistration.js +239 -0
- package/lib/module/services/pushRegistration.js.map +1 -0
- package/lib/module/services/pushSubscriptionService.js +0 -24
- package/lib/module/services/pushSubscriptionService.js.map +1 -1
- package/lib/module/theme/index.js +7 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/theme/styled.d.js +6 -0
- package/lib/module/theme/styled.d.js.map +1 -0
- package/lib/module/theme/theme.js +131 -0
- package/lib/module/theme/theme.js.map +1 -0
- package/lib/typescript/assets/EmptyChatIllustration.d.ts +1 -0
- package/lib/typescript/assets/EmptyChatIllustration.d.ts.map +1 -1
- package/lib/typescript/assets/icons.d.ts +8 -0
- package/lib/typescript/assets/icons.d.ts.map +1 -1
- package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
- package/lib/typescript/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/lib/typescript/components/ExampleComponents/CustomMessage.d.ts.map +1 -1
- package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
- package/lib/typescript/components/InputComponents/Search.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/Select.d.ts.map +1 -1
- package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
- package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/DeleteChatModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ModalHeaderComponent.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
- package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
- package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +1 -1
- package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/SettingsModals/Referrals/Referrals.d.ts.map +1 -1
- package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts +2 -2
- package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts.map +1 -1
- package/lib/typescript/components/Modals/SettingsModals/Visibility/RadioInput.d.ts.map +1 -1
- package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/styledModalComponents.d.ts +2 -0
- package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/StyledRoomComponents.d.ts.map +1 -1
- package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
- package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
- package/lib/typescript/components/styled/Button.d.ts.map +1 -1
- package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
- package/lib/typescript/components/styled/MediaModal.d.ts +2 -2
- package/lib/typescript/components/styled/MediaModal.d.ts.map +1 -1
- package/lib/typescript/components/styled/RoomListComponents/index.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledInput.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/TreadLabel.d.ts.map +1 -1
- package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
- package/lib/typescript/helpers/getAvatarColor.d.ts +1 -1
- package/lib/typescript/helpers/getChatBackground.d.ts.map +1 -1
- package/lib/typescript/helpers/getDateLabelColor.d.ts +3 -7
- package/lib/typescript/helpers/getDateLabelColor.d.ts.map +1 -1
- package/lib/typescript/helpers/getIconColor.d.ts +4 -7
- package/lib/typescript/helpers/getIconColor.d.ts.map +1 -1
- package/lib/typescript/helpers/getSenderNameColor.d.ts +3 -7
- package/lib/typescript/helpers/getSenderNameColor.d.ts.map +1 -1
- package/lib/typescript/helpers/markdownParser.d.ts +8 -1
- package/lib/typescript/helpers/markdownParser.d.ts.map +1 -1
- package/lib/typescript/helpers/parseMessageBody.d.ts +8 -1
- package/lib/typescript/helpers/parseMessageBody.d.ts.map +1 -1
- package/lib/typescript/hooks/useCustomTypingIndicator.d.ts +2 -0
- package/lib/typescript/hooks/useCustomTypingIndicator.d.ts.map +1 -1
- package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
- package/lib/typescript/hooks/useTheme.d.ts +16 -0
- package/lib/typescript/hooks/useTheme.d.ts.map +1 -0
- package/lib/typescript/i18n/strings.d.ts.map +1 -1
- package/lib/typescript/main.d.ts +7 -0
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/push.api.d.ts +46 -3
- package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts +1 -0
- package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
- package/lib/typescript/services/pushRegistration.d.ts +21 -0
- package/lib/typescript/services/pushRegistration.d.ts.map +1 -0
- package/lib/typescript/services/pushSubscriptionService.d.ts +0 -4
- package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
- package/lib/typescript/theme/index.d.ts +5 -0
- package/lib/typescript/theme/index.d.ts.map +1 -0
- package/lib/typescript/theme/theme.d.ts +113 -0
- package/lib/typescript/theme/theme.d.ts.map +1 -0
- package/lib/typescript/types/models/room.model.d.ts +1 -0
- package/lib/typescript/types/models/room.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +20 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/assets/EmptyChatIllustration.tsx +7 -5
- package/src/assets/icons.tsx +24 -0
- package/src/components/AuthForms/Login.tsx +11 -9
- package/src/components/ContextMenu/ContextMenuComponents.tsx +4 -4
- package/src/components/DropdownMenu/DropdownMenu.tsx +14 -6
- package/src/components/ExampleComponents/CustomMessage.tsx +9 -8
- package/src/components/ExampleComponents/CustomTypingIndicatorExamples.tsx +6 -6
- package/src/components/Header/HeaderRoomList.tsx +11 -6
- package/src/components/InputComponents/Search.tsx +7 -4
- package/src/components/MainComponents/ChatHeader.tsx +9 -3
- package/src/components/MainComponents/ChatRoom.tsx +5 -2
- package/src/components/MainComponents/ChatWrapper.tsx +8 -6
- package/src/components/MainComponents/LanguageSelectorModal.tsx +33 -7
- package/src/components/MainComponents/MediaMessage.tsx +37 -18
- package/src/components/MainComponents/MessageList.tsx +13 -3
- package/src/components/MainComponents/RNStyled.tsx +4 -4
- package/src/components/MainComponents/ReduxWrapper.tsx +23 -7
- package/src/components/MainComponents/RoomList.tsx +13 -7
- package/src/components/MainComponents/Select.tsx +13 -8
- package/src/components/Menu/HeaderRoomListMenu.tsx +30 -13
- package/src/components/MessageBubble/BottomReplyContainer.tsx +16 -11
- package/src/components/MessageBubble/Message.tsx +48 -25
- package/src/components/MessageBubble/MessageInteractions.tsx +17 -4
- package/src/components/MessageBubble/MessageReaction.tsx +9 -4
- package/src/components/Modals/AddMembersModal/AddMembersModal.tsx +2 -2
- package/src/components/Modals/AttachSheet/AttachSheet.tsx +57 -23
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +63 -25
- package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +6 -4
- package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +18 -14
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +14 -9
- package/src/components/Modals/ModalHeaderComponent.tsx +9 -2
- package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +14 -6
- package/src/components/Modals/NewChatModal/ModalContent.tsx +2 -2
- package/src/components/Modals/NewChatModal/NewChatModal.tsx +19 -15
- package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +15 -8
- package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +2 -3
- package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +8 -6
- package/src/components/Modals/SettingsModals/Referrals/Referrals.tsx +5 -3
- package/src/components/Modals/SettingsModals/SharedStyledComponents.ts +4 -4
- package/src/components/Modals/SettingsModals/Visibility/RadioInput.tsx +9 -5
- package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +7 -7
- package/src/components/Modals/UserProfileModal/EditUserModal.tsx +3 -1
- package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +19 -15
- package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +15 -6
- package/src/components/Modals/styledModalComponents.tsx +23 -15
- package/src/components/RoomComponents/ChatRoomItem.tsx +19 -10
- package/src/components/RoomComponents/styled/LastAudioMessage.tsx +4 -2
- package/src/components/RoomComponents/styled/StyledRoomComponents.ts +2 -0
- package/src/components/Thread/ThreadWrapper.tsx +6 -5
- package/src/components/Toast/Toast.tsx +1 -1
- package/src/components/styled/AudioMessage.tsx +12 -9
- package/src/components/styled/Button.tsx +15 -8
- package/src/components/styled/DateLabel.tsx +7 -3
- package/src/components/styled/MediaModal.tsx +30 -25
- package/src/components/styled/RoomListComponents/index.tsx +60 -35
- package/src/components/styled/SendInput.tsx +23 -8
- package/src/components/styled/StyledComponents.ts +30 -23
- package/src/components/styled/StyledInput.tsx +35 -21
- package/src/components/styled/StyledInputComponents/CustomTypingIndicator.tsx +8 -8
- package/src/components/styled/StyledInputComponents/MediaComponents.tsx +20 -7
- package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +15 -19
- package/src/components/styled/TreadLabel.tsx +9 -3
- package/src/context/MessageNotificationContext.tsx +18 -4
- package/src/helpers/getChatBackground.ts +3 -1
- package/src/helpers/getDateLabelColor.ts +5 -3
- package/src/helpers/getIconColor.ts +6 -3
- package/src/helpers/getSenderNameColor.ts +5 -3
- package/src/helpers/markdownParser.tsx +29 -5
- package/src/helpers/parseMessageBody.tsx +79 -26
- package/src/hooks/useCustomTypingIndicator.tsx +7 -3
- package/src/hooks/useLogout.tsx +10 -3
- package/src/hooks/useTheme.ts +41 -0
- package/src/i18n/strings.ts +18 -0
- package/src/main.ts +31 -0
- package/src/networking/api-requests/push.api.ts +185 -62
- package/src/networking/api-requests/rooms.api.ts +9 -0
- package/src/services/pushRegistration.ts +356 -0
- package/src/services/pushSubscriptionService.ts +0 -34
- package/src/theme/index.ts +10 -0
- package/src/theme/styled.d.ts +9 -0
- package/src/theme/theme.ts +243 -0
- package/src/types/models/room.model.ts +1 -0
- package/src/types/types.ts +24 -0
- package/lib/commonjs/context/PushNotificationProvider.js +0 -79
- package/lib/commonjs/context/PushNotificationProvider.js.map +0 -1
- package/lib/commonjs/hooks/usePushNotifications.js +0 -110
- package/lib/commonjs/hooks/usePushNotifications.js.map +0 -1
- package/lib/commonjs/services/pushNotifications.js +0 -143
- package/lib/commonjs/services/pushNotifications.js.map +0 -1
- package/lib/module/context/PushNotificationProvider.js +0 -79
- package/lib/module/context/PushNotificationProvider.js.map +0 -1
- package/lib/module/hooks/usePushNotifications.js +0 -106
- package/lib/module/hooks/usePushNotifications.js.map +0 -1
- package/lib/module/services/pushNotifications.js +0 -130
- package/lib/module/services/pushNotifications.js.map +0 -1
- package/lib/typescript/context/PushNotificationProvider.d.ts +0 -2
- package/lib/typescript/context/PushNotificationProvider.d.ts.map +0 -1
- package/lib/typescript/hooks/usePushNotifications.d.ts +0 -5
- package/lib/typescript/hooks/usePushNotifications.d.ts.map +0 -1
- package/lib/typescript/services/pushNotifications.d.ts +0 -10
- package/lib/typescript/services/pushNotifications.d.ts.map +0 -1
- package/src/context/PushNotificationProvider.tsx +0 -78
- package/src/hooks/usePushNotifications.ts +0 -131
- package/src/services/pushNotifications.ts +0 -170
|
@@ -13,6 +13,7 @@ import { BurgerMenuIcon } from '../../assets/icons';
|
|
|
13
13
|
import { IConfig } from '../../types/types';
|
|
14
14
|
import Button from '../styled/Button';
|
|
15
15
|
import { getIconColor } from '../../helpers/getIconColor';
|
|
16
|
+
import { useTheme } from '../../hooks/useTheme';
|
|
16
17
|
|
|
17
18
|
const positionMenu = {
|
|
18
19
|
right: { top: 95, right: 10 },
|
|
@@ -45,6 +46,7 @@ const DropdownMenu: React.FC<DropdownMenuProps> = ({
|
|
|
45
46
|
config,
|
|
46
47
|
onClose,
|
|
47
48
|
}) => {
|
|
49
|
+
const theme = useTheme();
|
|
48
50
|
const [isOpen, setIsOpen] = useState(false);
|
|
49
51
|
const menuRef = useRef<View>(null);
|
|
50
52
|
|
|
@@ -119,7 +121,7 @@ const DropdownMenu: React.FC<DropdownMenuProps> = ({
|
|
|
119
121
|
}}
|
|
120
122
|
>
|
|
121
123
|
<TouchableOpacity
|
|
122
|
-
style={styles.overlay}
|
|
124
|
+
style={[styles.overlay, { backgroundColor: theme.overlay }]}
|
|
123
125
|
activeOpacity={1}
|
|
124
126
|
onPress={() => {
|
|
125
127
|
setIsOpen(false);
|
|
@@ -134,9 +136,11 @@ const DropdownMenu: React.FC<DropdownMenuProps> = ({
|
|
|
134
136
|
styles.menu,
|
|
135
137
|
positionMenu[position],
|
|
136
138
|
{
|
|
139
|
+
shadowColor: theme.shadow,
|
|
137
140
|
opacity: fadeAnim,
|
|
138
141
|
transform: [{ translateY: translateYAnim }],
|
|
139
142
|
},
|
|
143
|
+
theme.dark && { backgroundColor: theme.surface },
|
|
140
144
|
]}
|
|
141
145
|
>
|
|
142
146
|
{options.map((option, index) => (
|
|
@@ -163,12 +167,19 @@ const DropdownMenu: React.FC<DropdownMenuProps> = ({
|
|
|
163
167
|
>
|
|
164
168
|
{option.icon}
|
|
165
169
|
</View>
|
|
166
|
-
<Text
|
|
170
|
+
<Text
|
|
171
|
+
style={[styles.label, { color: theme.text }, option?.styles]}
|
|
172
|
+
>
|
|
167
173
|
{option.label}
|
|
168
174
|
</Text>
|
|
169
175
|
</TouchableOpacity>
|
|
170
176
|
{index < options.length - 1 && (
|
|
171
|
-
<View
|
|
177
|
+
<View
|
|
178
|
+
style={[
|
|
179
|
+
styles.divider,
|
|
180
|
+
{ backgroundColor: theme.surfaceHighlight },
|
|
181
|
+
]}
|
|
182
|
+
/>
|
|
172
183
|
)}
|
|
173
184
|
</View>
|
|
174
185
|
))}
|
|
@@ -193,7 +204,6 @@ const styles = StyleSheet.create({
|
|
|
193
204
|
flex: 1,
|
|
194
205
|
width: '100%',
|
|
195
206
|
height: '100%',
|
|
196
|
-
backgroundColor: 'rgba(0, 0, 0, 0.3)',
|
|
197
207
|
},
|
|
198
208
|
menuContainer: {
|
|
199
209
|
flex: 1,
|
|
@@ -219,7 +229,6 @@ const styles = StyleSheet.create({
|
|
|
219
229
|
minWidth: 150,
|
|
220
230
|
zIndex: 1000,
|
|
221
231
|
elevation: 10, // Android
|
|
222
|
-
shadowColor: '#121219', // iOS
|
|
223
232
|
shadowOffset: { width: 0, height: 4 },
|
|
224
233
|
shadowOpacity: 0.3,
|
|
225
234
|
shadowRadius: 6,
|
|
@@ -240,6 +249,5 @@ const styles = StyleSheet.create({
|
|
|
240
249
|
divider: {
|
|
241
250
|
height: 1,
|
|
242
251
|
width: '100%',
|
|
243
|
-
backgroundColor: '#0052cd0d',
|
|
244
252
|
},
|
|
245
253
|
});
|
|
@@ -13,8 +13,9 @@ export const MessageContainer = styled.View<{ isUser: boolean }>`
|
|
|
13
13
|
`;
|
|
14
14
|
|
|
15
15
|
export const MessageBubble = styled.View<{ isUser: boolean }>`
|
|
16
|
-
background-color: ${(
|
|
17
|
-
|
|
16
|
+
background-color: ${({ isUser, theme }) =>
|
|
17
|
+
!isUser ? theme.surfaceSecondary : theme.primary};
|
|
18
|
+
color: ${({ isUser, theme }) => (!isUser ? theme.text : theme.textOnPrimary)};
|
|
18
19
|
border-radius: 12px;
|
|
19
20
|
padding: 10px;
|
|
20
21
|
max-width: 60%;
|
|
@@ -27,14 +28,14 @@ export const MessageText = styled.View`
|
|
|
27
28
|
|
|
28
29
|
export const UserName = styled.Text<{ isUser: boolean; color?: string }>`
|
|
29
30
|
font-weight: bold;
|
|
30
|
-
color: ${(
|
|
31
|
-
|
|
31
|
+
color: ${({ color, isUser, theme }) =>
|
|
32
|
+
color ? color : isUser ? theme.primary : theme.text};
|
|
32
33
|
margin-right: 8px;
|
|
33
34
|
`;
|
|
34
35
|
|
|
35
36
|
export const MessageTimestamp = styled.Text`
|
|
36
37
|
font-size: 13px;
|
|
37
|
-
color:
|
|
38
|
+
color: ${({ theme }) => theme.textMuted};
|
|
38
39
|
margin-left: 8px;
|
|
39
40
|
`;
|
|
40
41
|
|
|
@@ -50,8 +51,8 @@ export const MessagePhotoContainer = styled.Text`
|
|
|
50
51
|
`;
|
|
51
52
|
|
|
52
53
|
export const SystemMessage = styled.Text`
|
|
53
|
-
background-color:
|
|
54
|
-
color:
|
|
54
|
+
background-color: ${({ theme }) => theme.systemMessageBackground};
|
|
55
|
+
color: ${({ theme }) => theme.textSecondary};
|
|
55
56
|
text-align: center;
|
|
56
57
|
padding: 8px;
|
|
57
58
|
border-radius: 8px;
|
|
@@ -62,7 +63,7 @@ export const SystemMessage = styled.Text`
|
|
|
62
63
|
export const SystemMessageText = styled.Text`
|
|
63
64
|
margin: 0;
|
|
64
65
|
font-size: 14px;
|
|
65
|
-
color:
|
|
66
|
+
color: ${({ theme }) => theme.text};
|
|
66
67
|
`;
|
|
67
68
|
|
|
68
69
|
const CustomMessageExample = forwardRef<View, MessageProps>(
|
|
@@ -96,7 +96,7 @@ const Dot = styled(Animated.View)`
|
|
|
96
96
|
width: 6px;
|
|
97
97
|
height: 6px;
|
|
98
98
|
border-radius: 3px;
|
|
99
|
-
background-color:
|
|
99
|
+
background-color: ${({ theme }) => theme.textSecondary};
|
|
100
100
|
margin: 0 2px;
|
|
101
101
|
`;
|
|
102
102
|
|
|
@@ -132,7 +132,7 @@ export const MinimalTypingIndicator: React.FC<Props> = ({ isVisible }) => {
|
|
|
132
132
|
};
|
|
133
133
|
|
|
134
134
|
const Bubble = styled.View`
|
|
135
|
-
background-color:
|
|
135
|
+
background-color: ${({ theme }) => theme.surfaceSecondary};
|
|
136
136
|
border-radius: 18px;
|
|
137
137
|
padding: 8px 16px;
|
|
138
138
|
margin: 4px 0;
|
|
@@ -142,7 +142,7 @@ const Bubble = styled.View`
|
|
|
142
142
|
|
|
143
143
|
const BubbleText = styled.Text`
|
|
144
144
|
font-size: 14px;
|
|
145
|
-
color:
|
|
145
|
+
color: ${({ theme }) => theme.textSecondary};
|
|
146
146
|
`;
|
|
147
147
|
|
|
148
148
|
const BubbleTail = styled.View`
|
|
@@ -156,7 +156,7 @@ const BubbleTail = styled.View`
|
|
|
156
156
|
border-top-width: 6px;
|
|
157
157
|
border-left-color: transparent;
|
|
158
158
|
border-right-color: transparent;
|
|
159
|
-
border-top-color:
|
|
159
|
+
border-top-color: ${({ theme }) => theme.surfaceSecondary};
|
|
160
160
|
`;
|
|
161
161
|
|
|
162
162
|
const BubbleWrapper = styled.View`
|
|
@@ -187,7 +187,7 @@ const ProgressWrap = styled.View`
|
|
|
187
187
|
|
|
188
188
|
const ProgressLabel = styled.Text`
|
|
189
189
|
font-size: 12px;
|
|
190
|
-
color:
|
|
190
|
+
color: ${({ theme }) => theme.textSecondary};
|
|
191
191
|
margin-right: 8px;
|
|
192
192
|
`;
|
|
193
193
|
|
|
@@ -202,7 +202,7 @@ const Bar = styled.View`
|
|
|
202
202
|
const Runner = styled(Animated.View)`
|
|
203
203
|
width: 60px;
|
|
204
204
|
height: 4px;
|
|
205
|
-
background-color:
|
|
205
|
+
background-color: ${({ theme }) => theme.primary};
|
|
206
206
|
`;
|
|
207
207
|
|
|
208
208
|
export const ProgressTypingIndicator: React.FC<Props> = ({ text, isVisible }) => {
|
|
@@ -7,6 +7,7 @@ import { ProfileImagePlaceholder } from '../MainComponents/ProfileImagePlacehold
|
|
|
7
7
|
import { useChatSettingState } from '../../hooks/useChatSettingState';
|
|
8
8
|
import { BurgerMenuIcon } from '../../assets/icons';
|
|
9
9
|
import Button from '../styled/Button';
|
|
10
|
+
import { useTheme } from '../../hooks/useTheme';
|
|
10
11
|
import { useT } from '../../i18n/useT';
|
|
11
12
|
|
|
12
13
|
interface HeaderRoomListProps {
|
|
@@ -15,6 +16,7 @@ interface HeaderRoomListProps {
|
|
|
15
16
|
|
|
16
17
|
export const HeaderRoomList: FC<HeaderRoomListProps> = ({ setDrawerOpen }) => {
|
|
17
18
|
const { config, user, selectedUser } = useChatSettingState();
|
|
19
|
+
const theme = useTheme();
|
|
18
20
|
const t = useT();
|
|
19
21
|
const insets = useSafeAreaInsets();
|
|
20
22
|
const topInset = config?.headerLayout?.safeAreaTop ? insets.top : 0;
|
|
@@ -39,7 +41,13 @@ export const HeaderRoomList: FC<HeaderRoomListProps> = ({ setDrawerOpen }) => {
|
|
|
39
41
|
}, [config?.backgroundChat?.image]);
|
|
40
42
|
|
|
41
43
|
return (
|
|
42
|
-
<View
|
|
44
|
+
<View
|
|
45
|
+
style={[
|
|
46
|
+
styles.headerContainer,
|
|
47
|
+
{ backgroundColor: theme.surface, shadowColor: theme.shadow },
|
|
48
|
+
topInset ? { paddingTop: 16 + topInset } : null,
|
|
49
|
+
]}
|
|
50
|
+
>
|
|
43
51
|
{!config?.disableRoomMenu && config?.headerMenu ? (
|
|
44
52
|
<View style={styles.leftContainer}>
|
|
45
53
|
<Button
|
|
@@ -47,7 +55,7 @@ export const HeaderRoomList: FC<HeaderRoomListProps> = ({ setDrawerOpen }) => {
|
|
|
47
55
|
style={styles.menuButton}
|
|
48
56
|
color="black"
|
|
49
57
|
unstyled
|
|
50
|
-
EndIcon={<BurgerMenuIcon color={
|
|
58
|
+
EndIcon={<BurgerMenuIcon color={theme.icon} />}
|
|
51
59
|
onPress={() =>
|
|
52
60
|
typeof config?.headerMenu === 'function'
|
|
53
61
|
? config.headerMenu()
|
|
@@ -62,7 +70,7 @@ export const HeaderRoomList: FC<HeaderRoomListProps> = ({ setDrawerOpen }) => {
|
|
|
62
70
|
{config?.headerLogo ? (
|
|
63
71
|
HeaderLogo
|
|
64
72
|
) : (
|
|
65
|
-
<Text style={{ fontWeight: 500, fontSize: 18 }}>
|
|
73
|
+
<Text style={{ fontWeight: 500, fontSize: 18, color: theme.text }}>
|
|
66
74
|
{t('roomList.title')}
|
|
67
75
|
</Text>
|
|
68
76
|
)}
|
|
@@ -91,11 +99,8 @@ const styles = StyleSheet.create({
|
|
|
91
99
|
paddingBottom: 12,
|
|
92
100
|
minHeight: 56,
|
|
93
101
|
justifyContent: 'space-between',
|
|
94
|
-
backgroundColor: '#FFFFFF',
|
|
95
102
|
borderBottomLeftRadius: 20,
|
|
96
103
|
borderBottomRightRadius: 20,
|
|
97
|
-
// Lifts the header off the page ground behind it.
|
|
98
|
-
shadowColor: '#101828',
|
|
99
104
|
shadowOffset: { width: 0, height: 4 },
|
|
100
105
|
shadowOpacity: 0.06,
|
|
101
106
|
shadowRadius: 12,
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
TouchableOpacity,
|
|
7
7
|
TextInputProps,
|
|
8
8
|
} from 'react-native';
|
|
9
|
+
import { useTheme } from '../../hooks/useTheme';
|
|
9
10
|
|
|
10
11
|
const shouldForwardProp = (prop: string) =>
|
|
11
12
|
prop !== 'animated' && prop !== 'expanded' && prop !== 'direction';
|
|
@@ -18,7 +19,7 @@ const SearchInputWrapper = styled.View.withConfig({ shouldForwardProp })<{
|
|
|
18
19
|
position: relative;
|
|
19
20
|
flex-direction: row;
|
|
20
21
|
align-items: center;
|
|
21
|
-
background-color:
|
|
22
|
+
background-color: ${({ theme }) => theme.surface};
|
|
22
23
|
border-radius: 16px;
|
|
23
24
|
height: 44px;
|
|
24
25
|
padding: 0 12px;
|
|
@@ -40,7 +41,7 @@ const SearchIcon = styled(TouchableOpacity)<{
|
|
|
40
41
|
margin-right: 8px;
|
|
41
42
|
align-items: center;
|
|
42
43
|
justify-content: center;
|
|
43
|
-
color:
|
|
44
|
+
color: ${({ theme }) => theme.textMuted};
|
|
44
45
|
`;
|
|
45
46
|
|
|
46
47
|
const StyledInput = styled(TextInput)<{
|
|
@@ -51,7 +52,7 @@ const StyledInput = styled(TextInput)<{
|
|
|
51
52
|
border: none;
|
|
52
53
|
flex: 1;
|
|
53
54
|
font-size: 16px;
|
|
54
|
-
color:
|
|
55
|
+
color: ${({ theme }) => theme.text};
|
|
55
56
|
opacity: ${({ animated, expanded }) => (animated && !expanded ? 0 : 1)};
|
|
56
57
|
display: ${({ animated, expanded }) =>
|
|
57
58
|
animated && !expanded ? 'none' : 'flex'};
|
|
@@ -77,6 +78,7 @@ const SearchInput: React.FC<SearchInputProps> = ({
|
|
|
77
78
|
placeholder,
|
|
78
79
|
...props
|
|
79
80
|
}) => {
|
|
81
|
+
const theme = useTheme();
|
|
80
82
|
const [isExpanded, setIsExpanded] = useState(false);
|
|
81
83
|
const [isTyping, setIsTyping] = useState(false);
|
|
82
84
|
const inputRef = useRef<TextInput | null>(null);
|
|
@@ -128,7 +130,8 @@ const SearchInput: React.FC<SearchInputProps> = ({
|
|
|
128
130
|
expanded={isExpanded}
|
|
129
131
|
onChangeText={handleInput}
|
|
130
132
|
placeholder={placeholder}
|
|
131
|
-
placeholderTextColor=
|
|
133
|
+
placeholderTextColor={theme.textMuted}
|
|
134
|
+
keyboardAppearance={theme.dark ? 'dark' : 'light'}
|
|
132
135
|
{...props}
|
|
133
136
|
/>
|
|
134
137
|
</SearchInputWrapper>
|
|
@@ -33,6 +33,7 @@ import { useFileToken } from '../../hooks/useFileToken';
|
|
|
33
33
|
import { appendFileToken } from '../../helpers/secureFileUrl';
|
|
34
34
|
import { View, StyleSheet, Text, Keyboard } from 'react-native';
|
|
35
35
|
import { getIconColor } from '../../helpers/getIconColor';
|
|
36
|
+
import { useTheme } from '../../hooks/useTheme';
|
|
36
37
|
import { resolveHeaderHeight } from '../../helpers/headerLayout';
|
|
37
38
|
import { getElementFont } from '../../helpers/getElementFont';
|
|
38
39
|
import { useT } from '../../i18n/useT';
|
|
@@ -54,6 +55,7 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
|
|
|
54
55
|
const roomState = useRoomState(currentRoom.jid).room;
|
|
55
56
|
const composing = roomState?.composing;
|
|
56
57
|
const { config } = useChatSettingState();
|
|
58
|
+
const theme = useTheme();
|
|
57
59
|
const t = useT();
|
|
58
60
|
|
|
59
61
|
const handleChangeChat = (chat: IRoom) => {
|
|
@@ -100,7 +102,7 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
|
|
|
100
102
|
{handleBackClick && !config?.headerChatMenu ? (
|
|
101
103
|
<View style={styles.leftContainer}>
|
|
102
104
|
<Button
|
|
103
|
-
EndIcon={<BackIcon />}
|
|
105
|
+
EndIcon={<BackIcon color={theme.textSecondary} />}
|
|
104
106
|
onPress={() => handleBackClick(false)}
|
|
105
107
|
/>
|
|
106
108
|
</View>
|
|
@@ -108,7 +110,7 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
|
|
|
108
110
|
<View style={styles.leftContainer}>
|
|
109
111
|
<Button
|
|
110
112
|
style={styles.menuButton}
|
|
111
|
-
color=
|
|
113
|
+
color={theme.text}
|
|
112
114
|
unstyled
|
|
113
115
|
EndIcon={<BurgerMenuIcon color={getIconColor(config)} />}
|
|
114
116
|
onPress={handleHeaderChatMenu}
|
|
@@ -180,7 +182,11 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
|
|
|
180
182
|
<Composing usersTyping={currentRoom?.composingList} />
|
|
181
183
|
) : config?.disableUserCount ? undefined : (
|
|
182
184
|
<ChatContainerHeaderLabel
|
|
183
|
-
style={[
|
|
185
|
+
style={[
|
|
186
|
+
styles.subLabel,
|
|
187
|
+
{ color: theme.textSecondary },
|
|
188
|
+
getElementFont(config, 'headerSubtitle'),
|
|
189
|
+
]}
|
|
184
190
|
>
|
|
185
191
|
<Text>
|
|
186
192
|
{t(
|
|
@@ -30,6 +30,7 @@ import { IConfig } from '../../types/models/config.model';
|
|
|
30
30
|
import { useRoomInitialization } from '../../hooks/useRoomInitialization';
|
|
31
31
|
import { useRoomState } from '../../hooks/useRoomState';
|
|
32
32
|
import { useChatSettingState } from '../../hooks/useChatSettingState';
|
|
33
|
+
import { useTheme } from '../../hooks/useTheme';
|
|
33
34
|
import { isOwnMessage } from '../../helpers/isOwnMessage';
|
|
34
35
|
import CustomTypingIndicator from '../styled/StyledInputComponents/CustomTypingIndicator';
|
|
35
36
|
// import {PanGestureHandler} from 'react-native-gesture-handler';
|
|
@@ -82,6 +83,7 @@ const ChatRoom: React.FC<ChatRoomProps> = React.memo(
|
|
|
82
83
|
const { client } = useXmppClient();
|
|
83
84
|
const dispatch = useDispatch();
|
|
84
85
|
const insets = useSafeAreaInsets();
|
|
86
|
+
const theme = useTheme();
|
|
85
87
|
|
|
86
88
|
const [isLoadingMore, setIsLoadingMore] = useState<boolean>(false);
|
|
87
89
|
|
|
@@ -408,10 +410,10 @@ const ChatRoom: React.FC<ChatRoomProps> = React.memo(
|
|
|
408
410
|
// a square white block behind a rounded composer just hid the corners.
|
|
409
411
|
style: {
|
|
410
412
|
paddingBottom: inputDockPaddingBottom,
|
|
411
|
-
backgroundColor:
|
|
413
|
+
backgroundColor: theme.surface,
|
|
412
414
|
borderTopLeftRadius: 20,
|
|
413
415
|
borderTopRightRadius: 20,
|
|
414
|
-
shadowColor:
|
|
416
|
+
shadowColor: theme.shadow,
|
|
415
417
|
shadowOffset: { width: 0, height: -4 },
|
|
416
418
|
shadowOpacity: 0.06,
|
|
417
419
|
shadowRadius: 12,
|
|
@@ -464,6 +466,7 @@ const ChatRoom: React.FC<ChatRoomProps> = React.memo(
|
|
|
464
466
|
>
|
|
465
467
|
<EmptyChatIllustration
|
|
466
468
|
color={getIconColor(configWithEventHandlers)}
|
|
469
|
+
panelColor={theme.dark ? theme.surfaceSecondary : undefined}
|
|
467
470
|
/>
|
|
468
471
|
</View>
|
|
469
472
|
) : !roomMessages || roomMessages.length === 0 ? (
|
|
@@ -35,6 +35,7 @@ import Modal from '../Modals/Modal/Modal';
|
|
|
35
35
|
import ThreadWrapper from '../Thread/ThreadWrapper';
|
|
36
36
|
import {ModalWrapper} from '../Modals/ModalWrapper/ModalWrapper';
|
|
37
37
|
import {useChatSettingState} from '../../hooks/useChatSettingState';
|
|
38
|
+
import {useTheme} from '../../hooks/useTheme';
|
|
38
39
|
import { usePendingNotification } from '../../hooks/usePendingNotification';
|
|
39
40
|
import {DeviceEventEmitter, Pressable, Text, View} from 'react-native';
|
|
40
41
|
import {pushLog as devPushLog} from '../../utils/devLogger';
|
|
@@ -68,6 +69,7 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
|
|
|
68
69
|
} = useChatSettingState();
|
|
69
70
|
|
|
70
71
|
usePendingNotification();
|
|
72
|
+
const theme = useTheme();
|
|
71
73
|
|
|
72
74
|
const [isInited, setInited] = useState(false);
|
|
73
75
|
const [showModal, setShowModal] = useState(false);
|
|
@@ -437,7 +439,7 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
|
|
|
437
439
|
<View
|
|
438
440
|
style={{
|
|
439
441
|
padding: 20,
|
|
440
|
-
backgroundColor:
|
|
442
|
+
backgroundColor: theme.surface,
|
|
441
443
|
borderRadius: 12,
|
|
442
444
|
maxWidth: 320,
|
|
443
445
|
alignItems: 'stretch',
|
|
@@ -447,11 +449,11 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
|
|
|
447
449
|
fontSize: 16,
|
|
448
450
|
fontWeight: '600',
|
|
449
451
|
marginBottom: 8,
|
|
450
|
-
color:
|
|
452
|
+
color: theme.text,
|
|
451
453
|
}}>
|
|
452
454
|
Connection error
|
|
453
455
|
</Text>
|
|
454
|
-
<Text style={{fontSize: 13, color:
|
|
456
|
+
<Text style={{fontSize: 13, color: theme.textSecondary, marginBottom: 16}}>
|
|
455
457
|
{errorMsg ?? 'Something went wrong while connecting to chat.'}
|
|
456
458
|
</Text>
|
|
457
459
|
<Pressable
|
|
@@ -468,10 +470,10 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
|
|
|
468
470
|
paddingVertical: 10,
|
|
469
471
|
paddingHorizontal: 16,
|
|
470
472
|
borderRadius: 6,
|
|
471
|
-
backgroundColor: pressed ? '#0040A0' :
|
|
473
|
+
backgroundColor: pressed ? '#0040A0' : theme.primary,
|
|
472
474
|
alignItems: 'center',
|
|
473
475
|
})}>
|
|
474
|
-
<Text style={{color:
|
|
476
|
+
<Text style={{color: theme.textOnPrimary, fontWeight: '600'}}>Retry</Text>
|
|
475
477
|
</Pressable>
|
|
476
478
|
</View>
|
|
477
479
|
</Overlay>
|
|
@@ -521,7 +523,7 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
|
|
|
521
523
|
title="Delete Message"
|
|
522
524
|
description="Are you sure you want to delete this message?"
|
|
523
525
|
buttonText="Delete"
|
|
524
|
-
backgroundColorButton=
|
|
526
|
+
backgroundColorButton={theme.danger}
|
|
525
527
|
handleClick={handleDeleteClick}
|
|
526
528
|
handleCloseModal={handleCloseDeleteModal}
|
|
527
529
|
compact
|
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
import { useT } from '../../i18n/useT';
|
|
25
25
|
import { toBaseLanguage } from '../../i18n/strings';
|
|
26
26
|
import { getIconColor } from '../../helpers/getIconColor';
|
|
27
|
+
import { useTheme } from '../../hooks/useTheme';
|
|
27
28
|
|
|
28
29
|
const TEXT_PRIMARY = '#141414';
|
|
29
30
|
const TEXT_MUTED = '#8C8C8C';
|
|
@@ -73,6 +74,7 @@ export const LanguageSelectorModal: FC<{
|
|
|
73
74
|
const dispatch = useDispatch();
|
|
74
75
|
const t = useT();
|
|
75
76
|
const { config, langSource, translateMode } = useChatSettingState();
|
|
77
|
+
const theme = useTheme();
|
|
76
78
|
|
|
77
79
|
const translates = config?.translates;
|
|
78
80
|
const effectiveMode = resolveTranslateMode(translates, translateMode);
|
|
@@ -97,16 +99,34 @@ export const LanguageSelectorModal: FC<{
|
|
|
97
99
|
>
|
|
98
100
|
{/* Backdrop closes on tap; the card swallows the press so a tap
|
|
99
101
|
inside it doesn't dismiss. */}
|
|
100
|
-
<Pressable
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
<Pressable
|
|
103
|
+
style={[
|
|
104
|
+
styles.backdrop,
|
|
105
|
+
// Keep the historical 0.4 scrim in light; the dark palette's
|
|
106
|
+
// heavier overlay is needed to separate the card from the ground.
|
|
107
|
+
theme.dark && { backgroundColor: theme.overlay },
|
|
108
|
+
]}
|
|
109
|
+
onPress={onClose}
|
|
110
|
+
>
|
|
111
|
+
<Pressable
|
|
112
|
+
style={[styles.card, { backgroundColor: theme.surface }]}
|
|
113
|
+
onPress={() => {}}
|
|
114
|
+
>
|
|
115
|
+
<Text style={[styles.title, { color: theme.text }]}>
|
|
116
|
+
{t('language.select')}
|
|
117
|
+
</Text>
|
|
103
118
|
|
|
104
119
|
{showModeSwitcher && (
|
|
105
120
|
<View style={styles.section}>
|
|
106
|
-
<Text style={styles.sectionLabel}>
|
|
121
|
+
<Text style={[styles.sectionLabel, { color: theme.textSecondary }]}>
|
|
107
122
|
{t('translation.modeLabel')}
|
|
108
123
|
</Text>
|
|
109
|
-
<View
|
|
124
|
+
<View
|
|
125
|
+
style={[
|
|
126
|
+
styles.segmented,
|
|
127
|
+
{ backgroundColor: theme.surfaceSecondary },
|
|
128
|
+
]}
|
|
129
|
+
>
|
|
110
130
|
{(['auto', 'manual'] as const).map((mode) => {
|
|
111
131
|
const selected = effectiveMode === mode;
|
|
112
132
|
return (
|
|
@@ -118,12 +138,15 @@ export const LanguageSelectorModal: FC<{
|
|
|
118
138
|
style={[
|
|
119
139
|
styles.segment,
|
|
120
140
|
selected && styles.segmentSelected,
|
|
141
|
+
selected && { backgroundColor: theme.surface },
|
|
121
142
|
]}
|
|
122
143
|
>
|
|
123
144
|
<Text
|
|
124
145
|
style={[
|
|
125
146
|
styles.segmentText,
|
|
147
|
+
{ color: theme.textSecondary },
|
|
126
148
|
selected && styles.segmentTextSelected,
|
|
149
|
+
selected && { color: theme.text },
|
|
127
150
|
]}
|
|
128
151
|
>
|
|
129
152
|
{mode === 'auto'
|
|
@@ -139,7 +162,9 @@ export const LanguageSelectorModal: FC<{
|
|
|
139
162
|
|
|
140
163
|
{showLanguageList && (
|
|
141
164
|
<View style={styles.section}>
|
|
142
|
-
<Text style={styles.sectionLabel
|
|
165
|
+
<Text style={[styles.sectionLabel, { color: theme.textSecondary }]}>
|
|
166
|
+
{t('language.select')}
|
|
167
|
+
</Text>
|
|
143
168
|
<ScrollView style={styles.list}>
|
|
144
169
|
{LANGUAGE_OPTIONS.map((option) => {
|
|
145
170
|
// Compare on the base language so a reader on "fr" still
|
|
@@ -153,11 +178,12 @@ export const LanguageSelectorModal: FC<{
|
|
|
153
178
|
accessibilityRole="radio"
|
|
154
179
|
accessibilityState={{ selected }}
|
|
155
180
|
onPress={() => selectLanguage(option.id)}
|
|
156
|
-
style={styles.listRow}
|
|
181
|
+
style={[styles.listRow, { borderBottomColor: theme.border }]}
|
|
157
182
|
>
|
|
158
183
|
<Text
|
|
159
184
|
style={[
|
|
160
185
|
styles.listRowText,
|
|
186
|
+
{ color: theme.text },
|
|
161
187
|
selected && styles.listRowTextSelected,
|
|
162
188
|
]}
|
|
163
189
|
>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
2
|
import { IMessage } from '../../types/types';
|
|
3
3
|
import FileDownload from '../styled/UnsupportedType';
|
|
4
4
|
import CustomMessageImage from '../styled/MessageImage';
|
|
@@ -15,9 +15,9 @@ import { isLikelyAudio } from '../../helpers/mimeToExtension';
|
|
|
15
15
|
import { getDisplayFileName } from '../../helpers/getDisplayFileName';
|
|
16
16
|
import { FileIcon, PlayIcon } from '../../assets/icons';
|
|
17
17
|
import { defaultMediaDims } from '../../helpers/mediaDimensions';
|
|
18
|
-
import { useChatSettingState } from '../../hooks/useChatSettingState';
|
|
19
18
|
import { useFileToken } from '../../hooks/useFileToken';
|
|
20
19
|
import { appendFileToken } from '../../helpers/secureFileUrl';
|
|
20
|
+
import { useTheme } from '../../hooks/useTheme';
|
|
21
21
|
|
|
22
22
|
interface MediaMessageProps {
|
|
23
23
|
mimeType?: string;
|
|
@@ -52,23 +52,37 @@ const PendingMediaMessage: React.FC<{
|
|
|
52
52
|
isUser: boolean;
|
|
53
53
|
size?: string;
|
|
54
54
|
}> = ({ fileName, mimeType, previewUri, isUser, size }) => {
|
|
55
|
-
const
|
|
55
|
+
const theme = useTheme();
|
|
56
56
|
const statusLabel = getPendingStatusLabel(mimeType);
|
|
57
57
|
const isImage = mimeType?.startsWith('image/');
|
|
58
58
|
const isVideo = mimeType?.startsWith('video/');
|
|
59
59
|
const isAudio =
|
|
60
60
|
mimeType?.startsWith('audio/') ||
|
|
61
61
|
mimeType?.includes('application/octet-stream');
|
|
62
|
-
const primaryColor =
|
|
62
|
+
const primaryColor = theme.primary;
|
|
63
|
+
// Colour overrides only; layout stays in the static StyleSheet below.
|
|
64
|
+
const t = useMemo(
|
|
65
|
+
() => ({
|
|
66
|
+
card: { backgroundColor: theme.surfaceSecondary },
|
|
67
|
+
preview: { backgroundColor: theme.surfaceHighlight },
|
|
68
|
+
text: { color: theme.text },
|
|
69
|
+
secondary: { color: theme.textSecondary },
|
|
70
|
+
track: { backgroundColor: theme.border },
|
|
71
|
+
pill: { backgroundColor: theme.surface },
|
|
72
|
+
}),
|
|
73
|
+
[theme]
|
|
74
|
+
);
|
|
63
75
|
|
|
64
76
|
if (isImage && previewUri) {
|
|
65
77
|
return (
|
|
66
|
-
<View style={styles.pendingImageWrapper}>
|
|
78
|
+
<View style={[styles.pendingImageWrapper, t.card]}>
|
|
67
79
|
<Image
|
|
68
80
|
source={{ uri: previewUri }}
|
|
69
81
|
style={styles.pendingImage}
|
|
70
82
|
resizeMode="cover"
|
|
71
83
|
/>
|
|
84
|
+
{/* Scrim + white label sit on top of the image itself, so they
|
|
85
|
+
stay hard-coded: they must read on the photo, not the theme. */}
|
|
72
86
|
<View style={styles.pendingImageOverlay}>
|
|
73
87
|
<ActivityIndicator size="small" color="#FFFFFF" />
|
|
74
88
|
<Text style={styles.pendingOverlayText}>{statusLabel}</Text>
|
|
@@ -79,32 +93,34 @@ const PendingMediaMessage: React.FC<{
|
|
|
79
93
|
|
|
80
94
|
if (isVideo) {
|
|
81
95
|
return (
|
|
82
|
-
<View style={styles.pendingVideoCard}>
|
|
83
|
-
<View style={styles.pendingVideoPreview}>
|
|
96
|
+
<View style={[styles.pendingVideoCard, t.card]}>
|
|
97
|
+
<View style={[styles.pendingVideoPreview, t.preview]}>
|
|
84
98
|
<View style={styles.pendingVideoIcon}>
|
|
85
99
|
<PlayIcon width={24} height={24} />
|
|
86
100
|
</View>
|
|
87
|
-
<ActivityIndicator size="small" color=
|
|
101
|
+
<ActivityIndicator size="small" color={theme.textSecondary} />
|
|
88
102
|
</View>
|
|
89
|
-
<Text style={styles.pendingVideoLabel}>{fileName}</Text>
|
|
90
|
-
<Text style={styles.pendingVideoStatus}>
|
|
103
|
+
<Text style={[styles.pendingVideoLabel, t.text]}>{fileName}</Text>
|
|
104
|
+
<Text style={[styles.pendingVideoStatus, t.secondary]}>
|
|
105
|
+
{statusLabel}
|
|
106
|
+
</Text>
|
|
91
107
|
</View>
|
|
92
108
|
);
|
|
93
109
|
}
|
|
94
110
|
|
|
95
111
|
if (isAudio) {
|
|
96
112
|
return (
|
|
97
|
-
<View style={styles.pendingAudioCard}>
|
|
113
|
+
<View style={[styles.pendingAudioCard, t.card]}>
|
|
98
114
|
<View
|
|
99
115
|
style={[
|
|
100
116
|
styles.pendingAudioButton,
|
|
101
117
|
{ backgroundColor: primaryColor },
|
|
102
118
|
]}
|
|
103
119
|
>
|
|
104
|
-
<PlayIcon width={18} height={18} color=
|
|
120
|
+
<PlayIcon width={18} height={18} color={theme.textOnPrimary} />
|
|
105
121
|
</View>
|
|
106
122
|
<View style={styles.pendingAudioContent}>
|
|
107
|
-
<View style={styles.pendingAudioTrack}>
|
|
123
|
+
<View style={[styles.pendingAudioTrack, t.track]}>
|
|
108
124
|
<View
|
|
109
125
|
style={[
|
|
110
126
|
styles.pendingAudioTrackFill,
|
|
@@ -113,10 +129,12 @@ const PendingMediaMessage: React.FC<{
|
|
|
113
129
|
/>
|
|
114
130
|
</View>
|
|
115
131
|
<View style={styles.pendingAudioMeta}>
|
|
116
|
-
<Text style={styles.pendingAudioTime}>0:00</Text>
|
|
117
|
-
<View style={styles.pendingAudioStatusPill}>
|
|
118
|
-
<ActivityIndicator size="small" color=
|
|
119
|
-
<Text style={styles.pendingAudioStatusText}>
|
|
132
|
+
<Text style={[styles.pendingAudioTime, t.secondary]}>0:00</Text>
|
|
133
|
+
<View style={[styles.pendingAudioStatusPill, t.pill]}>
|
|
134
|
+
<ActivityIndicator size="small" color={theme.textSecondary} />
|
|
135
|
+
<Text style={[styles.pendingAudioStatusText, t.secondary]}>
|
|
136
|
+
{statusLabel}
|
|
137
|
+
</Text>
|
|
120
138
|
</View>
|
|
121
139
|
</View>
|
|
122
140
|
</View>
|
|
@@ -145,6 +163,7 @@ const MediaMessage: React.FC<MediaMessageProps> = ({
|
|
|
145
163
|
isUser,
|
|
146
164
|
}) => {
|
|
147
165
|
const fileToken = useFileToken();
|
|
166
|
+
const theme = useTheme();
|
|
148
167
|
const location = appendFileToken(rawLocation, fileToken);
|
|
149
168
|
const messageText = appendFileToken(rawMessageText, fileToken);
|
|
150
169
|
|
|
@@ -263,7 +282,7 @@ const MediaMessage: React.FC<MediaMessageProps> = ({
|
|
|
263
282
|
}
|
|
264
283
|
}
|
|
265
284
|
}
|
|
266
|
-
return <Text>Unsupported media type</Text>;
|
|
285
|
+
return <Text style={{ color: theme.text }}>Unsupported media type</Text>;
|
|
267
286
|
};
|
|
268
287
|
|
|
269
288
|
export default MediaMessage;
|