@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.
- package/lib/components/messages-container-ui/BuildModeView.js +428 -0
- package/lib/components/messages-container-ui/BuildModeView.js.map +1 -0
- package/lib/components/messages-container-ui/MessagesContainerUI.js +55 -0
- package/lib/components/messages-container-ui/MessagesContainerUI.js.map +1 -0
- package/lib/components/messages-container-ui/PlanModeView.js +336 -0
- package/lib/components/messages-container-ui/PlanModeView.js.map +1 -0
- package/lib/compute.js +2 -3
- package/lib/compute.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/module.js.map +1 -1
- package/lib/queries/inboxQueries.js +62 -0
- package/lib/queries/inboxQueries.js.map +1 -0
- package/lib/routes.json +2 -3
- package/lib/screens/inbox/DialogMessages.js +8 -3
- package/lib/screens/inbox/DialogMessages.js.map +1 -1
- package/lib/screens/inbox/DialogThreadMessages.js +6 -11
- package/lib/screens/inbox/DialogThreadMessages.js.map +1 -1
- package/lib/screens/inbox/DialogThreads.js +9 -11
- package/lib/screens/inbox/DialogThreads.js.map +1 -1
- package/lib/screens/inbox/Inbox.js.map +1 -1
- package/lib/screens/inbox/components/CachedImage/consts.js +1 -1
- package/lib/screens/inbox/components/CachedImage/consts.js.map +1 -1
- package/lib/screens/inbox/components/CachedImage/index.js +125 -96
- package/lib/screens/inbox/components/CachedImage/index.js.map +1 -1
- package/lib/screens/inbox/components/DialogItem.js +160 -0
- package/lib/screens/inbox/components/DialogItem.js.map +1 -0
- package/lib/screens/inbox/components/GiftedChatInboxComponent.js +315 -0
- package/lib/screens/inbox/components/GiftedChatInboxComponent.js.map +1 -0
- package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.js +3 -1
- package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.js.map +1 -1
- package/lib/screens/inbox/components/SlackMessageContainer/PaymentMessage.js +194 -0
- package/lib/screens/inbox/components/SlackMessageContainer/PaymentMessage.js.map +1 -0
- package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.js +149 -36
- package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.js.map +1 -1
- package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.js +4 -5
- package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.js.map +1 -1
- package/lib/screens/inbox/components/SubscriptionHandler.js +22 -0
- package/lib/screens/inbox/components/SubscriptionHandler.js.map +1 -0
- package/lib/screens/inbox/components/ThreadsViewItem.js +2 -4
- package/lib/screens/inbox/components/ThreadsViewItem.js.map +1 -1
- package/lib/screens/inbox/config/config.js +4 -2
- package/lib/screens/inbox/config/config.js.map +1 -1
- package/lib/screens/inbox/containers/ConversationView.js +1093 -1090
- package/lib/screens/inbox/containers/ConversationView.js.map +1 -1
- package/lib/screens/inbox/containers/Dialogs.js +130 -577
- package/lib/screens/inbox/containers/Dialogs.js.map +1 -1
- package/lib/screens/inbox/containers/ThreadConversationView.js +864 -1408
- package/lib/screens/inbox/containers/ThreadConversationView.js.map +1 -1
- package/lib/screens/inbox/containers/ThreadsView.js +9 -15
- package/lib/screens/inbox/containers/ThreadsView.js.map +1 -1
- package/lib/screens/inbox/hooks/useInboxMessages.js +31 -0
- package/lib/screens/inbox/hooks/useInboxMessages.js.map +1 -0
- package/lib/screens/inbox/hooks/useSafeDialogThreadsMachine.js +1 -1
- package/lib/screens/inbox/hooks/useSafeDialogThreadsMachine.js.map +1 -1
- package/lib/screens/inbox/workflow/dialog-threads-xstate.js.map +1 -1
- package/package.json +10 -8
- package/CHANGELOG.md +0 -172
- package/jest.config.js +0 -24
- package/lib/screens/inbox/components/DialogsListItem.js +0 -548
- package/lib/screens/inbox/components/DialogsListItem.js.map +0 -1
- package/lib/screens/inbox/components/ServiceDialogsListItem.js +0 -489
- package/lib/screens/inbox/components/ServiceDialogsListItem.js.map +0 -1
- package/lib/screens/inbox/components/workflow/dialogs-list-item-xstate.js +0 -175
- package/lib/screens/inbox/components/workflow/dialogs-list-item-xstate.js.map +0 -1
- package/lib/screens/inbox/components/workflow/service-dialogs-list-item-xstate.js +0 -191
- package/lib/screens/inbox/components/workflow/service-dialogs-list-item-xstate.js.map +0 -1
- package/lib/screens/inbox/containers/workflow/conversation-xstate.js +0 -380
- package/lib/screens/inbox/containers/workflow/conversation-xstate.js.map +0 -1
- package/lib/screens/inbox/containers/workflow/dialogs-xstate.js +0 -211
- package/lib/screens/inbox/containers/workflow/dialogs-xstate.js.map +0 -1
- package/lib/screens/inbox/containers/workflow/thread-conversation-xstate.js +0 -438
- package/lib/screens/inbox/containers/workflow/thread-conversation-xstate.js.map +0 -1
- package/rollup.config.mjs +0 -45
- package/src/components/index.ts +0 -0
- package/src/compute.ts +0 -63
- package/src/index.ts +0 -7
- package/src/module.ts +0 -10
- package/src/navigation/InboxNavigation.tsx +0 -102
- package/src/navigation/index.ts +0 -1
- package/src/screens/inbox/DialogMessages.tsx +0 -21
- package/src/screens/inbox/DialogThreadMessages.tsx +0 -97
- package/src/screens/inbox/DialogThreads.tsx +0 -125
- package/src/screens/inbox/Inbox.tsx +0 -17
- package/src/screens/inbox/components/CachedImage/consts.ts +0 -6
- package/src/screens/inbox/components/CachedImage/index.tsx +0 -223
- package/src/screens/inbox/components/DialogsHeader.tsx +0 -30
- package/src/screens/inbox/components/DialogsListItem.tsx +0 -819
- package/src/screens/inbox/components/ServiceDialogsListItem.tsx +0 -679
- package/src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx +0 -113
- package/src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx +0 -313
- package/src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx +0 -145
- package/src/screens/inbox/components/SlackMessageContainer/index.ts +0 -3
- package/src/screens/inbox/components/SmartLoader.tsx +0 -61
- package/src/screens/inbox/components/SupportServiceDialogsListItem.tsx +0 -301
- package/src/screens/inbox/components/ThreadsViewItem.tsx +0 -233
- package/src/screens/inbox/components/workflow/dialogs-list-item-xstate.ts +0 -145
- package/src/screens/inbox/components/workflow/service-dialogs-list-item-xstate.ts +0 -159
- package/src/screens/inbox/config/config.ts +0 -15
- package/src/screens/inbox/config/index.ts +0 -1
- package/src/screens/inbox/containers/ConversationView.tsx +0 -1784
- package/src/screens/inbox/containers/Dialogs.tsx +0 -829
- package/src/screens/inbox/containers/SupportServiceDialogs.tsx +0 -119
- package/src/screens/inbox/containers/ThreadConversationView.tsx +0 -2295
- package/src/screens/inbox/containers/ThreadsView.tsx +0 -224
- package/src/screens/inbox/containers/workflow/apollo/handleResult.ts +0 -20
- package/src/screens/inbox/containers/workflow/conversation-xstate.ts +0 -313
- package/src/screens/inbox/containers/workflow/dialogs-xstate.ts +0 -196
- package/src/screens/inbox/containers/workflow/thread-conversation-xstate.ts +0 -401
- package/src/screens/inbox/hooks/useSafeDialogThreadsMachine.ts +0 -136
- package/src/screens/inbox/index.ts +0 -37
- package/src/screens/inbox/machines/threadsMachine.ts +0 -147
- package/src/screens/inbox/workflow/dialog-threads-xstate.ts +0 -163
- package/src/screens/index.ts +0 -4
- package/tsconfig.json +0 -13
- 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":"kGAEA,MAAM,mBAAmB,CAAC;AAAA,EACxB,QAAA;AAAA,EACA,
|
|
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 {
|
|
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
|
-
|
|
48
|
-
|
|
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
|
-
} =
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
} =
|
|
159
|
+
} = currentMessage;
|
|
82
160
|
if (!image || typeof image !== "string") {
|
|
83
|
-
console.log("Invalid image URL:", image);
|
|
84
161
|
return null;
|
|
85
162
|
}
|
|
86
|
-
|
|
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:
|
|
90
|
-
}, onPress: () =>
|
|
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
|
-
} },
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
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
|
},
|