@messenger-box/platform-mobile 10.0.3-alpha.23 → 10.0.3-alpha.232

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 (116) 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 +9 -11
  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 -96
  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 +2 -4
  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 +1093 -1090
  45. package/lib/screens/inbox/containers/ConversationView.js.map +1 -1
  46. package/lib/screens/inbox/containers/Dialogs.js +130 -577
  47. package/lib/screens/inbox/containers/Dialogs.js.map +1 -1
  48. package/lib/screens/inbox/containers/ThreadConversationView.js +864 -1408
  49. package/lib/screens/inbox/containers/ThreadConversationView.js.map +1 -1
  50. package/lib/screens/inbox/containers/ThreadsView.js +9 -15
  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 +1 -1
  55. package/lib/screens/inbox/hooks/useSafeDialogThreadsMachine.js.map +1 -1
  56. package/lib/screens/inbox/workflow/dialog-threads-xstate.js.map +1 -1
  57. package/package.json +10 -8
  58. package/CHANGELOG.md +0 -172
  59. package/jest.config.js +0 -24
  60. package/lib/screens/inbox/components/DialogsListItem.js +0 -548
  61. package/lib/screens/inbox/components/DialogsListItem.js.map +0 -1
  62. package/lib/screens/inbox/components/ServiceDialogsListItem.js +0 -489
  63. package/lib/screens/inbox/components/ServiceDialogsListItem.js.map +0 -1
  64. package/lib/screens/inbox/components/workflow/dialogs-list-item-xstate.js +0 -175
  65. package/lib/screens/inbox/components/workflow/dialogs-list-item-xstate.js.map +0 -1
  66. package/lib/screens/inbox/components/workflow/service-dialogs-list-item-xstate.js +0 -191
  67. package/lib/screens/inbox/components/workflow/service-dialogs-list-item-xstate.js.map +0 -1
  68. package/lib/screens/inbox/containers/workflow/conversation-xstate.js +0 -380
  69. package/lib/screens/inbox/containers/workflow/conversation-xstate.js.map +0 -1
  70. package/lib/screens/inbox/containers/workflow/dialogs-xstate.js +0 -211
  71. package/lib/screens/inbox/containers/workflow/dialogs-xstate.js.map +0 -1
  72. package/lib/screens/inbox/containers/workflow/thread-conversation-xstate.js +0 -438
  73. package/lib/screens/inbox/containers/workflow/thread-conversation-xstate.js.map +0 -1
  74. package/rollup.config.mjs +0 -45
  75. package/src/components/index.ts +0 -0
  76. package/src/compute.ts +0 -63
  77. package/src/index.ts +0 -7
  78. package/src/module.ts +0 -10
  79. package/src/navigation/InboxNavigation.tsx +0 -102
  80. package/src/navigation/index.ts +0 -1
  81. package/src/screens/inbox/DialogMessages.tsx +0 -21
  82. package/src/screens/inbox/DialogThreadMessages.tsx +0 -97
  83. package/src/screens/inbox/DialogThreads.tsx +0 -125
  84. package/src/screens/inbox/Inbox.tsx +0 -17
  85. package/src/screens/inbox/components/CachedImage/consts.ts +0 -6
  86. package/src/screens/inbox/components/CachedImage/index.tsx +0 -223
  87. package/src/screens/inbox/components/DialogsHeader.tsx +0 -30
  88. package/src/screens/inbox/components/DialogsListItem.tsx +0 -819
  89. package/src/screens/inbox/components/ServiceDialogsListItem.tsx +0 -679
  90. package/src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx +0 -113
  91. package/src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx +0 -313
  92. package/src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx +0 -145
  93. package/src/screens/inbox/components/SlackMessageContainer/index.ts +0 -3
  94. package/src/screens/inbox/components/SmartLoader.tsx +0 -61
  95. package/src/screens/inbox/components/SupportServiceDialogsListItem.tsx +0 -301
  96. package/src/screens/inbox/components/ThreadsViewItem.tsx +0 -233
  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 -1784
  102. package/src/screens/inbox/containers/Dialogs.tsx +0 -829
  103. package/src/screens/inbox/containers/SupportServiceDialogs.tsx +0 -119
  104. package/src/screens/inbox/containers/ThreadConversationView.tsx +0 -2295
  105. package/src/screens/inbox/containers/ThreadsView.tsx +0 -224
  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/inbox/hooks/useSafeDialogThreadsMachine.ts +0 -136
  111. package/src/screens/inbox/index.ts +0 -37
  112. package/src/screens/inbox/machines/threadsMachine.ts +0 -147
  113. package/src/screens/inbox/workflow/dialog-threads-xstate.ts +0 -163
  114. package/src/screens/index.ts +0 -4
  115. package/tsconfig.json +0 -13
  116. package/webpack.config.js +0 -58
