@messenger-box/platform-mobile 10.0.3-alpha.20 → 10.0.3-alpha.201

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.
Files changed (112) hide show
  1. package/lib/components/messages-container-ui/BuildModeView.js +428 -0
  2. package/lib/components/messages-container-ui/BuildModeView.js.map +1 -0
  3. package/lib/components/messages-container-ui/MessagesContainerUI.js +55 -0
  4. package/lib/components/messages-container-ui/MessagesContainerUI.js.map +1 -0
  5. package/lib/components/messages-container-ui/PlanModeView.js +336 -0
  6. package/lib/components/messages-container-ui/PlanModeView.js.map +1 -0
  7. package/lib/compute.js +2 -3
  8. package/lib/compute.js.map +1 -1
  9. package/lib/index.js +1 -1
  10. package/lib/index.js.map +1 -1
  11. package/lib/module.js.map +1 -1
  12. package/lib/queries/inboxQueries.js +62 -0
  13. package/lib/queries/inboxQueries.js.map +1 -0
  14. package/lib/routes.json +2 -3
  15. package/lib/screens/inbox/DialogMessages.js +8 -3
  16. package/lib/screens/inbox/DialogMessages.js.map +1 -1
  17. package/lib/screens/inbox/DialogThreadMessages.js +6 -11
  18. package/lib/screens/inbox/DialogThreadMessages.js.map +1 -1
  19. package/lib/screens/inbox/DialogThreads.js +58 -20
  20. package/lib/screens/inbox/DialogThreads.js.map +1 -1
  21. package/lib/screens/inbox/Inbox.js.map +1 -1
  22. package/lib/screens/inbox/components/CachedImage/consts.js +1 -1
  23. package/lib/screens/inbox/components/CachedImage/consts.js.map +1 -1
  24. package/lib/screens/inbox/components/CachedImage/index.js +125 -115
  25. package/lib/screens/inbox/components/CachedImage/index.js.map +1 -1
  26. package/lib/screens/inbox/components/DialogItem.js +160 -0
  27. package/lib/screens/inbox/components/DialogItem.js.map +1 -0
  28. package/lib/screens/inbox/components/GiftedChatInboxComponent.js +315 -0
  29. package/lib/screens/inbox/components/GiftedChatInboxComponent.js.map +1 -0
  30. package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.js +3 -1
  31. package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.js.map +1 -1
  32. package/lib/screens/inbox/components/SlackMessageContainer/PaymentMessage.js +194 -0
  33. package/lib/screens/inbox/components/SlackMessageContainer/PaymentMessage.js.map +1 -0
  34. package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.js +149 -36
  35. package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.js.map +1 -1
  36. package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.js +4 -5
  37. package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.js.map +1 -1
  38. package/lib/screens/inbox/components/SubscriptionHandler.js +22 -0
  39. package/lib/screens/inbox/components/SubscriptionHandler.js.map +1 -0
  40. package/lib/screens/inbox/components/ThreadsViewItem.js +67 -47
  41. package/lib/screens/inbox/components/ThreadsViewItem.js.map +1 -1
  42. package/lib/screens/inbox/config/config.js +4 -2
  43. package/lib/screens/inbox/config/config.js.map +1 -1
  44. package/lib/screens/inbox/containers/ConversationView.js +1099 -1094
  45. package/lib/screens/inbox/containers/ConversationView.js.map +1 -1
  46. package/lib/screens/inbox/containers/Dialogs.js +132 -534
  47. package/lib/screens/inbox/containers/Dialogs.js.map +1 -1
  48. package/lib/screens/inbox/containers/ThreadConversationView.js +876 -1357
  49. package/lib/screens/inbox/containers/ThreadConversationView.js.map +1 -1
  50. package/lib/screens/inbox/containers/ThreadsView.js +81 -54
  51. package/lib/screens/inbox/containers/ThreadsView.js.map +1 -1
  52. package/lib/screens/inbox/hooks/useInboxMessages.js +31 -0
  53. package/lib/screens/inbox/hooks/useInboxMessages.js.map +1 -0
  54. package/lib/screens/inbox/hooks/useSafeDialogThreadsMachine.js +108 -0
  55. package/lib/screens/inbox/hooks/useSafeDialogThreadsMachine.js.map +1 -0
  56. package/lib/screens/inbox/workflow/dialog-threads-xstate.js +151 -0
  57. package/lib/screens/inbox/workflow/dialog-threads-xstate.js.map +1 -0
  58. package/package.json +9 -7
  59. package/CHANGELOG.md +0 -164
  60. package/jest.config.js +0 -24
  61. package/lib/screens/inbox/components/DialogsListItem.js +0 -548
  62. package/lib/screens/inbox/components/DialogsListItem.js.map +0 -1
  63. package/lib/screens/inbox/components/ServiceDialogsListItem.js +0 -489
  64. package/lib/screens/inbox/components/ServiceDialogsListItem.js.map +0 -1
  65. package/lib/screens/inbox/components/workflow/dialogs-list-item-xstate.js +0 -175
  66. package/lib/screens/inbox/components/workflow/dialogs-list-item-xstate.js.map +0 -1
  67. package/lib/screens/inbox/components/workflow/service-dialogs-list-item-xstate.js +0 -191
  68. package/lib/screens/inbox/components/workflow/service-dialogs-list-item-xstate.js.map +0 -1
  69. package/lib/screens/inbox/containers/workflow/conversation-xstate.js +0 -380
  70. package/lib/screens/inbox/containers/workflow/conversation-xstate.js.map +0 -1
  71. package/lib/screens/inbox/containers/workflow/dialogs-xstate.js +0 -211
  72. package/lib/screens/inbox/containers/workflow/dialogs-xstate.js.map +0 -1
  73. package/lib/screens/inbox/containers/workflow/thread-conversation-xstate.js +0 -438
  74. package/lib/screens/inbox/containers/workflow/thread-conversation-xstate.js.map +0 -1
  75. package/rollup.config.mjs +0 -45
  76. package/src/components/index.ts +0 -0
  77. package/src/compute.ts +0 -63
  78. package/src/index.ts +0 -7
  79. package/src/module.ts +0 -10
  80. package/src/navigation/InboxNavigation.tsx +0 -102
  81. package/src/navigation/index.ts +0 -1
  82. package/src/screens/inbox/DialogMessages.tsx +0 -21
  83. package/src/screens/inbox/DialogThreadMessages.tsx +0 -97
  84. package/src/screens/inbox/DialogThreads.tsx +0 -129
  85. package/src/screens/inbox/Inbox.tsx +0 -17
  86. package/src/screens/inbox/components/CachedImage/consts.ts +0 -6
  87. package/src/screens/inbox/components/CachedImage/index.tsx +0 -223
  88. package/src/screens/inbox/components/DialogsHeader.tsx +0 -30
  89. package/src/screens/inbox/components/DialogsListItem.tsx +0 -819
  90. package/src/screens/inbox/components/ServiceDialogsListItem.tsx +0 -679
  91. package/src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx +0 -113
  92. package/src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx +0 -313
  93. package/src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx +0 -145
  94. package/src/screens/inbox/components/SlackMessageContainer/index.ts +0 -3
  95. package/src/screens/inbox/components/SupportServiceDialogsListItem.tsx +0 -301
  96. package/src/screens/inbox/components/ThreadsViewItem.tsx +0 -321
  97. package/src/screens/inbox/components/workflow/dialogs-list-item-xstate.ts +0 -145
  98. package/src/screens/inbox/components/workflow/service-dialogs-list-item-xstate.ts +0 -159
  99. package/src/screens/inbox/config/config.ts +0 -15
  100. package/src/screens/inbox/config/index.ts +0 -1
  101. package/src/screens/inbox/containers/ConversationView.tsx +0 -1782
  102. package/src/screens/inbox/containers/Dialogs.tsx +0 -794
  103. package/src/screens/inbox/containers/SupportServiceDialogs.tsx +0 -119
  104. package/src/screens/inbox/containers/ThreadConversationView.tsx +0 -2312
  105. package/src/screens/inbox/containers/ThreadsView.tsx +0 -305
  106. package/src/screens/inbox/containers/workflow/apollo/handleResult.ts +0 -20
  107. package/src/screens/inbox/containers/workflow/conversation-xstate.ts +0 -313
  108. package/src/screens/inbox/containers/workflow/dialogs-xstate.ts +0 -196
  109. package/src/screens/inbox/containers/workflow/thread-conversation-xstate.ts +0 -401
  110. package/src/screens/index.ts +0 -4
  111. package/tsconfig.json +0 -13
  112. package/webpack.config.js +0 -58
