@kesha-antonov/react-native-chat 4.2.0 → 4.4.0
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/README.md +253 -47
- package/lib/Actions.d.ts +5 -5
- package/lib/Actions.d.ts.map +1 -1
- package/lib/Actions.js +28 -39
- package/lib/Actions.js.map +1 -1
- package/lib/Avatar.d.ts.map +1 -1
- package/lib/Avatar.js +34 -32
- package/lib/Avatar.js.map +1 -1
- package/lib/Bubble/index.d.ts.map +1 -1
- package/lib/Bubble/index.js +98 -28
- package/lib/Bubble/index.js.map +1 -1
- package/lib/Bubble/styles.d.ts +28 -11
- package/lib/Bubble/styles.d.ts.map +1 -1
- package/lib/Bubble/styles.js +108 -80
- package/lib/Bubble/styles.js.map +1 -1
- package/lib/Bubble/types.d.ts +12 -7
- package/lib/Bubble/types.d.ts.map +1 -1
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts +8 -3
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts.map +1 -1
- package/lib/Chat/ChatKeyboardAvoidingView.js +3 -5
- package/lib/Chat/ChatKeyboardAvoidingView.js.map +1 -1
- package/lib/Chat/index.d.ts +1 -0
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +94 -28
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/types.d.ts +66 -24
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/ChatAvatar.d.ts.map +1 -1
- package/lib/ChatAvatar.js +11 -17
- package/lib/ChatAvatar.js.map +1 -1
- package/lib/ChatContext.d.ts +31 -1
- package/lib/ChatContext.d.ts.map +1 -1
- package/lib/ChatContext.js +4 -0
- package/lib/ChatContext.js.map +1 -1
- package/lib/Color.d.ts.map +1 -1
- package/lib/Color.js +6 -2
- package/lib/Color.js.map +1 -1
- package/lib/Composer.d.ts +14 -1
- package/lib/Composer.d.ts.map +1 -1
- package/lib/Composer.js +68 -50
- package/lib/Composer.js.map +1 -1
- package/lib/Constant.d.ts +1 -0
- package/lib/Constant.d.ts.map +1 -1
- package/lib/Constant.js +1 -0
- package/lib/Constant.js.map +1 -1
- package/lib/Day/index.d.ts.map +1 -1
- package/lib/Day/index.js +7 -3
- package/lib/Day/index.js.map +1 -1
- package/lib/Day/styles.d.ts +6 -7
- package/lib/Day/styles.d.ts.map +1 -1
- package/lib/Day/styles.js +11 -13
- package/lib/Day/styles.js.map +1 -1
- package/lib/Icons.d.ts +24 -0
- package/lib/Icons.d.ts.map +1 -0
- package/lib/Icons.js +2 -0
- package/lib/Icons.js.map +1 -0
- package/lib/InputToolbar.d.ts +18 -5
- package/lib/InputToolbar.d.ts.map +1 -1
- package/lib/InputToolbar.js +246 -19
- package/lib/InputToolbar.js.map +1 -1
- package/lib/LoadEarlierMessages.d.ts.map +1 -1
- package/lib/LoadEarlierMessages.js +12 -7
- package/lib/LoadEarlierMessages.js.map +1 -1
- package/lib/Message/index.d.ts.map +1 -1
- package/lib/Message/index.js +21 -12
- package/lib/Message/index.js.map +1 -1
- package/lib/Message/styles.js +2 -2
- package/lib/Message/styles.js.map +1 -1
- package/lib/MessageAudio.d.ts +2 -1
- package/lib/MessageAudio.d.ts.map +1 -1
- package/lib/MessageAudio.js +121 -19
- package/lib/MessageAudio.js.map +1 -1
- package/lib/MessageLocation.d.ts +9 -0
- package/lib/MessageLocation.d.ts.map +1 -0
- package/lib/MessageLocation.js +85 -0
- package/lib/MessageLocation.js.map +1 -0
- package/lib/MessageText.d.ts +12 -1
- package/lib/MessageText.d.ts.map +1 -1
- package/lib/MessageText.js +38 -11
- package/lib/MessageText.js.map +1 -1
- package/lib/MessageVideo.d.ts +2 -1
- package/lib/MessageVideo.d.ts.map +1 -1
- package/lib/MessageVideo.js +156 -18
- package/lib/MessageVideo.js.map +1 -1
- package/lib/MessagesContainer/components/Item/index.d.ts +2 -1
- package/lib/MessagesContainer/components/Item/index.d.ts.map +1 -1
- package/lib/MessagesContainer/components/Item/index.js +23 -1
- package/lib/MessagesContainer/components/Item/index.js.map +1 -1
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +24 -11
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/styles.d.ts +23 -3
- package/lib/MessagesContainer/styles.d.ts.map +1 -1
- package/lib/MessagesContainer/styles.js +25 -5
- package/lib/MessagesContainer/styles.js.map +1 -1
- package/lib/Models.d.ts +72 -0
- package/lib/Models.d.ts.map +1 -1
- package/lib/QuickReplies.d.ts +1 -1
- package/lib/QuickReplies.d.ts.map +1 -1
- package/lib/QuickReplies.js +13 -7
- package/lib/QuickReplies.js.map +1 -1
- package/lib/Reactions/MessageReactions.d.ts.map +1 -1
- package/lib/Reactions/MessageReactions.js +11 -10
- package/lib/Reactions/MessageReactions.js.map +1 -1
- package/lib/Reactions/ReactionPicker.d.ts.map +1 -1
- package/lib/Reactions/ReactionPicker.js +5 -3
- package/lib/Reactions/ReactionPicker.js.map +1 -1
- package/lib/Send.d.ts +2 -2
- package/lib/Send.d.ts.map +1 -1
- package/lib/Send.js +37 -37
- package/lib/Send.js.map +1 -1
- package/lib/SystemMessage.d.ts.map +1 -1
- package/lib/SystemMessage.js +8 -5
- package/lib/SystemMessage.js.map +1 -1
- package/lib/Theme.d.ts +159 -0
- package/lib/Theme.d.ts.map +1 -0
- package/lib/Theme.js +147 -0
- package/lib/Theme.js.map +1 -0
- package/lib/Time.d.ts.map +1 -1
- package/lib/Time.js +7 -5
- package/lib/Time.js.map +1 -1
- package/lib/TypingIndicator/index.d.ts.map +1 -1
- package/lib/TypingIndicator/index.js +4 -1
- package/lib/TypingIndicator/index.js.map +1 -1
- package/lib/TypingIndicator/styles.d.ts +2 -2
- package/lib/TypingIndicator/styles.d.ts.map +1 -1
- package/lib/TypingIndicator/styles.js +4 -5
- package/lib/TypingIndicator/styles.js.map +1 -1
- package/lib/components/AttachmentSheet.d.ts +28 -0
- package/lib/components/AttachmentSheet.d.ts.map +1 -0
- package/lib/components/AttachmentSheet.js +177 -0
- package/lib/components/AttachmentSheet.js.map +1 -0
- package/lib/components/BasicMarkdown.d.ts +12 -0
- package/lib/components/BasicMarkdown.d.ts.map +1 -0
- package/lib/components/BasicMarkdown.js +220 -0
- package/lib/components/BasicMarkdown.js.map +1 -0
- package/lib/components/ContextMenu.d.ts +25 -0
- package/lib/components/ContextMenu.d.ts.map +1 -0
- package/lib/components/ContextMenu.js +122 -0
- package/lib/components/ContextMenu.js.map +1 -0
- package/lib/components/Icon.d.ts +17 -0
- package/lib/components/Icon.d.ts.map +1 -0
- package/lib/components/Icon.js +19 -0
- package/lib/components/Icon.js.map +1 -0
- package/lib/components/LucideIcon.d.ts +10 -0
- package/lib/components/LucideIcon.d.ts.map +1 -0
- package/lib/components/LucideIcon.js +118 -0
- package/lib/components/LucideIcon.js.map +1 -0
- package/lib/components/MarkdownMessageText.d.ts +19 -0
- package/lib/components/MarkdownMessageText.d.ts.map +1 -0
- package/lib/components/MarkdownMessageText.js +35 -0
- package/lib/components/MarkdownMessageText.js.map +1 -0
- package/lib/components/MediaCard.d.ts +19 -0
- package/lib/components/MediaCard.d.ts.map +1 -0
- package/lib/components/MediaCard.js +102 -0
- package/lib/components/MediaCard.js.map +1 -0
- package/lib/components/MediaControls.d.ts +41 -0
- package/lib/components/MediaControls.d.ts.map +1 -0
- package/lib/components/MediaControls.js +524 -0
- package/lib/components/MediaControls.js.map +1 -0
- package/lib/components/MessageReply.d.ts.map +1 -1
- package/lib/components/MessageReply.js +11 -9
- package/lib/components/MessageReply.js.map +1 -1
- package/lib/components/ReplyPreview.d.ts +3 -1
- package/lib/components/ReplyPreview.d.ts.map +1 -1
- package/lib/components/ReplyPreview.js +37 -36
- package/lib/components/ReplyPreview.js.map +1 -1
- package/lib/components/SendIcon.d.ts +13 -0
- package/lib/components/SendIcon.d.ts.map +1 -0
- package/lib/components/SendIcon.js +37 -0
- package/lib/components/SendIcon.js.map +1 -0
- package/lib/components/Ticks.d.ts +25 -0
- package/lib/components/Ticks.d.ts.map +1 -0
- package/lib/components/Ticks.js +102 -0
- package/lib/components/Ticks.js.map +1 -0
- package/lib/components/VideoNoteOverlay.d.ts +25 -0
- package/lib/components/VideoNoteOverlay.d.ts.map +1 -0
- package/lib/components/VideoNoteOverlay.js +151 -0
- package/lib/components/VideoNoteOverlay.js.map +1 -0
- package/lib/components/VideoNoteRecorder.d.ts +19 -0
- package/lib/components/VideoNoteRecorder.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder.js +634 -0
- package/lib/components/VideoNoteRecorder.js.map +1 -0
- package/lib/components/VideoRecordButton.d.ts +29 -0
- package/lib/components/VideoRecordButton.d.ts.map +1 -0
- package/lib/components/VideoRecordButton.js +117 -0
- package/lib/components/VideoRecordButton.js.map +1 -0
- package/lib/components/VoiceMessageInput.d.ts +33 -0
- package/lib/components/VoiceMessageInput.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput.js +403 -0
- package/lib/components/VoiceMessageInput.js.map +1 -0
- package/lib/components/WaveformPlayer.d.ts +19 -0
- package/lib/components/WaveformPlayer.d.ts.map +1 -0
- package/lib/components/WaveformPlayer.js +367 -0
- package/lib/components/WaveformPlayer.js.map +1 -0
- package/lib/components/mediaPalette.d.ts +23 -0
- package/lib/components/mediaPalette.d.ts.map +1 -0
- package/lib/components/mediaPalette.js +16 -0
- package/lib/components/mediaPalette.js.map +1 -0
- package/lib/components/mediaPlayback.d.ts +22 -0
- package/lib/components/mediaPlayback.d.ts.map +1 -0
- package/lib/components/mediaPlayback.js +34 -0
- package/lib/components/mediaPlayback.js.map +1 -0
- package/lib/dayjsLocales.d.ts +18 -0
- package/lib/dayjsLocales.d.ts.map +1 -0
- package/lib/dayjsLocales.js +36 -0
- package/lib/dayjsLocales.js.map +1 -0
- package/lib/hooks/useColorScheme.d.ts +9 -2
- package/lib/hooks/useColorScheme.d.ts.map +1 -1
- package/lib/hooks/useColorScheme.js +9 -3
- package/lib/hooks/useColorScheme.js.map +1 -1
- package/lib/hooks/useIcons.d.ts +4 -0
- package/lib/hooks/useIcons.d.ts.map +1 -0
- package/lib/hooks/useIcons.js +8 -0
- package/lib/hooks/useIcons.js.map +1 -0
- package/lib/hooks/useIsRTL.d.ts +3 -0
- package/lib/hooks/useIsRTL.d.ts.map +1 -0
- package/lib/hooks/useIsRTL.js +7 -0
- package/lib/hooks/useIsRTL.js.map +1 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +29 -8
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +41 -8
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
- package/lib/hooks/useLabels.d.ts +4 -0
- package/lib/hooks/useLabels.d.ts.map +1 -0
- package/lib/hooks/useLabels.js +8 -0
- package/lib/hooks/useLabels.js.map +1 -0
- package/lib/hooks/useTheme.d.ts +21 -0
- package/lib/hooks/useTheme.d.ts.map +1 -0
- package/lib/hooks/useTheme.js +32 -0
- package/lib/hooks/useTheme.js.map +1 -0
- package/lib/i18n.d.ts +66 -0
- package/lib/i18n.d.ts.map +1 -0
- package/lib/i18n.js +53 -0
- package/lib/i18n.js.map +1 -0
- package/lib/index.d.ts +19 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -0
- package/lib/index.js.map +1 -1
- package/lib/locales/ar.d.ts +3 -0
- package/lib/locales/ar.d.ts.map +1 -0
- package/lib/locales/ar.js +22 -0
- package/lib/locales/ar.js.map +1 -0
- package/lib/locales/de.d.ts +3 -0
- package/lib/locales/de.d.ts.map +1 -0
- package/lib/locales/de.js +22 -0
- package/lib/locales/de.js.map +1 -0
- package/lib/locales/es.d.ts +3 -0
- package/lib/locales/es.d.ts.map +1 -0
- package/lib/locales/es.js +22 -0
- package/lib/locales/es.js.map +1 -0
- package/lib/locales/fr.d.ts +3 -0
- package/lib/locales/fr.d.ts.map +1 -0
- package/lib/locales/fr.js +22 -0
- package/lib/locales/fr.js.map +1 -0
- package/lib/locales/hi.d.ts +3 -0
- package/lib/locales/hi.d.ts.map +1 -0
- package/lib/locales/hi.js +22 -0
- package/lib/locales/hi.js.map +1 -0
- package/lib/locales/id.d.ts +3 -0
- package/lib/locales/id.d.ts.map +1 -0
- package/lib/locales/id.js +22 -0
- package/lib/locales/id.js.map +1 -0
- package/lib/locales/index.d.ts +19 -0
- package/lib/locales/index.d.ts.map +1 -0
- package/lib/locales/index.js +39 -0
- package/lib/locales/index.js.map +1 -0
- package/lib/locales/it.d.ts +3 -0
- package/lib/locales/it.d.ts.map +1 -0
- package/lib/locales/it.js +22 -0
- package/lib/locales/it.js.map +1 -0
- package/lib/locales/ja.d.ts +3 -0
- package/lib/locales/ja.d.ts.map +1 -0
- package/lib/locales/ja.js +22 -0
- package/lib/locales/ja.js.map +1 -0
- package/lib/locales/ko.d.ts +3 -0
- package/lib/locales/ko.d.ts.map +1 -0
- package/lib/locales/ko.js +22 -0
- package/lib/locales/ko.js.map +1 -0
- package/lib/locales/nl.d.ts +3 -0
- package/lib/locales/nl.d.ts.map +1 -0
- package/lib/locales/nl.js +22 -0
- package/lib/locales/nl.js.map +1 -0
- package/lib/locales/pl.d.ts +3 -0
- package/lib/locales/pl.d.ts.map +1 -0
- package/lib/locales/pl.js +22 -0
- package/lib/locales/pl.js.map +1 -0
- package/lib/locales/pt.d.ts +3 -0
- package/lib/locales/pt.d.ts.map +1 -0
- package/lib/locales/pt.js +22 -0
- package/lib/locales/pt.js.map +1 -0
- package/lib/locales/ru.d.ts +3 -0
- package/lib/locales/ru.d.ts.map +1 -0
- package/lib/locales/ru.js +22 -0
- package/lib/locales/ru.js.map +1 -0
- package/lib/locales/tr.d.ts +3 -0
- package/lib/locales/tr.d.ts.map +1 -0
- package/lib/locales/tr.js +22 -0
- package/lib/locales/tr.js.map +1 -0
- package/lib/locales/zh.d.ts +3 -0
- package/lib/locales/zh.d.ts.map +1 -0
- package/lib/locales/zh.js +22 -0
- package/lib/locales/zh.js.map +1 -0
- package/lib/rtl.d.ts +18 -0
- package/lib/rtl.d.ts.map +1 -0
- package/lib/rtl.js +31 -0
- package/lib/rtl.js.map +1 -0
- package/lib/types.d.ts +2 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +99 -44
- package/lib/MessageReply.d.ts +0 -15
- package/lib/MessageReply.d.ts.map +0 -1
- package/lib/MessageReply.js +0 -102
- package/lib/MessageReply.js.map +0 -1
- package/lib/ReplyPreview.d.ts +0 -14
- package/lib/ReplyPreview.d.ts.map +0 -1
- package/lib/ReplyPreview.js +0 -94
- package/lib/ReplyPreview.js.map +0 -1
package/lib/Message/index.js
CHANGED
|
@@ -4,13 +4,16 @@ import ReanimatedSwipeable from 'react-native-gesture-handler/ReanimatedSwipeabl
|
|
|
4
4
|
import Animated, { useAnimatedStyle } from 'react-native-reanimated';
|
|
5
5
|
import { Avatar } from '../Avatar';
|
|
6
6
|
import { Bubble } from '../Bubble';
|
|
7
|
-
import {
|
|
7
|
+
import { useIsRTL } from '../hooks/useIsRTL';
|
|
8
|
+
import { useTheme, useThemedStyles } from '../hooks/useTheme';
|
|
9
|
+
import { mirrorPosition } from '../rtl';
|
|
8
10
|
import { getStyleWithPosition } from '../styles';
|
|
9
11
|
import { SystemMessage } from '../SystemMessage';
|
|
10
12
|
import { isSameUser, renderComponentOrElement } from '../utils';
|
|
11
13
|
import styles from './styles';
|
|
12
14
|
export * from './types';
|
|
13
15
|
const ReplyIcon = ({ progress, direction, position, style }) => {
|
|
16
|
+
const localStyles = useThemedStyles(createLocalStyles);
|
|
14
17
|
const animatedStyle = useAnimatedStyle(() => {
|
|
15
18
|
'worklet';
|
|
16
19
|
const scale = Math.min(progress.value, 1);
|
|
@@ -42,6 +45,12 @@ export const Message = (props) => {
|
|
|
42
45
|
const onSwipeToReply = swipeToReply?.onSwipe;
|
|
43
46
|
const renderSwipeToReplyActionProp = swipeToReply?.renderAction;
|
|
44
47
|
const swipeToReplyActionContainerStyle = swipeToReply?.actionContainerStyle;
|
|
48
|
+
const theme = useTheme();
|
|
49
|
+
const isRTL = useIsRTL();
|
|
50
|
+
// Only for the row's own layout (which side the avatar/bubble render on) -
|
|
51
|
+
// `containerStyle?.[position]` stays keyed by the real, unmirrored `position`
|
|
52
|
+
// below, since that is "my message vs. theirs", not a physical screen side.
|
|
53
|
+
const visualPosition = mirrorPosition(position, isRTL);
|
|
45
54
|
const swipeableRef = useRef(null);
|
|
46
55
|
const renderBubble = useCallback(() => {
|
|
47
56
|
const {
|
|
@@ -100,21 +109,21 @@ export const Message = (props) => {
|
|
|
100
109
|
if (currentMessage?.system)
|
|
101
110
|
return renderSystemMessage();
|
|
102
111
|
return (<View style={[
|
|
103
|
-
getStyleWithPosition(styles, 'container',
|
|
104
|
-
{ marginBottom: sameUser ?
|
|
105
|
-
!props.isInverted && { marginBottom: 2 },
|
|
112
|
+
getStyleWithPosition(styles, 'container', visualPosition),
|
|
113
|
+
{ marginBottom: sameUser ? theme.spacing.withinGroup : theme.spacing.betweenGroups },
|
|
106
114
|
containerStyle?.[position],
|
|
107
115
|
]}>
|
|
108
|
-
{
|
|
116
|
+
{visualPosition === 'left' && renderAvatar()}
|
|
109
117
|
{renderBubble()}
|
|
110
|
-
{
|
|
118
|
+
{visualPosition === 'right' && renderAvatar()}
|
|
111
119
|
</View>);
|
|
112
120
|
}, [
|
|
113
121
|
currentMessage?.system,
|
|
114
122
|
renderSystemMessage,
|
|
115
123
|
position,
|
|
124
|
+
visualPosition,
|
|
116
125
|
sameUser,
|
|
117
|
-
|
|
126
|
+
theme,
|
|
118
127
|
containerStyle,
|
|
119
128
|
renderAvatar,
|
|
120
129
|
renderBubble,
|
|
@@ -132,7 +141,7 @@ export const Message = (props) => {
|
|
|
132
141
|
</ReanimatedSwipeable>
|
|
133
142
|
</View>);
|
|
134
143
|
};
|
|
135
|
-
const
|
|
144
|
+
const createLocalStyles = (theme) => StyleSheet.create({
|
|
136
145
|
swipeActionContainer: {
|
|
137
146
|
width: 40,
|
|
138
147
|
justifyContent: 'center',
|
|
@@ -142,7 +151,7 @@ const localStyles = StyleSheet.create({
|
|
|
142
151
|
width: 28,
|
|
143
152
|
height: 28,
|
|
144
153
|
borderRadius: 14,
|
|
145
|
-
backgroundColor:
|
|
154
|
+
backgroundColor: theme.colors.accent,
|
|
146
155
|
justifyContent: 'center',
|
|
147
156
|
alignItems: 'center',
|
|
148
157
|
},
|
|
@@ -162,7 +171,7 @@ const localStyles = StyleSheet.create({
|
|
|
162
171
|
borderBottomWidth: 5,
|
|
163
172
|
borderBottomColor: 'transparent',
|
|
164
173
|
borderRightWidth: 6,
|
|
165
|
-
borderRightColor:
|
|
174
|
+
borderRightColor: '#fff',
|
|
166
175
|
},
|
|
167
176
|
replyIconLine: {
|
|
168
177
|
position: 'absolute',
|
|
@@ -172,8 +181,8 @@ const localStyles = StyleSheet.create({
|
|
|
172
181
|
height: 4,
|
|
173
182
|
borderTopWidth: 2,
|
|
174
183
|
borderRightWidth: 2,
|
|
175
|
-
borderTopColor:
|
|
176
|
-
borderRightColor:
|
|
184
|
+
borderTopColor: '#fff',
|
|
185
|
+
borderRightColor: '#fff',
|
|
177
186
|
borderTopRightRadius: 4,
|
|
178
187
|
},
|
|
179
188
|
});
|
package/lib/Message/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Message/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,mBAAyC,MAAM,kDAAkD,CAAA;AACxG,OAAO,QAAQ,EAAE,EAAe,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAEjF,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Message/index.tsx"],"names":[],"mappings":"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"}
|
package/lib/Message/styles.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { StyleSheet } from 'react-native';
|
|
2
2
|
export default StyleSheet.create({
|
|
3
3
|
// The row spans the full width so a long-press anywhere beside the bubble
|
|
4
|
-
// still opens the reactions (Telegram-style). The 70% cap
|
|
5
|
-
// itself (see `wrapper` in Bubble/styles).
|
|
4
|
+
// still opens the reactions / context menu (Telegram-style). The 70% cap
|
|
5
|
+
// lives on the bubble itself (see `wrapper` in Bubble/styles).
|
|
6
6
|
container: {
|
|
7
7
|
flexDirection: 'row',
|
|
8
8
|
alignItems: 'flex-end',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Message/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,eAAe,UAAU,CAAC,MAAM,CAAC;IAC/B,0EAA0E;IAC1E,
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Message/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,eAAe,UAAU,CAAC,MAAM,CAAC;IAC/B,0EAA0E;IAC1E,yEAAyE;IACzE,+DAA+D;IAC/D,SAAS,EAAE;QACT,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,UAAU;QACtB,gBAAgB,EAAE,CAAC;KACpB;IACD,cAAc,EAAE;QACd,cAAc,EAAE,YAAY;KAC7B;IACD,eAAe,EAAE;QACf,cAAc,EAAE,UAAU;KAC3B;CACF,CAAC,CAAA"}
|
package/lib/MessageAudio.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
import { IMessage, MessageAudioProps } from './Models';
|
|
3
|
+
export declare function MessageAudio<TMessage extends IMessage = IMessage>({ currentMessage, position, containerStyle, audioStyle, }: Partial<MessageAudioProps<TMessage>>): React.JSX.Element | null;
|
|
3
4
|
//# sourceMappingURL=MessageAudio.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageAudio.d.ts","sourceRoot":"","sources":["../src/MessageAudio.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MessageAudio.d.ts","sourceRoot":"","sources":["../src/MessageAudio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAQ1C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAwEtD,wBAAgB,YAAY,CAAC,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EAAG,EAClE,cAAc,EACd,QAAiB,EACjB,cAAc,EACd,UAAU,GACX,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,4BAetC"}
|
package/lib/MessageAudio.js
CHANGED
|
@@ -1,24 +1,126 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { Icon } from './components/Icon';
|
|
4
|
+
import { MediaCard } from './components/MediaCard';
|
|
5
|
+
import { PauseIcon, PlayIcon } from './components/MediaControls';
|
|
6
|
+
import { getMediaPalette } from './components/mediaPalette';
|
|
7
|
+
import { WaveformPlayer, isWaveformAvailable } from './components/WaveformPlayer';
|
|
8
|
+
import { useThemedStyles } from './hooks/useTheme';
|
|
9
|
+
// Optional inline player. Resolved through a try/catch require so the bundle
|
|
10
|
+
// works whether or not the consumer installed `expo-audio` (Metro treats
|
|
11
|
+
// try/catch-wrapped requires as optional dependencies). When present, audio
|
|
12
|
+
// messages get a real play/pause control with a progress bar; otherwise they
|
|
13
|
+
// fall back to a tappable MediaCard that opens the audio in the system player.
|
|
14
|
+
let expoAudio = null;
|
|
15
|
+
try {
|
|
16
|
+
expoAudio = require('expo-audio');
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
expoAudio = null;
|
|
20
|
+
}
|
|
21
|
+
const isExpoAudioAvailable = !!(expoAudio?.useAudioPlayer && expoAudio?.useAudioPlayerStatus);
|
|
22
|
+
const formatTime = (seconds) => {
|
|
23
|
+
if (!Number.isFinite(seconds) || seconds < 0)
|
|
24
|
+
seconds = 0;
|
|
25
|
+
const mins = Math.floor(seconds / 60);
|
|
26
|
+
const secs = Math.floor(seconds % 60);
|
|
27
|
+
return `${mins}:${secs.toString().padStart(2, '0')}`;
|
|
28
|
+
};
|
|
29
|
+
// Only mounted when expo-audio resolved, so the hooks below always run in a
|
|
30
|
+
// stable order.
|
|
31
|
+
const ExpoAudioPlayer = ({ uri, position }) => {
|
|
32
|
+
const player = expoAudio.useAudioPlayer(uri);
|
|
33
|
+
const status = expoAudio.useAudioPlayerStatus(player);
|
|
34
|
+
const styles = useThemedStyles(position === 'right' ? createRightStyles : createLeftStyles);
|
|
35
|
+
const isPlaying = !!status?.playing;
|
|
36
|
+
const duration = status?.duration ?? 0;
|
|
37
|
+
const currentTime = status?.currentTime ?? 0;
|
|
38
|
+
const progress = duration > 0 ? Math.min(1, currentTime / duration) : 0;
|
|
39
|
+
const togglePlayback = useCallback(() => {
|
|
40
|
+
if (status?.playing) {
|
|
41
|
+
player.pause();
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (status?.didJustFinish || (duration > 0 && currentTime >= duration))
|
|
45
|
+
player.seekTo(0);
|
|
46
|
+
player.play();
|
|
47
|
+
}
|
|
48
|
+
}, [player, status, duration, currentTime]);
|
|
49
|
+
return (<View style={styles.audioRow}>
|
|
50
|
+
<Pressable onPress={togglePlayback} accessibilityRole='button' accessibilityLabel={isPlaying ? 'pause' : 'play'} style={styles.playCircle}>
|
|
51
|
+
{isPlaying
|
|
52
|
+
? <Icon name='pause' color={styles.glyphColor.color} size={14} fallback={<PauseIcon color={styles.glyphColor.color} size={14}/>}/>
|
|
53
|
+
: <Icon name='play' color={styles.glyphColor.color} size={14} fallback={<PlayIcon color={styles.glyphColor.color} size={14}/>}/>}
|
|
54
|
+
</Pressable>
|
|
55
|
+
<View style={styles.track}>
|
|
56
|
+
{/* progress fill width is a runtime value, so it stays inline */}
|
|
57
|
+
<View style={[styles.trackFill, { width: `${progress * 100}%` }]}/>
|
|
58
|
+
</View>
|
|
59
|
+
<Text style={styles.time}>
|
|
60
|
+
{formatTime(currentTime > 0 ? currentTime : duration)}
|
|
61
|
+
</Text>
|
|
62
|
+
</View>);
|
|
63
|
+
};
|
|
64
|
+
export function MessageAudio({ currentMessage, position = 'left', containerStyle, audioStyle, }) {
|
|
65
|
+
const uri = currentMessage?.audio;
|
|
66
|
+
if (!uri)
|
|
67
|
+
return null;
|
|
68
|
+
return (<View style={[styles.container, containerStyle]}>
|
|
69
|
+
{isWaveformAvailable
|
|
70
|
+
? <WaveformPlayer uri={uri} position={position} duration={currentMessage?.duration}/>
|
|
71
|
+
: isExpoAudioAvailable
|
|
72
|
+
? <ExpoAudioPlayer uri={uri} position={position}/>
|
|
73
|
+
: <MediaCard kind='audio' uri={uri} position={position} style={audioStyle}/>}
|
|
74
|
+
</View>);
|
|
75
|
+
}
|
|
76
|
+
const makeStyles = (theme, position) => {
|
|
77
|
+
const palette = getMediaPalette(theme, position);
|
|
78
|
+
return StyleSheet.create({
|
|
79
|
+
// Carries the glyph color out of JSX and into the stylesheet.
|
|
80
|
+
glyphColor: {
|
|
81
|
+
color: palette.glyph,
|
|
82
|
+
},
|
|
83
|
+
audioRow: {
|
|
84
|
+
flexDirection: 'row',
|
|
85
|
+
alignItems: 'center',
|
|
86
|
+
paddingVertical: 6,
|
|
87
|
+
paddingHorizontal: 8,
|
|
88
|
+
minWidth: 200,
|
|
89
|
+
gap: 10,
|
|
90
|
+
},
|
|
91
|
+
playCircle: {
|
|
92
|
+
width: 36,
|
|
93
|
+
height: 36,
|
|
94
|
+
borderRadius: 18,
|
|
95
|
+
backgroundColor: palette.control,
|
|
96
|
+
alignItems: 'center',
|
|
97
|
+
justifyContent: 'center',
|
|
98
|
+
},
|
|
99
|
+
track: {
|
|
100
|
+
flex: 1,
|
|
101
|
+
height: 3,
|
|
102
|
+
borderRadius: 2,
|
|
103
|
+
backgroundColor: palette.track,
|
|
104
|
+
overflow: 'hidden',
|
|
105
|
+
},
|
|
106
|
+
trackFill: {
|
|
107
|
+
height: 3,
|
|
108
|
+
borderRadius: 2,
|
|
109
|
+
backgroundColor: palette.progress,
|
|
110
|
+
},
|
|
111
|
+
time: {
|
|
112
|
+
fontSize: 12,
|
|
113
|
+
color: palette.meta,
|
|
114
|
+
minWidth: 34,
|
|
115
|
+
textAlign: 'right',
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
const createLeftStyles = (theme) => makeStyles(theme, 'left');
|
|
120
|
+
const createRightStyles = (theme) => makeStyles(theme, 'right');
|
|
4
121
|
const styles = StyleSheet.create({
|
|
5
122
|
container: {
|
|
6
|
-
|
|
7
|
-
},
|
|
8
|
-
text: {
|
|
9
|
-
color: Color.alizarin,
|
|
10
|
-
fontWeight: '600',
|
|
123
|
+
overflow: 'hidden',
|
|
11
124
|
},
|
|
12
125
|
});
|
|
13
|
-
export function MessageAudio() {
|
|
14
|
-
const content = useMemo(() => (<View style={styles.container}>
|
|
15
|
-
<Text style={styles.text}>
|
|
16
|
-
{'Audio is not implemented by Chat.'}
|
|
17
|
-
</Text>
|
|
18
|
-
<Text style={styles.text}>
|
|
19
|
-
{'\nYou need to provide your own implementation by using renderMessageAudio prop.'}
|
|
20
|
-
</Text>
|
|
21
|
-
</View>), []);
|
|
22
|
-
return content;
|
|
23
|
-
}
|
|
24
126
|
//# sourceMappingURL=MessageAudio.js.map
|
package/lib/MessageAudio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageAudio.js","sourceRoot":"","sources":["../src/MessageAudio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"MessageAudio.js","sourceRoot":"","sources":["../src/MessageAudio.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IMessage, MessageLocationProps } from './Models';
|
|
3
|
+
/**
|
|
4
|
+
* Default renderer for location messages. Dependency-free: shows a styled map
|
|
5
|
+
* card and opens the coordinates in the system maps app on tap (override via
|
|
6
|
+
* the `onPress` prop or `renderMessageLocation`).
|
|
7
|
+
*/
|
|
8
|
+
export declare function MessageLocation<TMessage extends IMessage = IMessage>({ currentMessage, position, containerStyle, locationStyle, onPress, }: Partial<MessageLocationProps<TMessage>>): React.JSX.Element | null;
|
|
9
|
+
//# sourceMappingURL=MessageLocation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageLocation.d.ts","sourceRoot":"","sources":["../src/MessageLocation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAM1C,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAUzD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EAAG,EACrE,cAAc,EACd,QAAiB,EACjB,cAAc,EACd,aAAa,EACb,OAAO,GACR,EAAE,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,4BAyCzC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { Linking, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { Icon } from './components/Icon';
|
|
4
|
+
import { PinIcon } from './components/MediaControls';
|
|
5
|
+
import { useLabels } from './hooks/useLabels';
|
|
6
|
+
import { useThemedStyles } from './hooks/useTheme';
|
|
7
|
+
const buildMapsUrl = (latitude, longitude) => Platform.select({
|
|
8
|
+
ios: `https://maps.apple.com/?ll=${latitude},${longitude}&q=${latitude},${longitude}`,
|
|
9
|
+
android: `geo:${latitude},${longitude}?q=${latitude},${longitude}`,
|
|
10
|
+
default: `https://www.google.com/maps/search/?api=1&query=${latitude},${longitude}`,
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Default renderer for location messages. Dependency-free: shows a styled map
|
|
14
|
+
* card and opens the coordinates in the system maps app on tap (override via
|
|
15
|
+
* the `onPress` prop or `renderMessageLocation`).
|
|
16
|
+
*/
|
|
17
|
+
export function MessageLocation({ currentMessage, position = 'left', containerStyle, locationStyle, onPress, }) {
|
|
18
|
+
const styles = useThemedStyles(position === 'right' ? createRightStyles : createLeftStyles);
|
|
19
|
+
const labels = useLabels();
|
|
20
|
+
const location = currentMessage?.location;
|
|
21
|
+
const handlePress = useCallback(() => {
|
|
22
|
+
if (!location)
|
|
23
|
+
return;
|
|
24
|
+
if (onPress) {
|
|
25
|
+
onPress(location);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
Linking.openURL(buildMapsUrl(location.latitude, location.longitude)).catch(() => { });
|
|
29
|
+
}, [location, onPress]);
|
|
30
|
+
if (!location)
|
|
31
|
+
return null;
|
|
32
|
+
const coords = `${location.latitude.toFixed(5)}, ${location.longitude.toFixed(5)}`;
|
|
33
|
+
return (<View style={[styles.container, containerStyle]}>
|
|
34
|
+
<Pressable onPress={handlePress} accessibilityRole='button' accessibilityLabel={labels.openLocationAccessibility} style={[styles.card, locationStyle]}>
|
|
35
|
+
<View style={styles.map}>
|
|
36
|
+
<Icon name='pin' color='#fff' size={26} fallback={<PinIcon color='#fff' size={26}/>}/>
|
|
37
|
+
</View>
|
|
38
|
+
<View style={styles.meta}>
|
|
39
|
+
<Text style={styles.title} numberOfLines={1}>{labels.location}</Text>
|
|
40
|
+
<Text style={styles.coords} numberOfLines={1}>{coords}</Text>
|
|
41
|
+
</View>
|
|
42
|
+
</Pressable>
|
|
43
|
+
</View>);
|
|
44
|
+
}
|
|
45
|
+
const makeStyles = (theme, position) => {
|
|
46
|
+
const overlay = position === 'right' ? theme.colors.outgoingOverlay : theme.colors.reactionBackground;
|
|
47
|
+
const titleColor = position === 'right' ? theme.colors.outgoingText : theme.colors.incomingText;
|
|
48
|
+
const metaColor = position === 'right' ? theme.colors.outgoingMeta : theme.colors.incomingMeta;
|
|
49
|
+
return StyleSheet.create({
|
|
50
|
+
container: {
|
|
51
|
+
overflow: 'hidden',
|
|
52
|
+
},
|
|
53
|
+
card: {
|
|
54
|
+
width: 220,
|
|
55
|
+
borderRadius: 12,
|
|
56
|
+
overflow: 'hidden',
|
|
57
|
+
margin: 6,
|
|
58
|
+
backgroundColor: overlay,
|
|
59
|
+
},
|
|
60
|
+
map: {
|
|
61
|
+
height: 110,
|
|
62
|
+
alignItems: 'center',
|
|
63
|
+
justifyContent: 'center',
|
|
64
|
+
backgroundColor: theme.colors.accent,
|
|
65
|
+
opacity: 0.85,
|
|
66
|
+
},
|
|
67
|
+
meta: {
|
|
68
|
+
paddingHorizontal: 12,
|
|
69
|
+
paddingVertical: 8,
|
|
70
|
+
},
|
|
71
|
+
title: {
|
|
72
|
+
fontSize: 14,
|
|
73
|
+
fontWeight: '600',
|
|
74
|
+
color: titleColor,
|
|
75
|
+
},
|
|
76
|
+
coords: {
|
|
77
|
+
marginTop: 2,
|
|
78
|
+
fontSize: 12,
|
|
79
|
+
color: metaColor,
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
const createLeftStyles = (theme) => makeStyles(theme, 'left');
|
|
84
|
+
const createRightStyles = (theme) => makeStyles(theme, 'right');
|
|
85
|
+
//# sourceMappingURL=MessageLocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageLocation.js","sourceRoot":"","sources":["../src/MessageLocation.tsx"],"names":[],"mappings":"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"}
|
package/lib/MessageText.d.ts
CHANGED
|
@@ -19,6 +19,17 @@ export type MessageTextProps<TMessage extends IMessage> = {
|
|
|
19
19
|
hashtagUrl?: string;
|
|
20
20
|
mentionUrl?: string;
|
|
21
21
|
stripPrefix?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Render the message body as markdown (great for AI/streamed replies). `true`
|
|
24
|
+
* forces markdown for every message, `false` disables it; when left unset,
|
|
25
|
+
* streamed messages render as markdown automatically. Uses the optional
|
|
26
|
+
* `react-native-streamdown` peer when installed (best handling of
|
|
27
|
+
* streaming-incomplete markdown), otherwise a built-in dependency-free renderer
|
|
28
|
+
* covering headings, lists, blockquotes, code, bold/italic/strikethrough and links.
|
|
29
|
+
*/
|
|
30
|
+
markdown?: boolean;
|
|
31
|
+
/** Extra props forwarded to the Streamdown component (its own theming/rules API); only used when streamdown is installed. */
|
|
32
|
+
markdownProps?: Record<string, unknown>;
|
|
22
33
|
};
|
|
23
|
-
export declare function MessageText<TMessage extends IMessage>({ currentMessage, position, containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, onPress: onPressProp, matchers, email, phone, url, hashtag, mention, hashtagUrl, mentionUrl, stripPrefix, }: MessageTextProps<TMessage>): React.JSX.Element;
|
|
34
|
+
export declare function MessageText<TMessage extends IMessage>({ currentMessage, position, containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, onPress: onPressProp, matchers, email, phone, url, hashtag, mention, hashtagUrl, mentionUrl, stripPrefix, markdown, markdownProps, }: MessageTextProps<TMessage>): React.JSX.Element;
|
|
24
35
|
//# sourceMappingURL=MessageText.d.ts.map
|
package/lib/MessageText.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageText.d.ts","sourceRoot":"","sources":["../src/MessageText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAA;AACnD,OAAO,EAEL,SAAS,EACT,SAAS,EACT,SAAS,EAEH,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"MessageText.d.ts","sourceRoot":"","sources":["../src/MessageText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAA;AACnD,OAAO,EAEL,SAAS,EACT,SAAS,EACT,SAAS,EAEH,MAAM,cAAc,CAAA;AAM5B,OAAO,EAAc,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGnD,MAAM,MAAM,gBAAgB,CAAC,QAAQ,SAAS,QAAQ,IAAI;IACxD,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,cAAc,EAAE,QAAQ,CAAA;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IAC1C,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACrC,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACrC,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACtC,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,QAAQ,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,QAAQ,KACX,IAAI,CAAA;IAET,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,6HAA6H;IAC7H,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACxC,CAAA;AAED,wBAAgB,WAAW,CAAC,QAAQ,SAAS,QAAQ,EAAE,EACrD,cAAc,EACd,QAAiB,EACjB,cAAc,EACd,SAAS,EACT,SAAS,EAAE,aAAa,EACxB,eAAe,EACf,OAAO,EAAE,WAAW,EACpB,QAAQ,EACR,KAAY,EACZ,KAAY,EACZ,GAAU,EACV,OAAe,EACf,OAAe,EACf,UAAU,EACV,UAAU,EACV,WAAmB,EACnB,QAAQ,EACR,aAAa,GACd,EAAE,gBAAgB,CAAC,QAAQ,CAAC,qBA8F5B"}
|
package/lib/MessageText.js
CHANGED
|
@@ -1,23 +1,46 @@
|
|
|
1
1
|
import React, { useMemo, useCallback } from 'react';
|
|
2
2
|
import { StyleSheet, View, Text } from 'react-native';
|
|
3
|
+
import { BasicMarkdown } from './components/BasicMarkdown';
|
|
4
|
+
import { MarkdownMessageText, isMarkdownAvailable } from './components/MarkdownMessageText';
|
|
3
5
|
import { StreamingCursor } from './components/StreamingCursor';
|
|
6
|
+
import { useThemedStyles } from './hooks/useTheme';
|
|
4
7
|
import { LinkParser } from './linkParser';
|
|
5
|
-
export function MessageText({ currentMessage, position = 'left', containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, onPress: onPressProp, matchers, email = true, phone = true, url = true, hashtag = false, mention = false, hashtagUrl, mentionUrl, stripPrefix = false, }) {
|
|
8
|
+
export function MessageText({ currentMessage, position = 'left', containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, onPress: onPressProp, matchers, email = true, phone = true, url = true, hashtag = false, mention = false, hashtagUrl, mentionUrl, stripPrefix = false, markdown, markdownProps, }) {
|
|
9
|
+
const styles = useThemedStyles(createStyles);
|
|
6
10
|
const linkStyle = useMemo(() => StyleSheet.flatten([
|
|
7
11
|
styles.link,
|
|
12
|
+
position === 'left' && styles.link_left,
|
|
8
13
|
linkStyleProp?.[position],
|
|
9
|
-
]), [position, linkStyleProp]);
|
|
14
|
+
]), [styles, position, linkStyleProp]);
|
|
10
15
|
const style = useMemo(() => [
|
|
16
|
+
styles.text,
|
|
11
17
|
styles[`text_${position}`],
|
|
12
18
|
textStyle?.[position],
|
|
13
19
|
customTextStyle,
|
|
14
|
-
], [position, textStyle, customTextStyle]);
|
|
20
|
+
], [styles, position, textStyle, customTextStyle]);
|
|
15
21
|
const handlePress = useCallback((url, type) => {
|
|
16
22
|
onPressProp?.(currentMessage, url, type);
|
|
17
23
|
}, [onPressProp, currentMessage]);
|
|
18
24
|
const isStreaming = !!currentMessage?.streaming;
|
|
25
|
+
// Render markdown when explicitly enabled, or when the message is being
|
|
26
|
+
// streamed (AI replies) and it wasn't explicitly disabled. Prefer
|
|
27
|
+
// react-native-streamdown when installed (best streaming-incomplete handling),
|
|
28
|
+
// otherwise fall back to the built-in dependency-free renderer.
|
|
29
|
+
const wantMarkdown = markdown !== false && (markdown === true || isStreaming);
|
|
30
|
+
if (wantMarkdown && isMarkdownAvailable)
|
|
31
|
+
return (<MarkdownMessageText text={currentMessage.text} isStreaming={isStreaming} textStyle={style} containerStyle={[styles.container, containerStyle?.[position]]} componentProps={markdownProps}/>);
|
|
32
|
+
if (wantMarkdown)
|
|
33
|
+
return (<View style={[styles.container, containerStyle?.[position]]}>
|
|
34
|
+
<BasicMarkdown text={currentMessage.text} textStyle={style} linkStyle={linkStyle} onLinkPress={onPressProp ? (link) => handlePress(link, 'url') : undefined}/>
|
|
35
|
+
{isStreaming && (<Text style={style}>
|
|
36
|
+
<StreamingCursor />
|
|
37
|
+
</Text>)}
|
|
38
|
+
</View>);
|
|
19
39
|
const parsed = (<LinkParser text={currentMessage.text} matchers={matchers} email={email} phone={phone} url={url} hashtag={hashtag} mention={mention} hashtagUrl={hashtagUrl} mentionUrl={mentionUrl} stripPrefix={stripPrefix} linkStyle={linkStyle} textStyle={style} onPress={onPressProp ? handlePress : undefined} TextComponent={Text}/>);
|
|
20
|
-
return (<View style={[
|
|
40
|
+
return (<View style={[
|
|
41
|
+
styles.container,
|
|
42
|
+
containerStyle?.[position],
|
|
43
|
+
]}>
|
|
21
44
|
{isStreaming
|
|
22
45
|
? (
|
|
23
46
|
// Wrap in a Text so the caret flows inline after the last word and
|
|
@@ -29,23 +52,27 @@ export function MessageText({ currentMessage, position = 'left', containerStyle,
|
|
|
29
52
|
: parsed}
|
|
30
53
|
</View>);
|
|
31
54
|
}
|
|
32
|
-
const
|
|
55
|
+
const createStyles = (theme) => StyleSheet.create({
|
|
33
56
|
container: {
|
|
34
|
-
marginVertical:
|
|
35
|
-
marginHorizontal:
|
|
57
|
+
marginVertical: theme.spacing.bubblePaddingV,
|
|
58
|
+
marginHorizontal: theme.spacing.bubblePaddingH,
|
|
36
59
|
},
|
|
37
60
|
text: {
|
|
38
|
-
fontSize:
|
|
39
|
-
lineHeight:
|
|
61
|
+
fontSize: theme.typography.message.fontSize,
|
|
62
|
+
lineHeight: theme.typography.message.lineHeight,
|
|
63
|
+
fontWeight: theme.typography.message.fontWeight,
|
|
40
64
|
},
|
|
41
65
|
text_left: {
|
|
42
|
-
color:
|
|
66
|
+
color: theme.colors.incomingText,
|
|
43
67
|
},
|
|
44
68
|
text_right: {
|
|
45
|
-
color:
|
|
69
|
+
color: theme.colors.outgoingText,
|
|
46
70
|
},
|
|
47
71
|
link: {
|
|
48
72
|
textDecorationLine: 'underline',
|
|
49
73
|
},
|
|
74
|
+
link_left: {
|
|
75
|
+
color: theme.colors.accent,
|
|
76
|
+
},
|
|
50
77
|
});
|
|
51
78
|
//# sourceMappingURL=MessageText.js.map
|
package/lib/MessageText.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageText.js","sourceRoot":"","sources":["../src/MessageText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EACL,UAAU,EAIV,IAAI,EACJ,IAAI,EAAE,MAAM,cAAc,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAyB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"MessageText.js","sourceRoot":"","sources":["../src/MessageText.tsx"],"names":[],"mappings":"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"}
|
package/lib/MessageVideo.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
import { IMessage, MessageVideoProps } from './Models';
|
|
3
|
+
export declare function MessageVideo<TMessage extends IMessage = IMessage>({ currentMessage, position, containerStyle, videoStyle, videoProps, }: Partial<MessageVideoProps<TMessage>>): React.JSX.Element | null;
|
|
3
4
|
//# sourceMappingURL=MessageVideo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageVideo.d.ts","sourceRoot":"","sources":["../src/MessageVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MessageVideo.d.ts","sourceRoot":"","sources":["../src/MessageVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAK9E,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AA2JtD,wBAAgB,YAAY,CAAC,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EAAG,EAClE,cAAc,EACd,QAAiB,EACjB,cAAc,EACd,UAAU,EACV,UAAU,GACX,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,4BAoCtC"}
|