@@ -1 +1 @@
1
- {"version":3,"file":"ImageViewerModal.js","sources":["../../../../../src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport {Alert, Modal, StyleSheet, Text, Pressable, View,SafeAreaView,StatusBar} from 'react-native';\n\nconst ImageViewerModal = ({children,isVisible=false,setVisible,modalContent=null}:any) => {\n \n return (\n <Modal\n animationType=\"slide\"\n // transparent={true}\n visible={isVisible}\n presentationStyle={'fullScreen'}\n style={{flex:1}}\n onRequestClose={() => {\n setVisible(false);\n }}>\n <View style={styles.container}> \n <View style={styles.headerView}>\n {/* <View><Text></Text></View>\n <View><Text></Text></View> */}\n <View style={{alignSelf:'flex-end',paddingRight:5}} > \n <Pressable\n style={[styles.button, styles.buttonClose]}\n onPress={() => setVisible(false)}>\n <Text style={styles.headerTextStyle}>X</Text>\n </Pressable></View>\n </View>\n <View style={styles.centeredView}>\n {modalContent ? modalContent : children}\n </View>\n <View style={styles.footerView}>\n\n </View>\n </View>\n </Modal>\n );\n};\n\nconst styles = StyleSheet.create({\n container:{\n flex:1,\n },\n headerView:{\n width:'100%',\n alignItems: 'center',\n justifyContent:'space-between',\n // backgroundColor:'rgba(r, g, b, a)',\n backgroundColor:'#000',\n paddingTop:50,\n paddingBottom:10,\n },\n centeredView: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'white',\n\n borderRadius: 20,\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n },\n footerView:{\n minHeight:100,\n backgroundColor:'#000'\n },\n modalView: {\n flex:1,\n backgroundColor: 'white',\n borderRadius: 20,\n alignItems: 'center',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n },\n button: {\n borderRadius: 20,\n padding: 10,\n elevation: 2,\n },\n buttonOpen: {\n backgroundColor: '#F194FF',\n },\n buttonClose: {\n backgroundColor: 'transparent',\n },\n textStyle: {\n color: 'white',\n fontWeight: 'bold',\n textAlign: 'center',\n },\n headerTextStyle:{\n color: '#fff',\n // fontWeight: 'bold',\n textAlign: 'center',\n fontSize:20,\n },\n modalText: {\n marginBottom: 15,\n textAlign: 'center',\n },\n});\n\nexport default ImageViewerModal;"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"ImageViewerModal.js","sources":["../../../../../src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport {Alert, Modal, StyleSheet, Text, Pressable, View,SafeAreaView,StatusBar} from 'react-native';\n\nconst ImageViewerModal = ({children,isVisible=false,setVisible,modalContent=null}:any) => {\n \n return (\n <Modal\n animationType=\"slide\"\n // transparent={true}\n visible={isVisible}\n presentationStyle={'fullScreen'}\n style={{flex:1}}\n onRequestClose={() => {\n setVisible(false);\n }}>\n <View style={styles.container}> \n <View style={styles.headerView}>\n {/* <View><Text></Text></View>\n <View><Text></Text></View> */}\n <View style={{alignSelf:'flex-end',paddingRight:5}} > \n <Pressable\n style={[styles.button, styles.buttonClose]}\n onPress={() => setVisible(false)}>\n <Text style={styles.headerTextStyle}>X</Text>\n </Pressable></View>\n </View>\n <View style={styles.centeredView}>\n {modalContent ? modalContent : children}\n </View>\n <View style={styles.footerView}>\n\n </View>\n </View>\n </Modal>\n );\n};\n\nconst styles = StyleSheet.create({\n container:{\n flex:1,\n },\n headerView:{\n width:'100%',\n alignItems: 'center',\n justifyContent:'space-between',\n // backgroundColor:'rgba(r, g, b, a)',\n backgroundColor:'#000',\n paddingTop:50,\n paddingBottom:10,\n },\n centeredView: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'white',\n\n borderRadius: 20,\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n },\n footerView:{\n minHeight:100,\n backgroundColor:'#000'\n },\n modalView: {\n flex:1,\n backgroundColor: 'white',\n borderRadius: 20,\n alignItems: 'center',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n },\n button: {\n borderRadius: 20,\n padding: 10,\n elevation: 2,\n },\n buttonOpen: {\n backgroundColor: '#F194FF',\n },\n buttonClose: {\n backgroundColor: 'transparent',\n },\n textStyle: {\n color: 'white',\n fontWeight: 'bold',\n textAlign: 'center',\n },\n headerTextStyle:{\n color: '#fff',\n // fontWeight: 'bold',\n textAlign: 'center',\n fontSize:20,\n },\n modalText: {\n marginBottom: 15,\n textAlign: 'center',\n },\n});\n\nexport default ImageViewerModal;"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ import React__default from'react';import {TouchableOpacity,View,StyleSheet}from'react-native';import {Day,utils}from'react-native-gifted-chat';import {Avatar,AvatarFallbackText,AvatarImage,Text}from'@admin-layout/gluestack-ui-mobile';import {MaterialCommunityIcons}from'@expo/vector-icons';var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
33
+ const {
34
+ isSameUser,
35
+ isSameDay
36
+ } = utils;
37
+ class PaymentMessage extends React__default.Component {
38
+ getInnerComponentProps() {
39
+ const _a = this.props, {
40
+ containerStyle
41
+ } = _a, props = __objRest(_a, [
42
+ "containerStyle"
43
+ ]);
44
+ return __spreadProps(__spreadValues({}, props), {
45
+ position: "left",
46
+ isSameUser,
47
+ isSameDay
48
+ });
49
+ }
50
+ renderDay() {
51
+ if (this.props.currentMessage.createdAt) {
52
+ const dayProps = this.getInnerComponentProps();
53
+ if (this.props.renderDay) {
54
+ return this.props.renderDay(dayProps);
55
+ }
56
+ return /* @__PURE__ */ React__default.createElement(Day, __spreadValues({}, dayProps));
57
+ }
58
+ return null;
59
+ }
60
+ renderAvatar(isRight) {
61
+ var _a, _b, _c, _d, _e, _f, _g;
62
+ let isSameUserAndSameDay = false;
63
+ if (isSameUser(this.props.currentMessage, this.props.previousMessage) && isSameDay(this.props.currentMessage, this.props.previousMessage)) {
64
+ isSameUserAndSameDay = true;
65
+ }
66
+ const avatarProps = this.getInnerComponentProps();
67
+ return /* @__PURE__ */ React__default.createElement(Avatar, { size: "sm", className: "bg-transparent rounded-none", style: [isRight ? {
68
+ marginLeft: 8
69
+ } : {
70
+ marginRight: 8
71
+ }] }, /* @__PURE__ */ React__default.createElement(AvatarFallbackText, null, isSameUserAndSameDay ? "" : (_c = (_b = (_a = avatarProps == null ? void 0 : avatarProps.currentMessage) == null ? void 0 : _a.user) == null ? void 0 : _b.name) == null ? void 0 : _c[0]), !isSameUserAndSameDay && ((_e = (_d = avatarProps == null ? void 0 : avatarProps.currentMessage) == null ? void 0 : _d.user) == null ? void 0 : _e.avatar) && /* @__PURE__ */ React__default.createElement(AvatarImage, { alt: "image", style: {
72
+ height: 40,
73
+ width: 40,
74
+ borderRadius: 3,
75
+ marginTop: 1
76
+ }, source: {
77
+ uri: (_g = (_f = avatarProps == null ? void 0 : avatarProps.currentMessage) == null ? void 0 : _f.user) == null ? void 0 : _g.avatar
78
+ } }));
79
+ }
80
+ renderPaymentBubble(isRight) {
81
+ var _a;
82
+ const {
83
+ currentMessage
84
+ } = this.props;
85
+ const paymentDetails = ((_a = currentMessage == null ? void 0 : currentMessage.propsConfiguration) == null ? void 0 : _a.payment) || {};
86
+ const amount = paymentDetails.amount || (currentMessage == null ? void 0 : currentMessage.amount);
87
+ const currency = paymentDetails.currency || (currentMessage == null ? void 0 : currentMessage.currency) || "\u20B9";
88
+ const status = paymentDetails.status || (currentMessage == null ? void 0 : currentMessage.status) || "Sent Securely";
89
+ const paymentNote = paymentDetails.note || (currentMessage == null ? void 0 : currentMessage.text);
90
+ const time = (currentMessage == null ? void 0 : currentMessage.createdAt) ? new Date(currentMessage.createdAt).toLocaleTimeString([], {
91
+ hour: "2-digit",
92
+ minute: "2-digit"
93
+ }) : "";
94
+ return /* @__PURE__ */ React__default.createElement(TouchableOpacity, { activeOpacity: 0.85, style: [styles.bubble, isRight ? styles.bubbleRight : styles.bubbleLeft, {
95
+ alignSelf: isRight ? "flex-end" : "flex-start"
96
+ }] }, /* @__PURE__ */ React__default.createElement(Text, { style: styles.amount }, currency, amount), /* @__PURE__ */ React__default.createElement(View, { style: styles.secureRow }, /* @__PURE__ */ React__default.createElement(MaterialCommunityIcons, { name: "check-circle-outline", size: 20, color: "#4caf50", style: {
97
+ marginRight: 4
98
+ } }), /* @__PURE__ */ React__default.createElement(Text, { style: styles.secureText }, status), /* @__PURE__ */ React__default.createElement(MaterialCommunityIcons, { name: "chevron-right", size: 22, color: "#7c3aed", style: {
99
+ marginLeft: 4
100
+ } })), paymentNote && paymentNote !== status && /* @__PURE__ */ React__default.createElement(Text, { style: styles.note }, paymentNote), /* @__PURE__ */ React__default.createElement(Text, { style: [styles.time, {
101
+ textAlign: isRight ? "right" : "left"
102
+ }] }, time));
103
+ }
104
+ render() {
105
+ var _a;
106
+ const {
107
+ currentMessage,
108
+ user
109
+ } = this.props;
110
+ const isRight = ((_a = currentMessage == null ? void 0 : currentMessage.user) == null ? void 0 : _a._id) === (user == null ? void 0 : user._id);
111
+ const marginBottom = isSameUser(currentMessage, this.props.nextMessage) ? 2 : 10;
112
+ return /* @__PURE__ */ React__default.createElement(View, null, this.renderDay(), /* @__PURE__ */ React__default.createElement(View, { style: [styles.container, {
113
+ marginBottom
114
+ }, isRight ? styles.containerRight : styles.containerLeft] }, isRight ? null : this.renderAvatar(false), this.renderPaymentBubble(isRight), isRight ? this.renderAvatar(true) : null));
115
+ }
116
+ }
117
+ __publicField(PaymentMessage, "defaultProps", {
118
+ renderAvatar: void 0,
119
+ renderBubble: null,
120
+ renderDay: null,
121
+ currentMessage: {},
122
+ nextMessage: {},
123
+ previousMessage: {},
124
+ user: {},
125
+ containerStyle: {},
126
+ isShowImageViewer: false,
127
+ setImageViewer: (obj, v) => null
128
+ });
129
+ const styles = StyleSheet.create({
130
+ container: {
131
+ flexDirection: "row",
132
+ alignItems: "flex-end",
133
+ width: "100%"
134
+ },
135
+ containerLeft: {
136
+ justifyContent: "flex-start"
137
+ },
138
+ containerRight: {
139
+ flexDirection: "row-reverse",
140
+ justifyContent: "flex-end"
141
+ },
142
+ bubble: {
143
+ backgroundColor: "#f3e8ff",
144
+ borderRadius: 16,
145
+ paddingVertical: 16,
146
+ paddingHorizontal: 20,
147
+ minWidth: 160,
148
+ maxWidth: 320,
149
+ shadowColor: "#000",
150
+ shadowOffset: {
151
+ width: 0,
152
+ height: 1
153
+ },
154
+ shadowOpacity: 0.08,
155
+ shadowRadius: 4,
156
+ elevation: 2,
157
+ marginBottom: 2
158
+ },
159
+ bubbleLeft: {
160
+ marginLeft: 0,
161
+ marginRight: 32
162
+ },
163
+ bubbleRight: {
164
+ marginRight: 0,
165
+ marginLeft: 32
166
+ },
167
+ amount: {
168
+ fontSize: 26,
169
+ fontWeight: "bold",
170
+ color: "#18181b",
171
+ marginBottom: 8
172
+ },
173
+ secureRow: {
174
+ flexDirection: "row",
175
+ alignItems: "center",
176
+ marginBottom: 4
177
+ },
178
+ secureText: {
179
+ fontSize: 16,
180
+ color: "#18181b",
181
+ fontWeight: "500"
182
+ },
183
+ note: {
184
+ fontSize: 14,
185
+ color: "#6b7280",
186
+ marginTop: 2,
187
+ marginBottom: 2
188
+ },
189
+ time: {
190
+ fontSize: 12,
191
+ color: "#a1a1aa",
192
+ marginTop: 6
193
+ }
194
+ });export{PaymentMessage as default};//# sourceMappingURL=PaymentMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentMessage.js","sources":["../../../../../src/screens/inbox/components/SlackMessageContainer/PaymentMessage.tsx"],"sourcesContent":["import React from 'react';\nimport { View, StyleSheet, TouchableOpacity } from 'react-native';\nimport { Day, utils } from 'react-native-gifted-chat';\nimport { Avatar, AvatarFallbackText, AvatarImage, Text } from '@admin-layout/gluestack-ui-mobile';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\n\nconst { isSameUser, isSameDay } = utils;\n\nexport default class PaymentMessage extends React.Component<any> {\n static defaultProps = {\n renderAvatar: undefined,\n renderBubble: null,\n renderDay: null,\n currentMessage: {},\n nextMessage: {},\n previousMessage: {},\n user: {},\n containerStyle: {},\n isShowImageViewer: false,\n setImageViewer: (obj: any, v: boolean) => null,\n };\n\n getInnerComponentProps() {\n const { containerStyle, ...props } = this.props;\n return {\n ...props,\n position: 'left',\n isSameUser,\n isSameDay,\n };\n }\n\n renderDay() {\n if (this.props.currentMessage.createdAt) {\n const dayProps = this.getInnerComponentProps();\n if (this.props.renderDay) {\n return this.props.renderDay(dayProps);\n }\n return <Day {...dayProps} />;\n }\n return null;\n }\n\n renderAvatar(isRight: boolean) {\n let extraStyle: any;\n let isSameUserAndSameDay: boolean = false;\n if (\n isSameUser(this.props.currentMessage, this.props.previousMessage) &&\n isSameDay(this.props.currentMessage, this.props.previousMessage)\n ) {\n extraStyle = { height: 0 };\n isSameUserAndSameDay = true;\n }\n const avatarProps: any = this.getInnerComponentProps();\n return (\n <Avatar\n size={'sm'}\n className=\"bg-transparent rounded-none\"\n style={[isRight ? { marginLeft: 8 } : { marginRight: 8 }]}\n >\n <AvatarFallbackText>\n {isSameUserAndSameDay ? '' : avatarProps?.currentMessage?.user?.name?.[0]}\n </AvatarFallbackText>\n {!isSameUserAndSameDay && avatarProps?.currentMessage?.user?.avatar && (\n <AvatarImage\n alt=\"image\"\n style={{ height: 40, width: 40, borderRadius: 3, marginTop: 1 }}\n source={{\n uri: avatarProps?.currentMessage?.user?.avatar,\n }}\n />\n )}\n </Avatar>\n );\n }\n\n renderPaymentBubble(isRight: boolean) {\n const { currentMessage } = this.props;\n // Extract payment details\n const paymentDetails = currentMessage?.propsConfiguration?.payment || {};\n const amount = paymentDetails.amount || currentMessage?.amount;\n const currency = paymentDetails.currency || currentMessage?.currency || '₹';\n const status = paymentDetails.status || currentMessage?.status || 'Sent Securely';\n const paymentNote = paymentDetails.note || currentMessage?.text;\n const time = currentMessage?.createdAt\n ? new Date(currentMessage.createdAt).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })\n : '';\n\n return (\n <TouchableOpacity\n activeOpacity={0.85}\n style={[\n styles.bubble,\n isRight ? styles.bubbleRight : styles.bubbleLeft,\n { alignSelf: isRight ? 'flex-end' : 'flex-start' },\n ]}\n >\n <Text style={styles.amount}>\n {currency}\n {amount}\n </Text>\n <View style={styles.secureRow}>\n <MaterialCommunityIcons\n name=\"check-circle-outline\"\n size={20}\n color=\"#4caf50\"\n style={{ marginRight: 4 }}\n />\n <Text style={styles.secureText}>{status}</Text>\n <MaterialCommunityIcons name=\"chevron-right\" size={22} color=\"#7c3aed\" style={{ marginLeft: 4 }} />\n </View>\n {paymentNote && paymentNote !== status && <Text style={styles.note}>{paymentNote}</Text>}\n <Text style={[styles.time, { textAlign: isRight ? 'right' : 'left' }]}>{time}</Text>\n </TouchableOpacity>\n );\n }\n\n render() {\n const { currentMessage, user } = this.props;\n const isRight = currentMessage?.user?._id === user?._id;\n const marginBottom = isSameUser(currentMessage, this.props.nextMessage) ? 2 : 10;\n return (\n <View>\n {this.renderDay()}\n <View\n style={[styles.container, { marginBottom }, isRight ? styles.containerRight : styles.containerLeft]}\n >\n {isRight ? null : this.renderAvatar(false)}\n {this.renderPaymentBubble(isRight)}\n {isRight ? this.renderAvatar(true) : null}\n </View>\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n width: '100%',\n },\n containerLeft: {\n justifyContent: 'flex-start',\n },\n containerRight: {\n flexDirection: 'row-reverse',\n justifyContent: 'flex-end',\n },\n bubble: {\n backgroundColor: '#f3e8ff',\n borderRadius: 16,\n paddingVertical: 16,\n paddingHorizontal: 20,\n minWidth: 160,\n maxWidth: 320,\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.08,\n shadowRadius: 4,\n elevation: 2,\n marginBottom: 2,\n },\n bubbleLeft: {\n marginLeft: 0,\n marginRight: 32,\n },\n bubbleRight: {\n marginRight: 0,\n marginLeft: 32,\n },\n amount: {\n fontSize: 26,\n fontWeight: 'bold',\n color: '#18181b',\n marginBottom: 8,\n },\n secureRow: {\n flexDirection: 'row',\n alignItems: 'center',\n marginBottom: 4,\n },\n secureText: {\n fontSize: 16,\n color: '#18181b',\n fontWeight: '500',\n },\n note: {\n fontSize: 14,\n color: '#6b7280',\n marginTop: 2,\n marginBottom: 2,\n },\n time: {\n fontSize: 12,\n color: '#a1a1aa',\n marginTop: 6,\n },\n});\n"],"names":["React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React__default from'react';import {StyleSheet,TouchableHighlight,View,Text,Platform,Dimensions}from'react-native';import {MessageText,Time,utils}from'react-native-gifted-chat';import CachedImage from'../CachedImage/index.js';var __defProp = Object.defineProperty;
1
+ import React__default from'react';import {View,TouchableHighlight,Text,StyleSheet,Platform,Dimensions}from'react-native';import {MessageText,MessageImage,Time,utils}from'react-native-gifted-chat';import CachedImage from'../CachedImage/index.js';var __defProp = Object.defineProperty;
2
2
  var __defProps = Object.defineProperties;
3
3
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -29,10 +29,7 @@ var __objRest = (source, exclude) => {
29
29
  }
30
30
  return target;
31
31
  };
32
- var __publicField = (obj, key, value) => {
33
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
34
- return value;
35
- };
32
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
36
33
  const {
37
34
  isSameUser,
38
35
  isSameDay
@@ -44,12 +41,13 @@ class Bubble extends React__default.Component {
44
41
  super(props);
45
42
  }
46
43
  renderMessageText() {
47
- if (this.props.currentMessage.text) {
48
- const _a = this.props, {
44
+ var _a;
45
+ if ((_a = this.props.currentMessage) == null ? void 0 : _a.text) {
46
+ const _b = this.props, {
49
47
  containerStyle,
50
48
  wrapperStyle,
51
49
  messageTextStyle
52
- } = _a, messageTextProps = __objRest(_a, [
50
+ } = _b, messageTextProps = __objRest(_b, [
53
51
  "containerStyle",
54
52
  "wrapperStyle",
55
53
  "messageTextStyle"
@@ -64,52 +62,164 @@ class Bubble extends React__default.Component {
64
62
  return null;
65
63
  }
66
64
  renderMessageImage() {
67
- if (this.props.currentMessage.image) {
68
- const _a = this.props, {
69
- containerStyle,
70
- wrapperStyle
71
- } = _a, messageImageProps = __objRest(_a, [
72
- "containerStyle",
73
- "wrapperStyle"
74
- ]);
65
+ const _a = this.props, {
66
+ currentMessage,
67
+ containerStyle,
68
+ wrapperStyle
69
+ } = _a, messageImageProps = __objRest(_a, [
70
+ "currentMessage",
71
+ "containerStyle",
72
+ "wrapperStyle"
73
+ ]);
74
+ if (currentMessage.images && Array.isArray(currentMessage.images) && currentMessage.images.length > 0) {
75
+ const validImages = currentMessage.images.filter((url) => url && typeof url === "string");
76
+ if (validImages.length === 0) {
77
+ return null;
78
+ }
79
+ return /* @__PURE__ */ React__default.createElement(View, { style: {
80
+ marginVertical: 0
81
+ } }, /* @__PURE__ */ React__default.createElement(View, { style: {
82
+ flexDirection: "row",
83
+ flexWrap: "wrap",
84
+ gap: 8
85
+ } }, validImages.map((imageUrl, index) => {
86
+ const isLocalImage = imageUrl.startsWith("file:") || imageUrl.startsWith("data:") || imageUrl.startsWith("content:") || !imageUrl.startsWith("http://") && !imageUrl.startsWith("https://");
87
+ const imageSize = validImages.length === 1 ? {
88
+ width: windowWidth * 0.6,
89
+ height: windowWidth * 0.4
90
+ } : {
91
+ width: windowWidth * 0.3,
92
+ height: windowWidth * 0.3
93
+ };
94
+ const isUploading = currentMessage.isUploading;
95
+ return /* @__PURE__ */ React__default.createElement(TouchableHighlight, { key: `image-${index}-${currentMessage._id}`, underlayColor: "transparent", onPress: () => {
96
+ if (isUploading) return;
97
+ const imageObject = {
98
+ _id: `${currentMessage._id}-img-${index}`,
99
+ image: imageUrl
100
+ };
101
+ this.props.setImageViewer(imageObject, true);
102
+ } }, /* @__PURE__ */ React__default.createElement(View, { style: __spreadProps(__spreadValues({}, imageSize), {
103
+ maxHeight: 200,
104
+ borderRadius: 8,
105
+ overflow: "hidden",
106
+ borderWidth: 1,
107
+ borderColor: "#e0e0e0",
108
+ backgroundColor: "#f7f7f7"
109
+ }) }, isLocalImage ? (
110
+ // For local images, use direct Image component with no loading state
111
+ /* @__PURE__ */ React__default.createElement(View, { style: {
112
+ width: "100%",
113
+ height: "100%"
114
+ } }, /* @__PURE__ */ React__default.createElement(MessageImage, __spreadProps(__spreadValues({}, messageImageProps), { currentMessage: __spreadProps(__spreadValues({}, currentMessage), {
115
+ image: imageUrl
116
+ }), imageStyle: {
117
+ width: "100%",
118
+ height: "100%",
119
+ borderRadius: 8
120
+ } })), isUploading && /* @__PURE__ */ React__default.createElement(View, { style: {
121
+ position: "absolute",
122
+ top: 0,
123
+ left: 0,
124
+ right: 0,
125
+ bottom: 0,
126
+ backgroundColor: "rgba(0,0,0,0.2)",
127
+ justifyContent: "center",
128
+ alignItems: "center"
129
+ } }, /* @__PURE__ */ React__default.createElement(Text, { style: {
130
+ color: "white",
131
+ fontWeight: "bold"
132
+ } }, "Uploading...")))
133
+ ) : (
134
+ // For remote images, use CachedImage with loading placeholder
135
+ /* @__PURE__ */ React__default.createElement(CachedImage, { style: [styles.slackImage, {
136
+ width: "100%",
137
+ height: "100%"
138
+ }], cacheKey: `${currentMessage._id}-img-${index}-slack-bubble-imageKey`, source: {
139
+ uri: imageUrl,
140
+ expiresIn: 86400
141
+ }, resizeMode: "cover", alt: "image", placeholderContent: /* @__PURE__ */ React__default.createElement(View, { style: [styles.slackImage, {
142
+ width: "100%",
143
+ height: "100%",
144
+ backgroundColor: "#e1e1e1",
145
+ justifyContent: "center",
146
+ alignItems: "center",
147
+ borderRadius: 8
148
+ }] }, /* @__PURE__ */ React__default.createElement(Text, null, isUploading ? "Uploading..." : "Loading...")) })
149
+ )));
150
+ })));
151
+ }
152
+ if (currentMessage.image) {
75
153
  if (this.props.renderMessageImage) {
76
154
  return this.props.renderMessageImage(messageImageProps);
77
155
  }
78
156
  const {
79
157
  image,
80
158
  _id
81
- } = messageImageProps == null ? void 0 : messageImageProps.currentMessage;
159
+ } = currentMessage;
82
160
  if (!image || typeof image !== "string") {
83
- console.log("Invalid image URL:", image);
84
161
  return null;
85
162
  }
86
- console.log("Rendering message image:", image);
163
+ const isLocalImage = image.startsWith("file:") || image.startsWith("data:") || image.startsWith("content:") || // Check if the image is a pendingUpload by checking if it doesn't start with http/https
164
+ !image.startsWith("http://") && !image.startsWith("https://");
165
+ const isUploading = currentMessage.isUploading;
87
166
  return /* @__PURE__ */ React__default.createElement(TouchableHighlight, { underlayColor: "transparent", style: {
88
167
  width: "100%",
89
- marginVertical: 5
90
- }, onPress: () => this.props.setImageViewer(messageImageProps == null ? void 0 : messageImageProps.currentMessage, true) }, /* @__PURE__ */ React__default.createElement(View, { style: {
168
+ marginVertical: 0
169
+ }, onPress: () => {
170
+ if (isUploading) return;
171
+ this.props.setImageViewer(currentMessage, true);
172
+ } }, /* @__PURE__ */ React__default.createElement(View, { style: {
91
173
  width: windowWidth * 0.6,
174
+ // 60% of screen width
92
175
  height: windowWidth * 0.4,
176
+ // Maintain aspect ratio
93
177
  maxHeight: 200,
94
178
  borderRadius: 8,
95
179
  overflow: "hidden",
96
180
  borderWidth: 1,
97
181
  borderColor: "#e0e0e0",
98
182
  backgroundColor: "#f7f7f7"
99
- } }, /* @__PURE__ */ React__default.createElement(CachedImage, { style: [styles.slackImage, {
100
- width: "100%",
101
- height: "100%"
102
- }], cacheKey: `${_id}-slack-bubble-imageKey`, source: {
103
- uri: image,
104
- expiresIn: 86400
105
- }, resizeMode: "cover", alt: "image", placeholderContent: /* @__PURE__ */ React__default.createElement(View, { style: [styles.slackImage, {
106
- width: "100%",
107
- height: "100%",
108
- backgroundColor: "#e1e1e1",
109
- justifyContent: "center",
110
- alignItems: "center",
111
- borderRadius: 8
112
- }] }, /* @__PURE__ */ React__default.createElement(Text, null, "Loading...")) })));
183
+ } }, isLocalImage ? (
184
+ // For local images, use direct Image component with no loading state
185
+ /* @__PURE__ */ React__default.createElement(View, { style: {
186
+ width: "100%",
187
+ height: "100%",
188
+ position: "relative"
189
+ } }, /* @__PURE__ */ React__default.createElement(MessageImage, __spreadProps(__spreadValues({}, messageImageProps), { imageStyle: {
190
+ width: "100%",
191
+ height: "100%",
192
+ borderRadius: 8
193
+ } })), isUploading && /* @__PURE__ */ React__default.createElement(View, { style: {
194
+ position: "absolute",
195
+ top: 0,
196
+ left: 0,
197
+ right: 0,
198
+ bottom: 0,
199
+ backgroundColor: "rgba(0,0,0,0.2)",
200
+ justifyContent: "center",
201
+ alignItems: "center"
202
+ } }, /* @__PURE__ */ React__default.createElement(Text, { style: {
203
+ color: "white",
204
+ fontWeight: "bold"
205
+ } }, "Uploading...")))
206
+ ) : (
207
+ // For remote images, use CachedImage with loading placeholder
208
+ /* @__PURE__ */ React__default.createElement(CachedImage, { style: [styles.slackImage, {
209
+ width: "100%",
210
+ height: "100%"
211
+ }], cacheKey: `${_id}-slack-bubble-imageKey`, source: {
212
+ uri: image,
213
+ expiresIn: 86400
214
+ }, resizeMode: "cover", alt: "image", placeholderContent: /* @__PURE__ */ React__default.createElement(View, { style: [styles.slackImage, {
215
+ width: "100%",
216
+ height: "100%",
217
+ backgroundColor: "#e1e1e1",
218
+ justifyContent: "center",
219
+ alignItems: "center",
220
+ borderRadius: 8
221
+ }] }, /* @__PURE__ */ React__default.createElement(Text, null, isUploading ? "Uploading..." : "Loading...")) })
222
+ )));
113
223
  }
114
224
  return null;
115
225
  }
@@ -182,7 +292,7 @@ class Bubble extends React__default.Component {
182
292
  },
183
293
  underlayColor: "transparent",
184
294
  disabled: true,
185
- accessibilityTraits: "text"
295
+ accessibilityRole: "text"
186
296
  }, this.props.touchableProps),
187
297
  /* @__PURE__ */ React__default.createElement(View, { style: [styles.wrapper, this.props.wrapperStyle] }, /* @__PURE__ */ React__default.createElement(View, null, this.renderCustomView(), messageHeader, this.renderMessageImage(), this.renderMessageText()))
188
298
  ));
@@ -226,14 +336,17 @@ const styles = StyleSheet.create({
226
336
  marginRight: 10
227
337
  },
228
338
  headerView: {
339
+ // Try to align it better with the avatar on Android.
229
340
  marginTop: Platform.OS === "android" ? -2 : 0,
230
341
  flexDirection: "row",
231
342
  alignItems: "baseline"
232
343
  },
344
+ /* eslint-disable react-native/no-color-literals */
233
345
  tick: {
234
346
  backgroundColor: "transparent",
235
347
  color: "white"
236
348
  },
349
+ /* eslint-enable react-native/no-color-literals */
237
350
  tickView: {
238
351
  flexDirection: "row"
239
352
  },