@@ -1,113 +0,0 @@
1
- import React, {useState} from 'react';
2
- import {Alert, Modal, StyleSheet, Text, Pressable, View,SafeAreaView,StatusBar} from 'react-native';
3
-
4
- const ImageViewerModal = ({children,isVisible=false,setVisible,modalContent=null}:any) => {
5
-
6
- return (
7
- <Modal
8
- animationType="slide"
9
- // transparent={true}
10
- visible={isVisible}
11
- presentationStyle={'fullScreen'}
12
- style={{flex:1}}
13
- onRequestClose={() => {
14
- setVisible(false);
15
- }}>
16
- <View style={styles.container}>
17
- <View style={styles.headerView}>
18
- {/* <View><Text></Text></View>
19
- <View><Text></Text></View> */}
20
- <View style={{alignSelf:'flex-end',paddingRight:5}} >
21
- <Pressable
22
- style={[styles.button, styles.buttonClose]}
23
- onPress={() => setVisible(false)}>
24
- <Text style={styles.headerTextStyle}>X</Text>
25
- </Pressable></View>
26
- </View>
27
- <View style={styles.centeredView}>
28
- {modalContent ? modalContent : children}
29
- </View>
30
- <View style={styles.footerView}>
31
-
32
- </View>
33
- </View>
34
- </Modal>
35
- );
36
- };
37
-
38
- const styles = StyleSheet.create({
39
- container:{
40
- flex:1,
41
- },
42
- headerView:{
43
- width:'100%',
44
- alignItems: 'center',
45
- justifyContent:'space-between',
46
- // backgroundColor:'rgba(r, g, b, a)',
47
- backgroundColor:'#000',
48
- paddingTop:50,
49
- paddingBottom:10,
50
- },
51
- centeredView: {
52
- flex: 1,
53
- justifyContent: 'center',
54
- alignItems: 'center',
55
- backgroundColor: 'white',
56
-
57
- borderRadius: 20,
58
- shadowColor: '#000',
59
- shadowOffset: {
60
- width: 0,
61
- height: 2,
62
- },
63
- shadowOpacity: 0.25,
64
- shadowRadius: 4,
65
- elevation: 5,
66
- },
67
- footerView:{
68
- minHeight:100,
69
- backgroundColor:'#000'
70
- },
71
- modalView: {
72
- flex:1,
73
- backgroundColor: 'white',
74
- borderRadius: 20,
75
- alignItems: 'center',
76
- shadowColor: '#000',
77
- shadowOffset: {
78
- width: 0,
79
- height: 2,
80
- },
81
- shadowOpacity: 0.25,
82
- shadowRadius: 4,
83
- elevation: 5,
84
- },
85
- button: {
86
- borderRadius: 20,
87
- padding: 10,
88
- elevation: 2,
89
- },
90
- buttonOpen: {
91
- backgroundColor: '#F194FF',
92
- },
93
- buttonClose: {
94
- backgroundColor: 'transparent',
95
- },
96
- textStyle: {
97
- color: 'white',
98
- fontWeight: 'bold',
99
- textAlign: 'center',
100
- },
101
- headerTextStyle:{
102
- color: '#fff',
103
- // fontWeight: 'bold',
104
- textAlign: 'center',
105
- fontSize:20,
106
- },
107
- modalText: {
108
- marginBottom: 15,
109
- textAlign: 'center',
110
- },
111
- });
112
-
113
- export default ImageViewerModal;
@@ -1,313 +0,0 @@
1
- /* eslint-disable no-underscore-dangle, no-use-before-define */
2
- import React from 'react';
3
- import { Text, StyleSheet, TouchableOpacity, TouchableHighlight, View, Platform, Dimensions } from 'react-native';
4
-
5
- import { MessageText, MessageImage, Time, utils } from 'react-native-gifted-chat';
6
- import CachedImage from '../CachedImage';
7
- const { isSameUser, isSameDay } = utils;
8
- const windowWidth = Dimensions.get('window').width;
9
- const windowHeight = Dimensions.get('window').height;
10
-
11
- export default class Bubble extends React.Component<any> {
12
- static defaultProps: {
13
- touchableProps: {};
14
- onLongPress: null;
15
- renderMessageImage: null;
16
- renderMessageText: null;
17
- renderCustomView: null;
18
- renderTime: null;
19
- currentMessage: { text: null; createdAt: null; image: null };
20
- nextMessage: {};
21
- previousMessage: {};
22
- containerStyle: {};
23
- wrapperStyle: {};
24
- tickStyle: {};
25
- containerToNextStyle: {};
26
- containerToPreviousStyle: {};
27
- isShowImageViewer: false;
28
- setImageViewer: (obj: any, v: boolean) => void;
29
- };
30
- static propTypes: any;
31
- constructor(props: any) {
32
- super(props);
33
- }
34
-
35
- renderMessageText() {
36
- if (this.props.currentMessage.text) {
37
- const { containerStyle, wrapperStyle, messageTextStyle, ...messageTextProps } = this.props;
38
- if (this.props.renderMessageText) {
39
- return this.props.renderMessageText(messageTextProps);
40
- }
41
- return (
42
- <MessageText
43
- {...messageTextProps}
44
- textStyle={{
45
- left: [
46
- styles.standardFont,
47
- styles.slackMessageText,
48
- messageTextProps.textStyle,
49
- messageTextStyle,
50
- ],
51
- }}
52
- />
53
- );
54
- }
55
- return null;
56
- }
57
-
58
- renderMessageImage() {
59
- if (this.props.currentMessage.image) {
60
- const { containerStyle, wrapperStyle, ...messageImageProps } = this.props;
61
- if (this.props.renderMessageImage) {
62
- return this.props.renderMessageImage(messageImageProps);
63
- }
64
- const { image, _id } = messageImageProps?.currentMessage;
65
-
66
- // Add validation for image URL
67
- if (!image || typeof image !== 'string') {
68
- console.log('Invalid image URL:', image);
69
- return null;
70
- }
71
-
72
- // Log the image URL for debugging
73
- console.log('Rendering message image:', image);
74
-
75
- return (
76
- <TouchableHighlight
77
- underlayColor={'transparent'}
78
- style={{ width: '100%', marginVertical: 5 }}
79
- onPress={() => this.props.setImageViewer(messageImageProps?.currentMessage, true)}
80
- >
81
- <View
82
- style={{
83
- width: windowWidth * 0.6, // 60% of screen width
84
- height: windowWidth * 0.4, // Maintain aspect ratio
85
- maxHeight: 200,
86
- borderRadius: 8,
87
- overflow: 'hidden',
88
- borderWidth: 1,
89
- borderColor: '#e0e0e0',
90
- backgroundColor: '#f7f7f7',
91
- }}
92
- >
93
- <CachedImage
94
- style={[styles.slackImage, { width: '100%', height: '100%' }]}
95
- cacheKey={`${_id}-slack-bubble-imageKey`}
96
- source={{
97
- uri: image,
98
- expiresIn: 86400,
99
- }}
100
- resizeMode={'cover'}
101
- alt={'image'}
102
- placeholderContent={
103
- <View
104
- style={[
105
- styles.slackImage,
106
- {
107
- width: '100%',
108
- height: '100%',
109
- backgroundColor: '#e1e1e1',
110
- justifyContent: 'center',
111
- alignItems: 'center',
112
- borderRadius: 8,
113
- },
114
- ]}
115
- >
116
- <Text>Loading...</Text>
117
- </View>
118
- }
119
- />
120
- </View>
121
- </TouchableHighlight>
122
- );
123
- }
124
- return null;
125
- }
126
-
127
- renderTicks() {
128
- const { currentMessage } = this.props;
129
- if (this.props.renderTicks) {
130
- return this.props.renderTicks(currentMessage);
131
- }
132
- if (currentMessage.user._id !== this.props.user._id) {
133
- return null;
134
- }
135
- if (currentMessage.sent || currentMessage.received) {
136
- return (
137
- <View style={[styles.headerItem, styles.tickView]}>
138
- {currentMessage.sent && (
139
- <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>
140
- )}
141
- {currentMessage.received && (
142
- <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>
143
- )}
144
- </View>
145
- );
146
- }
147
- return null;
148
- }
149
-
150
- renderUsername() {
151
- const username = this.props.currentMessage.user.name;
152
- if (username) {
153
- const { containerStyle, wrapperStyle, ...usernameProps } = this.props;
154
- if (this.props.renderUsername) {
155
- return this.props.renderUsername(usernameProps);
156
- }
157
- return (
158
- <Text style={[styles.standardFont, styles.headerItem, styles.username, this.props.usernameStyle]}>
159
- {username}
160
- </Text>
161
- );
162
- }
163
- return null;
164
- }
165
-
166
- renderTime() {
167
- if (this.props.currentMessage.createdAt) {
168
- const { containerStyle, wrapperStyle, ...timeProps }: any = this.props;
169
- if (this.props.renderTime) {
170
- return this.props.renderTime(timeProps);
171
- }
172
- return (
173
- <Time
174
- {...timeProps}
175
- containerStyle={{ left: [styles.timeContainer] }}
176
- textStyle={{
177
- left: [styles.standardFont, styles.headerItem, styles.time, timeProps.textStyle],
178
- }}
179
- />
180
- );
181
- }
182
- return null;
183
- }
184
-
185
- renderCustomView() {
186
- if (this.props.renderCustomView) {
187
- return this.props.renderCustomView(this.props);
188
- }
189
- return null;
190
- }
191
-
192
- render() {
193
- const isSameThread =
194
- isSameUser(this.props.currentMessage, this.props.previousMessage) &&
195
- isSameDay(this.props.currentMessage, this.props.previousMessage);
196
-
197
- const messageHeader = isSameThread ? null : (
198
- <View style={styles.headerView}>
199
- {this.renderUsername()}
200
- {this.renderTime()}
201
- {this.renderTicks()}
202
- </View>
203
- );
204
-
205
- return (
206
- <View style={[styles.container, this.props.containerStyle]}>
207
- <TouchableHighlight
208
- style={{ width: '100%' }}
209
- // underlayColor={'#c0c0c0'}
210
- underlayColor={'transparent'}
211
- disabled={true}
212
- accessibilityTraits="text"
213
- {...this.props.touchableProps}
214
- >
215
- <View style={[styles.wrapper, this.props.wrapperStyle]}>
216
- <View>
217
- {this.renderCustomView()}
218
- {messageHeader}
219
- {this.renderMessageImage()}
220
- {this.renderMessageText()}
221
- </View>
222
- </View>
223
- </TouchableHighlight>
224
- </View>
225
- );
226
- }
227
- }
228
-
229
- // Note: Everything is forced to be "left" positioned with this component.
230
- // The "right" position is only used in the default Bubble.
231
- const styles = StyleSheet.create({
232
- standardFont: {
233
- fontSize: 15,
234
- },
235
- slackMessageText: {
236
- marginLeft: 0,
237
- marginRight: 0,
238
- },
239
- container: {
240
- flex: 1,
241
- alignItems: 'flex-start',
242
- },
243
- wrapper: {
244
- marginRight: 60,
245
- minHeight: 20,
246
- justifyContent: 'flex-start',
247
- },
248
- username: {
249
- fontWeight: 'bold',
250
- top: 0,
251
- paddingTop: 0,
252
- marginTop: 0,
253
- },
254
- time: {
255
- textAlign: 'left',
256
- fontSize: 12,
257
- },
258
- timeContainer: {
259
- marginLeft: 0,
260
- marginRight: 0,
261
- marginBottom: 0,
262
- },
263
- headerItem: {
264
- marginRight: 10,
265
- },
266
- headerView: {
267
- // Try to align it better with the avatar on Android.
268
- marginTop: Platform.OS === 'android' ? -2 : 0,
269
- flexDirection: 'row',
270
- alignItems: 'baseline',
271
- },
272
- /* eslint-disable react-native/no-color-literals */
273
- tick: {
274
- backgroundColor: 'transparent',
275
- color: 'white',
276
- },
277
- /* eslint-enable react-native/no-color-literals */
278
- tickView: {
279
- flexDirection: 'row',
280
- },
281
- slackImage: {
282
- borderRadius: 3,
283
- marginLeft: 8,
284
- marginRight: 0,
285
- },
286
- });
287
-
288
- // Bubble.contextTypes = {
289
- // actionSheet: PropTypes.func,
290
- // };
291
-
292
- Bubble.defaultProps = {
293
- touchableProps: {},
294
- onLongPress: null,
295
- renderMessageImage: null,
296
- renderMessageText: null,
297
- renderCustomView: null,
298
- renderTime: null,
299
- currentMessage: {
300
- text: null,
301
- createdAt: null,
302
- image: null,
303
- },
304
- nextMessage: {},
305
- previousMessage: {},
306
- containerStyle: {},
307
- wrapperStyle: {},
308
- tickStyle: {},
309
- containerToNextStyle: {},
310
- containerToPreviousStyle: {},
311
- isShowImageViewer: false,
312
- setImageViewer: (obj: any, v: boolean) => null,
313
- };
@@ -1,145 +0,0 @@
1
- /* eslint-disable no-underscore-dangle, no-use-before-define */
2
-
3
- import PropTypes from 'prop-types';
4
- import React from 'react';
5
- import { View, StyleSheet } from 'react-native';
6
-
7
- import { Day, utils } from 'react-native-gifted-chat';
8
- import { Avatar, AvatarFallbackText, AvatarImage } from '@admin-layout/gluestack-ui-mobile';
9
- import Bubble from './SlackBubble';
10
-
11
- const { isSameUser, isSameDay } = utils;
12
-
13
- export default class Message extends React.Component<any> {
14
- static defaultProps: {
15
- renderAvatar: undefined;
16
- renderBubble: null;
17
- renderDay: null;
18
- currentMessage: {};
19
- nextMessage: {};
20
- previousMessage: {};
21
- user: {};
22
- containerStyle: {};
23
- isShowImageViewer: false;
24
- setImageViewer: (obj: any, v: boolean) => void;
25
- };
26
- getInnerComponentProps() {
27
- const { containerStyle, ...props } = this.props;
28
- return {
29
- ...props,
30
- position: 'left',
31
- isSameUser,
32
- isSameDay,
33
- };
34
- }
35
-
36
- renderDay() {
37
- if (this.props.currentMessage.createdAt) {
38
- const dayProps = this.getInnerComponentProps();
39
- if (this.props.renderDay) {
40
- return this.props.renderDay(dayProps);
41
- }
42
- return <Day {...dayProps} />;
43
- }
44
- return null;
45
- }
46
-
47
- renderBubble() {
48
- const bubbleProps = this.getInnerComponentProps();
49
- if (this.props.renderBubble) {
50
- return this.props.renderBubble(bubbleProps);
51
- }
52
- return (
53
- <Bubble
54
- {...bubbleProps}
55
- isShowImageViewer={this.props.isShowImageViewer}
56
- setImageViewer={this.props.setImageViewer}
57
- />
58
- );
59
- }
60
-
61
- renderAvatar() {
62
- let extraStyle: any;
63
- //new param added
64
- let isSameUserAndSameDay: boolean = false;
65
- if (
66
- isSameUser(this.props.currentMessage, this.props.previousMessage) &&
67
- isSameDay(this.props.currentMessage, this.props.previousMessage)
68
- ) {
69
- // Set the invisible avatar height to 0, but keep the width, padding, etc.
70
- extraStyle = { height: 0 };
71
- isSameUserAndSameDay = true;
72
- }
73
-
74
- const avatarProps: any = this.getInnerComponentProps();
75
-
76
- return (
77
- <Avatar size={'sm'} className="bg-transparent rounded-none mr-2">
78
- <AvatarFallbackText>
79
- {isSameUserAndSameDay ? '' : avatarProps?.currentMessage?.user?.name[0]}
80
- </AvatarFallbackText>
81
- {!isSameUserAndSameDay && avatarProps?.currentMessage?.user?.avatar && (
82
- <AvatarImage
83
- alt="image"
84
- style={{ ...styles.slackAvatar, ...avatarProps.imageStyle }}
85
- source={{
86
- uri: avatarProps?.currentMessage?.user?.avatar,
87
- }}
88
- />
89
- )}
90
- </Avatar>
91
- // <Avatar
92
- // {...avatarProps}
93
- // showAvatarForEveryMessage={true}
94
- // imageStyle={{
95
- // left: [styles.slackAvatar, avatarProps.imageStyle, extraStyle],
96
- // }}
97
- // />
98
- );
99
- }
100
-
101
- render() {
102
- const marginBottom = isSameUser(this.props.currentMessage, this.props.nextMessage) ? 2 : 10;
103
-
104
- return (
105
- <View>
106
- {this.renderDay()}
107
- <View style={[styles.container, { marginBottom }, this.props.containerStyle]}>
108
- {this.renderAvatar()}
109
- {this.renderBubble()}
110
- </View>
111
- </View>
112
- );
113
- }
114
- }
115
-
116
- const styles = StyleSheet.create({
117
- container: {
118
- flexDirection: 'row',
119
- alignItems: 'flex-start',
120
- justifyContent: 'flex-start',
121
- marginLeft: 8,
122
- marginRight: 0,
123
- },
124
- slackAvatar: {
125
- // The bottom should roughly line up with the first line of message text.
126
- height: 40,
127
- width: 40,
128
- borderRadius: 3,
129
- // marginTop: 0,
130
- marginTop: 1,
131
- },
132
- });
133
-
134
- Message.defaultProps = {
135
- renderAvatar: undefined,
136
- renderBubble: null,
137
- renderDay: null,
138
- currentMessage: {},
139
- nextMessage: {},
140
- previousMessage: {},
141
- user: {},
142
- containerStyle: {},
143
- isShowImageViewer: false,
144
- setImageViewer: (obj: any, v: boolean) => null,
145
- };
@@ -1,3 +0,0 @@
1
- import SlackMessage from './SlackMessage';
2
- import ImageViewerModal from './ImageViewerModal';
3
- export { SlackMessage ,ImageViewerModal};