@messenger-box/platform-mobile 0.0.1-alpha.316 → 0.0.1-alpha.320
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/lib/index.js +135 -18
- package/lib/index.js.map +1 -1
- package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.d.ts +2 -0
- package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.d.ts +2 -0
- package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.d.ts +2 -0
- package/lib/screens/inbox/components/SlackMessageContainer/index.d.ts +2 -1
- package/package.json +3 -3
- package/src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx +95 -0
- package/src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx +6 -2
- package/src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx +5 -1
- package/src/screens/inbox/components/SlackMessageContainer/index.ts +2 -1
- package/src/screens/inbox/containers/ConversationView.tsx +40 -17
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.0.1-alpha.320](https://github.com/CDEBase/messenger-box/compare/v0.0.1-alpha.319...v0.0.1-alpha.320) (2023-04-07)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @messenger-box/platform-mobile
|
|
9
|
+
|
|
10
|
+
## [0.0.1-alpha.318](https://github.com/CDEBase/messenger-box/compare/v0.0.1-alpha.317...v0.0.1-alpha.318) (2023-04-06)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @messenger-box/platform-mobile
|
|
13
|
+
|
|
6
14
|
## [0.0.1-alpha.316](https://github.com/CDEBase/messenger-box/compare/v0.0.1-alpha.315...v0.0.1-alpha.316) (2023-04-06)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @messenger-box/platform-mobile
|
package/lib/index.js
CHANGED
|
@@ -360,6 +360,96 @@ selectedChannelId, channel, onOpen, }) {
|
|
|
360
360
|
exports.DialogsListItem = DialogsListItem;
|
|
361
361
|
|
|
362
362
|
|
|
363
|
+
/***/ }),
|
|
364
|
+
|
|
365
|
+
/***/ "./src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx":
|
|
366
|
+
/*!*********************************************************************************!*\
|
|
367
|
+
!*** ./src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx ***!
|
|
368
|
+
\*********************************************************************************/
|
|
369
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
373
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
374
|
+
};
|
|
375
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
376
|
+
const react_1 = __importDefault(__webpack_require__(/*! react */ "react"));
|
|
377
|
+
const react_native_1 = __webpack_require__(/*! react-native */ "react-native");
|
|
378
|
+
const ImageViewerModal = ({ children, isVisible = false, setVisible }, modalComponent) => {
|
|
379
|
+
return (react_1.default.createElement(react_native_1.Modal, { animationType: "slide",
|
|
380
|
+
// transparent={true}
|
|
381
|
+
visible: isVisible, presentationStyle: 'fullScreen', style: { flex: 1 }, onRequestClose: () => {
|
|
382
|
+
setVisible(!isVisible);
|
|
383
|
+
} },
|
|
384
|
+
react_1.default.createElement(react_native_1.View, { style: styles.container },
|
|
385
|
+
react_1.default.createElement(react_native_1.View, { style: styles.headerView },
|
|
386
|
+
react_1.default.createElement(react_native_1.View, { style: { alignSelf: 'flex-end' } },
|
|
387
|
+
react_1.default.createElement(react_native_1.Pressable, { style: [styles.button, styles.buttonClose], onPress: () => setVisible(!isVisible) },
|
|
388
|
+
react_1.default.createElement(react_native_1.Text, { style: styles.headerTextStyle }, "X")))),
|
|
389
|
+
react_1.default.createElement(react_native_1.View, { style: styles.centeredView }, modalComponent ? modalComponent : children))));
|
|
390
|
+
};
|
|
391
|
+
const styles = react_native_1.StyleSheet.create({
|
|
392
|
+
container: {
|
|
393
|
+
flex: 1,
|
|
394
|
+
},
|
|
395
|
+
headerView: {
|
|
396
|
+
width: '100%',
|
|
397
|
+
alignItems: 'center',
|
|
398
|
+
justifyContent: 'space-between',
|
|
399
|
+
backgroundColor: '#000',
|
|
400
|
+
paddingTop: 50,
|
|
401
|
+
paddingBottom: 10,
|
|
402
|
+
},
|
|
403
|
+
centeredView: {
|
|
404
|
+
flex: 1,
|
|
405
|
+
justifyContent: 'center',
|
|
406
|
+
alignItems: 'center',
|
|
407
|
+
backgroundColor: 'white',
|
|
408
|
+
},
|
|
409
|
+
modalView: {
|
|
410
|
+
flex: 1,
|
|
411
|
+
backgroundColor: 'white',
|
|
412
|
+
borderRadius: 20,
|
|
413
|
+
alignItems: 'center',
|
|
414
|
+
shadowColor: '#000',
|
|
415
|
+
shadowOffset: {
|
|
416
|
+
width: 0,
|
|
417
|
+
height: 2,
|
|
418
|
+
},
|
|
419
|
+
shadowOpacity: 0.25,
|
|
420
|
+
shadowRadius: 4,
|
|
421
|
+
elevation: 5,
|
|
422
|
+
},
|
|
423
|
+
button: {
|
|
424
|
+
borderRadius: 20,
|
|
425
|
+
padding: 10,
|
|
426
|
+
elevation: 2,
|
|
427
|
+
},
|
|
428
|
+
buttonOpen: {
|
|
429
|
+
backgroundColor: '#F194FF',
|
|
430
|
+
},
|
|
431
|
+
buttonClose: {
|
|
432
|
+
backgroundColor: 'transparent',
|
|
433
|
+
},
|
|
434
|
+
textStyle: {
|
|
435
|
+
color: 'white',
|
|
436
|
+
fontWeight: 'bold',
|
|
437
|
+
textAlign: 'center',
|
|
438
|
+
},
|
|
439
|
+
headerTextStyle: {
|
|
440
|
+
color: 'white',
|
|
441
|
+
// fontWeight: 'bold',
|
|
442
|
+
textAlign: 'center',
|
|
443
|
+
fontSize: 20
|
|
444
|
+
},
|
|
445
|
+
modalText: {
|
|
446
|
+
marginBottom: 15,
|
|
447
|
+
textAlign: 'center',
|
|
448
|
+
},
|
|
449
|
+
});
|
|
450
|
+
exports["default"] = ImageViewerModal;
|
|
451
|
+
|
|
452
|
+
|
|
363
453
|
/***/ }),
|
|
364
454
|
|
|
365
455
|
/***/ "./src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx":
|
|
@@ -416,7 +506,9 @@ class Bubble extends react_1.default.Component {
|
|
|
416
506
|
if (this.props.renderMessageImage) {
|
|
417
507
|
return this.props.renderMessageImage(messageImageProps);
|
|
418
508
|
}
|
|
419
|
-
return (react_1.default.createElement(react_native_gifted_chat_1.MessageImage, Object.assign({}, messageImageProps, { imageStyle: [styles.slackImage, messageImageProps.imageStyle] }))
|
|
509
|
+
return (react_1.default.createElement(react_native_gifted_chat_1.MessageImage, Object.assign({}, messageImageProps, { imageStyle: [styles.slackImage, messageImageProps.imageStyle] }))
|
|
510
|
+
//<TouchableOpacity onPress={()=>this.props.setImageViewer(messageImageProps?.currentMessage,true)}><Text><MessageImage {...messageImageProps} imageStyle={[styles.slackImage, messageImageProps.imageStyle]} /></Text></TouchableOpacity>
|
|
511
|
+
);
|
|
420
512
|
}
|
|
421
513
|
return null;
|
|
422
514
|
}
|
|
@@ -562,6 +654,8 @@ Bubble.defaultProps = {
|
|
|
562
654
|
tickStyle: {},
|
|
563
655
|
containerToNextStyle: {},
|
|
564
656
|
containerToPreviousStyle: {},
|
|
657
|
+
isShowImageViewer: false,
|
|
658
|
+
setImageViewer: (obj, v) => null,
|
|
565
659
|
};
|
|
566
660
|
|
|
567
661
|
|
|
@@ -616,7 +710,7 @@ class Message extends react_1.default.Component {
|
|
|
616
710
|
if (this.props.renderBubble) {
|
|
617
711
|
return this.props.renderBubble(bubbleProps);
|
|
618
712
|
}
|
|
619
|
-
return react_1.default.createElement(SlackBubble_1.default, Object.assign({}, bubbleProps));
|
|
713
|
+
return react_1.default.createElement(SlackBubble_1.default, Object.assign({}, bubbleProps, { isShowImageViewer: this.props.isShowImageViewer, setImageViewer: this.props.setImageViewer }));
|
|
620
714
|
}
|
|
621
715
|
renderAvatar() {
|
|
622
716
|
let extraStyle;
|
|
@@ -665,6 +759,8 @@ Message.defaultProps = {
|
|
|
665
759
|
previousMessage: {},
|
|
666
760
|
user: {},
|
|
667
761
|
containerStyle: {},
|
|
762
|
+
isShowImageViewer: false,
|
|
763
|
+
setImageViewer: (obj, v) => null,
|
|
668
764
|
};
|
|
669
765
|
|
|
670
766
|
|
|
@@ -681,9 +777,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
681
777
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
682
778
|
};
|
|
683
779
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
684
|
-
exports.SlackMessage = void 0;
|
|
780
|
+
exports.ImageViewerModal = exports.SlackMessage = void 0;
|
|
685
781
|
const SlackMessage_1 = __importDefault(__webpack_require__(/*! ./SlackMessage */ "./src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx"));
|
|
686
782
|
exports.SlackMessage = SlackMessage_1.default;
|
|
783
|
+
const ImageViewerModal_1 = __importDefault(__webpack_require__(/*! ./ImageViewerModal */ "./src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx"));
|
|
784
|
+
exports.ImageViewerModal = ImageViewerModal_1.default;
|
|
687
785
|
|
|
688
786
|
|
|
689
787
|
/***/ }),
|
|
@@ -788,7 +886,9 @@ function ConversationView({ channelId }) {
|
|
|
788
886
|
const [msg, setMsg] = (0, react_1.useState)('');
|
|
789
887
|
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
790
888
|
const [imageLoading, setImageLoading] = (0, react_1.useState)(false);
|
|
791
|
-
const [expoTokens, setExpoTokens] =
|
|
889
|
+
//const [expoTokens, setExpoTokens] = useState<any[]>([]);
|
|
890
|
+
const [isShowImageViewer, setImageViewer] = (0, react_1.useState)(false);
|
|
891
|
+
const [imageObject, setImageObject] = (0, react_1.useState)({});
|
|
792
892
|
const { startUpload } = (0, platform_client_1.useUploadFilesNative)();
|
|
793
893
|
const [sendMsg] = (0, platform_client_1.useSendMessagesMutation)();
|
|
794
894
|
react_1.default.useEffect(() => {
|
|
@@ -807,16 +907,19 @@ function ConversationView({ channelId }) {
|
|
|
807
907
|
variables: {
|
|
808
908
|
id: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
|
|
809
909
|
},
|
|
810
|
-
onCompleted: (data) => {
|
|
811
|
-
var _a, _b, _c, _d, _e, _f;
|
|
812
|
-
const channelData = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.viewChannelDetail) === null || _a === void 0 ? void 0 : _a.members) === null || _b === void 0 ? void 0 : _b.filter((mu) => { var _a; return ((_a = mu === null || mu === void 0 ? void 0 : mu.user) === null || _a === void 0 ? void 0 : _a.id) != (auth === null || auth === void 0 ? void 0 : auth.id); })) !== null && _c !== void 0 ? _c : [];
|
|
813
|
-
const tokens = (_f = (_e = (_d = channelData === null || channelData === void 0 ? void 0 : channelData.map((u) => {
|
|
814
|
-
var _a, _b, _c, _d;
|
|
815
|
-
return (_d = (_c = (_b = (_a = u === null || u === void 0 ? void 0 : u.user) === null || _a === void 0 ? void 0 : _a.tokens) === null || _b === void 0 ? void 0 : _b.filter((t) => (t === null || t === void 0 ? void 0 : t.type) == 'EXPO_NOTIFICATION_TOKEN')) === null || _c === void 0 ? void 0 : _c.map((et) => et === null || et === void 0 ? void 0 : et.token)) !== null && _d !== void 0 ? _d : [];
|
|
816
|
-
})) === null || _d === void 0 ? void 0 : _d.flat(1)) === null || _e === void 0 ? void 0 : _e.filter((t) => t)) !== null && _f !== void 0 ? _f : [];
|
|
817
|
-
setExpoTokens(tokens);
|
|
818
|
-
},
|
|
819
910
|
});
|
|
911
|
+
const expoTokens = (0, react_1.useMemo)(() => {
|
|
912
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
913
|
+
if (!((_b = (_a = channelsDetail === null || channelsDetail === void 0 ? void 0 : channelsDetail.viewChannelDetail) === null || _a === void 0 ? void 0 : _a.members) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
914
|
+
return [];
|
|
915
|
+
}
|
|
916
|
+
const channelData = (_e = (_d = (_c = channelsDetail === null || channelsDetail === void 0 ? void 0 : channelsDetail.viewChannelDetail) === null || _c === void 0 ? void 0 : _c.members) === null || _d === void 0 ? void 0 : _d.filter((mu) => { var _a; return ((_a = mu === null || mu === void 0 ? void 0 : mu.user) === null || _a === void 0 ? void 0 : _a.id) != (auth === null || auth === void 0 ? void 0 : auth.id); })) !== null && _e !== void 0 ? _e : [];
|
|
917
|
+
const tokens = (_h = (_g = (_f = channelData === null || channelData === void 0 ? void 0 : channelData.map((u) => {
|
|
918
|
+
var _a, _b, _c, _d;
|
|
919
|
+
return (_d = (_c = (_b = (_a = u === null || u === void 0 ? void 0 : u.user) === null || _a === void 0 ? void 0 : _a.tokens) === null || _b === void 0 ? void 0 : _b.filter((t) => (t === null || t === void 0 ? void 0 : t.type) == 'EXPO_NOTIFICATION_TOKEN')) === null || _c === void 0 ? void 0 : _c.map((et) => et === null || et === void 0 ? void 0 : et.token)) !== null && _d !== void 0 ? _d : [];
|
|
920
|
+
})) === null || _f === void 0 ? void 0 : _f.flat(1)) === null || _g === void 0 ? void 0 : _g.filter((t) => t)) !== null && _h !== void 0 ? _h : [];
|
|
921
|
+
return tokens;
|
|
922
|
+
}, [channelsDetail === null || channelsDetail === void 0 ? void 0 : channelsDetail.viewChannelDetail]);
|
|
820
923
|
const { data: users } = (0, platform_client_1.useGetAllUsersQuery)();
|
|
821
924
|
const currentUser = (0, react_1.useMemo)(() => { var _a; return (_a = users === null || users === void 0 ? void 0 : users.getUsers) === null || _a === void 0 ? void 0 : _a.find(({ alias }) => alias === null || alias === void 0 ? void 0 : alias.includes(auth === null || auth === void 0 ? void 0 : auth.auth0UserId)); }, [users, auth]);
|
|
822
925
|
const { data: checkForMessages } = (0, platform_client_1.useCheckForNewMessagesQuery)({
|
|
@@ -856,7 +959,9 @@ function ConversationView({ channelId }) {
|
|
|
856
959
|
}, [checkForMessages, totalCount, refetch]);
|
|
857
960
|
const onFetchOld = (0, react_1.useCallback)(() => {
|
|
858
961
|
var _a;
|
|
859
|
-
|
|
962
|
+
console.log('fetch old');
|
|
963
|
+
// if (data?.messages?.totalCount > channelMessages.length) {
|
|
964
|
+
if (channelMessages.length !== ((_a = data === null || data === void 0 ? void 0 : data.messages) === null || _a === void 0 ? void 0 : _a.totalCount)) {
|
|
860
965
|
setLoadingOldMessages(true);
|
|
861
966
|
refetch({ skip: channelMessages.length });
|
|
862
967
|
}
|
|
@@ -930,13 +1035,14 @@ function ConversationView({ channelId }) {
|
|
|
930
1035
|
setTotalCount((t) => t + 1);
|
|
931
1036
|
setChannelToTop(channelToTop + 1);
|
|
932
1037
|
setLoading(false);
|
|
933
|
-
const title = '
|
|
1038
|
+
const title = 'Followup Chat';
|
|
934
1039
|
const body = message;
|
|
935
1040
|
const notificationData = {
|
|
936
1041
|
url: config_1.config.INBOX_MESSEGE_PATH,
|
|
937
1042
|
params: { channelId, hideTabBar: true },
|
|
938
1043
|
screen: 'DialogMessages',
|
|
939
1044
|
};
|
|
1045
|
+
console.log('expo to', JSON.stringify(expoTokens));
|
|
940
1046
|
if ((expoTokens === null || expoTokens === void 0 ? void 0 : expoTokens.length) > 0) {
|
|
941
1047
|
const to = (expoTokens === null || expoTokens === void 0 ? void 0 : expoTokens.length) > 0 ? expoTokens : [];
|
|
942
1048
|
sendPushNotification(title, body, notificationData, to);
|
|
@@ -1057,6 +1163,13 @@ function ConversationView({ channelId }) {
|
|
|
1057
1163
|
setImages([]);
|
|
1058
1164
|
} }, "Cancel"))) : null));
|
|
1059
1165
|
};
|
|
1166
|
+
// React.useEffect(()=>{
|
|
1167
|
+
// if(Object.keys(imageObject).length > 0) console.log('imageObject',imageObject)
|
|
1168
|
+
// },[imageObject])
|
|
1169
|
+
const setImageViewerObject = (obj, v) => {
|
|
1170
|
+
setImageObject(obj);
|
|
1171
|
+
setImageViewer(v);
|
|
1172
|
+
};
|
|
1060
1173
|
const renderMessage = (props) => {
|
|
1061
1174
|
// const {
|
|
1062
1175
|
// currentMessage: { text: currText },
|
|
@@ -1071,7 +1184,7 @@ function ConversationView({ channelId }) {
|
|
|
1071
1184
|
// }
|
|
1072
1185
|
// }
|
|
1073
1186
|
// return <SlackMessage {...props} messageTextStyle={messageTextStyle} />;
|
|
1074
|
-
return react_1.default.createElement(SlackMessageContainer_1.SlackMessage, Object.assign({}, props));
|
|
1187
|
+
return react_1.default.createElement(SlackMessageContainer_1.SlackMessage, Object.assign({}, props, { isShowImageViewer: isShowImageViewer, setImageViewer: setImageViewerObject }));
|
|
1075
1188
|
};
|
|
1076
1189
|
return (react_1.default.createElement(react_native_gifted_chat_1.GiftedChat, { wrapInSafeArea: false, renderLoading: () => react_1.default.createElement(native_base_1.Spinner, null), messages: messageList, onSend: (messages) => {
|
|
1077
1190
|
var _a, _b;
|
|
@@ -1079,8 +1192,12 @@ function ConversationView({ channelId }) {
|
|
|
1079
1192
|
}, text: msg ? msg : ' ', onInputTextChanged: (text) => setMsg(text), renderFooter: () => (loading ? react_1.default.createElement(native_base_1.Spinner, null) : imageLoading ? react_1.default.createElement(native_base_1.Spinner, null) : ''), scrollToBottom: true, user: {
|
|
1080
1193
|
_id: (currentUser === null || currentUser === void 0 ? void 0 : currentUser.id) || '',
|
|
1081
1194
|
}, isTyping: true, alwaysShowSend: loading ? false : true, onLoadEarlier: onFetchOld, infiniteScroll: true, renderSend: renderSend, loadEarlier: ((_a = checkForMessages === null || checkForMessages === void 0 ? void 0 : checkForMessages.messages) === null || _a === void 0 ? void 0 : _a.totalCount) > totalCount,
|
|
1082
|
-
//
|
|
1083
|
-
renderMessageText: renderMessageText, minInputToolbarHeight: 50, renderActions: renderActions, renderAccessory: renderAccessory, renderMessage: renderMessage
|
|
1195
|
+
//loadEarlier={channelMessages.length !== data?.messages?.totalCount}
|
|
1196
|
+
renderMessageText: renderMessageText, minInputToolbarHeight: 50, renderActions: renderActions, renderAccessory: renderAccessory, renderMessage: renderMessage,
|
|
1197
|
+
// renderChatFooter={()=>(
|
|
1198
|
+
// <ImageViewerModal isVisible={isShowImageViewer} setVisible={setImageViewer} />
|
|
1199
|
+
// )}
|
|
1200
|
+
lightboxProps: { underlayColor: 'transparent', springConfig: { tension: 90000, friction: 90000 }, disabled: false } }));
|
|
1084
1201
|
}
|
|
1085
1202
|
exports.ConversationView = ConversationView;
|
|
1086
1203
|
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@messenger-box/platform-mobile/./src/index.ts","webpack://@messenger-box/platform-mobile/./src/module.ts","webpack://@messenger-box/platform-mobile/./src/navigation/InboxNavigation.tsx","webpack://@messenger-box/platform-mobile/./src/navigation/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/DialogMessages.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/Inbox.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/DialogsListItem.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/config/config.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/config/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/ConversationView.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/Dialogs.tsx","webpack://@messenger-box/platform-mobile/./src/screens/index.ts","webpack://@messenger-box/platform-mobile/external commonjs \"@admin-layout/client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@adminide-stack/user-auth0-client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@common-stack/client-react\"","webpack://@messenger-box/platform-mobile/external commonjs \"@expo/vector-icons\"","webpack://@messenger-box/platform-mobile/external commonjs \"@messenger-box/platform-client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@react-navigation/native\"","webpack://@messenger-box/platform-mobile/external commonjs \"base-64\"","webpack://@messenger-box/platform-mobile/external commonjs \"date-fns\"","webpack://@messenger-box/platform-mobile/external commonjs \"envalid\"","webpack://@messenger-box/platform-mobile/external commonjs \"expo-image-picker\"","webpack://@messenger-box/platform-mobile/external commonjs \"lodash\"","webpack://@messenger-box/platform-mobile/external commonjs \"native-base\"","webpack://@messenger-box/platform-mobile/external commonjs \"react\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-native\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-native-gifted-chat\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-redux\"","webpack://@messenger-box/platform-mobile/webpack/bootstrap","webpack://@messenger-box/platform-mobile/webpack/before-startup","webpack://@messenger-box/platform-mobile/webpack/startup","webpack://@messenger-box/platform-mobile/webpack/after-startup"],"sourcesContent":["import PlatformModule from './module';\n\nimport { Feature } from '@common-stack/client-react';\n\nexport default new Feature(PlatformModule);\nexport * from './navigation';\nexport * from './screens';\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { Feature } from '@common-stack/client-react';\nimport { schema, typePolicies, dataIdFromObject } from '@messenger-box/platform-client';\n\nexport default new Feature({\n dataIdFromObject,\n clientStateParams: { typeDefs: schema, typePolicies },\n});\n","import * as React from 'react';\nimport { Feature } from '@common-stack/client-react';\nimport { DialogMessages } from '../screens/inbox/DialogMessages';\n\nconst inboxConfig = {\n ['//message']: {\n exact: true,\n name: 'Message',\n props: {\n initialParams: { channelId: null },\n component: (props: any) => <DialogMessages {...props} channelId={props?.route?.params?.channelId} />,\n options: {\n headerShown: true,\n title: 'Inbox',\n headerBackTitleVisible: false,\n gestureEnabled: false,\n swipeEnabled: false,\n },\n },\n },\n};\n\nexport const inboxFeature = new Feature({\n routeConfig: inboxConfig as any,\n});\n","export * from './InboxNavigation';\n","import * as React from 'react';\nimport { Box } from 'native-base';\nimport { ConversationView } from './containers/ConversationView';\n\nexport function DialogMessages({ channelId }) {\n return (\n <Box bg={'white'} flex={1} pt={5}>\n <ConversationView channelId={channelId} />\n </Box>\n );\n}","import * as React from 'react';\nimport { Box } from 'native-base';\n\nimport { Dialogs } from './containers/Dialogs';\n\nexport const Inbox = (props) => {\n const { channelFilters, channelRole } = props;\n return (\n <Box bg={'white'} flex={1}>\n <Dialogs channelFilters={channelFilters} channelRole={channelRole} {...props} />\n </Box>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Text, Image, Pressable, HStack, Stack, Box, Avatar, View } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { IChannel, IUserAccount, useMessagesQuery, useUserAccountQuery } from '@messenger-box/platform-client';\nimport { startCase } from 'lodash';\n\nconst createdAtText = (value: string) => {\n if (!value) return '';\n let date = new Date(value);\n if (isToday(date)) return 'Today';\n if (isYesterday(date)) return 'Yesterday';\n return format(new Date(value), 'MMM dd, yyyy');\n};\n\nexport interface IDialogListChannel extends IChannel {\n users: IUserAccount[];\n}\n\nexport interface IDialogListItemProps {\n currentUser?: any;\n users?: any;\n selectedChannelId?: any;\n channel?: any;\n onOpen: (id: any, title: any) => void;\n}\n\n/**\n * TODO:\n * - Get Reservation info: reservation date, status\n * - Add ability to get property information: name, logo\n */\nexport const DialogsListItem: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n selectedChannelId,\n channel,\n onOpen,\n}) {\n const {\n data: messagesQuery,\n loading: messageLoading,\n refetch: refetchMessages,\n } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n limit: 1,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchMessages({ channelId: channel?.id?.toString(), limit: 1 });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const lastMessage = useMemo(() => {\n if (!messagesQuery?.messages?.data?.length) {\n return null;\n }\n const { data } = messagesQuery.messages;\n return data[data.length - 1];\n }, [messagesQuery]);\n\n const channelMembers = useMemo(\n () =>\n channel?.members\n ?.filter((ch: any) => ch?.user?.id != currentUser?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null,\n [currentUser, channel],\n );\n\n const title = useMemo(\n () =>\n channelMembers\n ?.map((u: any) => u?.givenName + ' ' + u?.familyName ?? '')\n ?.filter((mu: any) => mu)\n ?.join(', ') ?? '',\n [channelMembers],\n );\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id, title)}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\n flex={1}\n _dark={{\n borderColor: 'coolGray.600',\n backgroundColor: 'gray.700',\n }}\n _web={{\n shadow: 2,\n borderWidth: 0,\n }}\n _light={{\n backgroundColor: 'gray.50',\n }}\n >\n <HStack\n // px={2}\n // pl={3}\n py={3}\n space={2}\n w={'100%'}\n flex={1}\n direction={'row'}\n justifyContent={'space-between'}\n alignItems={'center'}\n >\n <Box flex={0.1} alignItems={'flex-start'} pl={3}>\n <Avatar.Group\n _avatar={{\n size: 'sm',\n bg: 'transparent',\n }}\n >\n {channelMembers &&\n channelMembers?.length > 0 &&\n channelMembers?.slice(0, 2)?.map((ch: any, i: Number) => (\n <Avatar\n key={'key' + i}\n bg={'transparent'}\n size={9}\n top={i == 1 ? 4 : 0}\n right={i == 1 ? -2 : 0}\n zIndex={i == 1 ? 5 : 1}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: ch?.picture,\n }}\n >\n {startCase(ch?.username?.charAt(0))}\n {channelMembers?.length == 1 && (\n <Avatar.Badge bg=\"green.800\" bottom={-4} right={-4} />\n )}\n </Avatar>\n ))}\n </Avatar.Group>\n </Box>\n <Box flex={0.9}>\n <HStack space={1} flex={1} direction={'row'} justifyContent={'center'} alignItems={'center'}>\n <Box flex={0.8}>\n <Text color=\"gray.600\" fontSize=\"lg\" flexWrap={'wrap'} fontWeight=\"semibold\">\n {title}\n </Text>\n <Text color=\"gray.600\" noOfLines={1}>\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </Box>\n </HStack>\n {/* <Text\n flex={1}\n color=\"gray.600\"\n p={0}\n m={0}\n w={'100%'}\n justifyContent={''}\n fontSize=\"lg\"\n fontWeight=\"semibold\"\n >\n {title}\n </Text> */}\n {/* <Text flex={0.1} color=\"gray.600\">\n {lastMessage?.message ?? ''}\n </Text> */}\n </Box>\n {/* <Text flex={0.2} color=\"gray.500\">\n {lastMessage ? createdAtText(lastMessage?.createdAt) : ''}\n </Text> */}\n </HStack>\n </Pressable>\n );\n};\n","/* eslint-disable no-underscore-dangle, no-use-before-define */\nimport React from 'react';\nimport { Text, StyleSheet, TouchableOpacity, View, Platform } from 'react-native';\n\nimport { MessageText, MessageImage, Time, utils } from 'react-native-gifted-chat';\n\nconst { isSameUser, isSameDay } = utils;\n\nexport default class Bubble extends React.Component<any> {\n static defaultProps: {\n touchableProps: {};\n onLongPress: null;\n renderMessageImage: null;\n renderMessageText: null;\n renderCustomView: null;\n renderTime: null;\n currentMessage: { text: null; createdAt: null; image: null };\n nextMessage: {};\n previousMessage: {};\n containerStyle: {};\n wrapperStyle: {};\n tickStyle: {};\n containerToNextStyle: {};\n containerToPreviousStyle: {};\n };\n static propTypes: any;\n constructor(props: any) {\n super(props);\n }\n\n renderMessageText() {\n if (this.props.currentMessage.text) {\n const { containerStyle, wrapperStyle, messageTextStyle, ...messageTextProps } = this.props;\n if (this.props.renderMessageText) {\n return this.props.renderMessageText(messageTextProps);\n }\n return (\n <MessageText\n {...messageTextProps}\n textStyle={{\n left: [\n styles.standardFont,\n styles.slackMessageText,\n messageTextProps.textStyle,\n messageTextStyle,\n ],\n }}\n />\n );\n }\n return null;\n }\n\n renderMessageImage() {\n if (this.props.currentMessage.image) {\n const { containerStyle, wrapperStyle, ...messageImageProps } = this.props;\n if (this.props.renderMessageImage) {\n return this.props.renderMessageImage(messageImageProps);\n }\n return (\n <MessageImage {...messageImageProps} imageStyle={[styles.slackImage, messageImageProps.imageStyle]} />\n );\n }\n return null;\n }\n\n renderTicks() {\n const { currentMessage } = this.props;\n if (this.props.renderTicks) {\n return this.props.renderTicks(currentMessage);\n }\n if (currentMessage.user._id !== this.props.user._id) {\n return null;\n }\n if (currentMessage.sent || currentMessage.received) {\n return (\n <View style={[styles.headerItem, styles.tickView]}>\n {currentMessage.sent && (\n <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>\n )}\n {currentMessage.received && (\n <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>\n )}\n </View>\n );\n }\n return null;\n }\n\n renderUsername() {\n const username = this.props.currentMessage.user.name;\n if (username) {\n const { containerStyle, wrapperStyle, ...usernameProps } = this.props;\n if (this.props.renderUsername) {\n return this.props.renderUsername(usernameProps);\n }\n return (\n <Text style={[styles.standardFont, styles.headerItem, styles.username, this.props.usernameStyle]}>\n {username}\n </Text>\n );\n }\n return null;\n }\n\n renderTime() {\n if (this.props.currentMessage.createdAt) {\n const { containerStyle, wrapperStyle, ...timeProps }: any = this.props;\n if (this.props.renderTime) {\n return this.props.renderTime(timeProps);\n }\n return (\n <Time\n {...timeProps}\n containerStyle={{ left: [styles.timeContainer] }}\n textStyle={{\n left: [styles.standardFont, styles.headerItem, styles.time, timeProps.textStyle],\n }}\n />\n );\n }\n return null;\n }\n\n renderCustomView() {\n if (this.props.renderCustomView) {\n return this.props.renderCustomView(this.props);\n }\n return null;\n }\n\n render() {\n const isSameThread =\n isSameUser(this.props.currentMessage, this.props.previousMessage) &&\n isSameDay(this.props.currentMessage, this.props.previousMessage);\n\n const messageHeader = isSameThread ? null : (\n <View style={styles.headerView}>\n {this.renderUsername()}\n {this.renderTime()}\n {this.renderTicks()}\n </View>\n );\n\n return (\n <View style={[styles.container, this.props.containerStyle]}>\n <TouchableOpacity disabled={true} accessibilityTraits=\"text\" {...this.props.touchableProps}>\n <View style={[styles.wrapper, this.props.wrapperStyle]}>\n <View>\n {this.renderCustomView()}\n {messageHeader}\n {this.renderMessageImage()}\n {this.renderMessageText()}\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n }\n}\n\n// Note: Everything is forced to be \"left\" positioned with this component.\n// The \"right\" position is only used in the default Bubble.\nconst styles = StyleSheet.create({\n standardFont: {\n fontSize: 15,\n },\n slackMessageText: {\n marginLeft: 0,\n marginRight: 0,\n },\n container: {\n flex: 1,\n alignItems: 'flex-start',\n },\n wrapper: {\n marginRight: 60,\n minHeight: 20,\n justifyContent: 'flex-start',\n },\n username: {\n fontWeight: 'bold',\n top: 0,\n paddingTop: 0,\n marginTop: 0,\n },\n time: {\n textAlign: 'left',\n fontSize: 12,\n },\n timeContainer: {\n marginLeft: 0,\n marginRight: 0,\n marginBottom: 0,\n },\n headerItem: {\n marginRight: 10,\n },\n headerView: {\n // Try to align it better with the avatar on Android.\n marginTop: Platform.OS === 'android' ? -2 : 0,\n flexDirection: 'row',\n alignItems: 'baseline',\n },\n /* eslint-disable react-native/no-color-literals */\n tick: {\n backgroundColor: 'transparent',\n color: 'white',\n },\n /* eslint-enable react-native/no-color-literals */\n tickView: {\n flexDirection: 'row',\n },\n slackImage: {\n borderRadius: 3,\n marginLeft: 8,\n marginRight: 0,\n },\n});\n\n// Bubble.contextTypes = {\n// actionSheet: PropTypes.func,\n// };\n\nBubble.defaultProps = {\n touchableProps: {},\n onLongPress: null,\n renderMessageImage: null,\n renderMessageText: null,\n renderCustomView: null,\n renderTime: null,\n currentMessage: {\n text: null,\n createdAt: null,\n image: null,\n },\n nextMessage: {},\n previousMessage: {},\n containerStyle: {},\n wrapperStyle: {},\n tickStyle: {},\n containerToNextStyle: {},\n containerToPreviousStyle: {},\n};\n","/* eslint-disable no-underscore-dangle, no-use-before-define */\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { View, ViewPropTypes, StyleSheet } from 'react-native';\n\nimport { Avatar, Day, utils } from 'react-native-gifted-chat';\nimport Bubble from './SlackBubble';\n\nconst { isSameUser, isSameDay } = utils;\n\nexport default class Message 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 };\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 renderBubble() {\n const bubbleProps = this.getInnerComponentProps();\n if (this.props.renderBubble) {\n return this.props.renderBubble(bubbleProps);\n }\n return <Bubble {...bubbleProps} />;\n }\n\n renderAvatar() {\n let extraStyle: any;\n if (\n isSameUser(this.props.currentMessage, this.props.previousMessage) &&\n isSameDay(this.props.currentMessage, this.props.previousMessage)\n ) {\n // Set the invisible avatar height to 0, but keep the width, padding, etc.\n extraStyle = { height: 0 };\n }\n\n const avatarProps: any = this.getInnerComponentProps();\n return (\n <Avatar\n {...avatarProps}\n showAvatarForEveryMessage={true}\n imageStyle={{\n left: [styles.slackAvatar, avatarProps.imageStyle, extraStyle],\n }}\n />\n );\n }\n\n render() {\n const marginBottom = isSameUser(this.props.currentMessage, this.props.nextMessage) ? 2 : 10;\n\n return (\n <View>\n {this.renderDay()}\n <View style={[styles.container, { marginBottom }, this.props.containerStyle]}>\n {this.renderAvatar()}\n {this.renderBubble()}\n </View>\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n marginLeft: 8,\n marginRight: 0,\n },\n slackAvatar: {\n // The bottom should roughly line up with the first line of message text.\n height: 40,\n width: 40,\n borderRadius: 3,\n marginTop: 0,\n },\n});\n\nMessage.defaultProps = {\n renderAvatar: undefined,\n renderBubble: null,\n renderDay: null,\n currentMessage: {},\n nextMessage: {},\n previousMessage: {},\n user: {},\n containerStyle: {},\n};\n","import SlackMessage from './SlackMessage';\nexport { SlackMessage };\n","import { cleanEnv, num, str } from 'envalid';\n\nexport const config = cleanEnv(process['APP_ENV'] || process.env, {\n MESSAGES_PER_PAGE: num({ devDefault: 10, default: 20 }),\n FILES_PER_MESSAGE: num({ default: 10 }),\n INBOX_MESSEGE_PATH: str({ default: 'MainStack.Message' }),\n CALL_TO_ACTION_PATH: str({ default: 'MainStack.MyReservationDetails' }),\n CALL_TO_ACTION_BOX_BGCOLOR: str({ default: '#0084ff' }),\n CALL_TO_ACTION_BUTTON_BORDERCOLOR: str({ default: '#fff' }),\n CALL_TO_ACTION_TEXT_COLOR: str({ default: '#fff' }),\n});\n","export { config } from './config';\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Box, Button, HStack, Icon, Image, Spinner, Text, useColorModeValue } from 'native-base';\nimport { useNavigation } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy } from 'lodash';\nimport * as ImagePicker from 'expo-image-picker';\nimport { encode as atob } from 'base-64';\nimport { Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { Actions, GiftedChat, IMessage, MessageText, Send } from 'react-native-gifted-chat';\nimport {\n useCheckForNewMessagesQuery,\n useGetAllUsersQuery,\n useMessagesQuery,\n useSendMessagesMutation,\n useViewChannelDetailQuery,\n useUploadFilesNative,\n} from '@messenger-box/platform-client';\nimport { IFileInfo } from '@messenger-box/core';\nimport { config } from '../config';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { SlackMessage } from '../components/SlackMessageContainer';\n\nconst {\n MESSAGES_PER_PAGE,\n CALL_TO_ACTION_BOX_BGCOLOR,\n CALL_TO_ACTION_PATH,\n CALL_TO_ACTION_BUTTON_BORDERCOLOR,\n CALL_TO_ACTION_TEXT_COLOR,\n} = config;\n\ninterface IMessageProps extends IMessage {\n type: string;\n propsConfiguration?: any;\n}\n\nexport interface AlertMessageAttachmentsInterface {\n title: string;\n isTitleHtml: boolean;\n icon: string;\n callToAction: {\n title: string;\n link: string;\n };\n}\n\nexport function ConversationView({ channelId }: any) {\n const [channelToTop, setChannelToTop] = useState(0);\n const [channelMessages, setChannelMessages] = useState<any>([]);\n const auth = useSelector(userSelector);\n const [totalCount, setTotalCount] = useState<any>(0);\n const [selectedImage, setImage] = useState<string>('');\n const [loadingOldMessages, setLoadingOldMessages] = useState(false);\n const color = useColorModeValue('white', 'black');\n // const color = useColorModeValue('black', 'white');\n const navigation = useNavigation<any>();\n const [files, setFiles] = useState<File[]>([]);\n const [images, setImages] = useState<ImagePicker.ImageInfo[]>([]);\n const [msg, setMsg] = useState<string>('');\n const [loading, setLoading] = useState(false);\n const [imageLoading, setImageLoading] = useState(false);\n const [expoTokens, setExpoTokens] = useState<any[]>([]);\n\n const { startUpload } = useUploadFilesNative();\n\n const [sendMsg] = useSendMessagesMutation();\n\n React.useEffect(() => {\n if (selectedImage) setImageLoading(false);\n }, [selectedImage]);\n\n const {\n data,\n loading: messageLoading,\n refetch,\n } = useMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n });\n\n const {\n data: channelsDetail,\n loading: channelLoading,\n refetch: refetchChannelDetail,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\n },\n onCompleted: (data: any) => {\n const channelData: any =\n data?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != auth?.id) ?? [];\n const tokens: any =\n channelData\n ?.map(\n (u: any) =>\n u?.user?.tokens\n ?.filter((t: any) => t?.type == 'EXPO_NOTIFICATION_TOKEN')\n ?.map((et: any) => et?.token) ?? [],\n )\n ?.flat(1)\n ?.filter((t: any) => t) ?? [];\n setExpoTokens(tokens);\n },\n });\n\n const { data: users } = useGetAllUsersQuery();\n\n const currentUser = useMemo(\n () => users?.getUsers?.find(({ alias }: any) => alias?.includes(auth?.auth0UserId)),\n [users, auth],\n );\n\n const { data: checkForMessages } = useCheckForNewMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n },\n skip: !channelId,\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n useEffect(() => {\n if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n const { data: messages, totalCount: messeageTotalCount } = data.messages;\n if (messages && messages.length > 0 && totalCount !== messeageTotalCount) {\n setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n }\n if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n }\n }, [data, loadingOldMessages, channelMessages]);\n\n useEffect(() => {\n if (checkForMessages?.messages?.totalCount > totalCount) {\n const numberOfNewMessages = checkForMessages?.messages?.totalCount - totalCount;\n refetch({\n limit: numberOfNewMessages,\n }).then(({ data }) => {\n if (!data?.messages) {\n return;\n }\n const { data: messages, totalCount } = data.messages;\n setTotalCount(totalCount);\n setChannelMessages((oldMessages) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n });\n }\n }, [checkForMessages, totalCount, refetch]);\n\n const onFetchOld = useCallback(() => {\n if (data?.messages?.totalCount > channelMessages.length) {\n setLoadingOldMessages(true);\n refetch({ skip: channelMessages.length });\n }\n }, [data, channelMessages]);\n\n const isCloseToTop = ({ layoutMeasurement, contentOffset, contentSize }) => {\n return contentOffset.y <= 100; // 100px from top\n };\n\n const dataURLtoFile = (dataurl, filename) => {\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], filename, { type: mime });\n };\n\n const onSelectImages = async () => {\n setImageLoading(true);\n let imageSource: any = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 3],\n quality: 1,\n base64: true,\n });\n if (!imageSource.cancelled) {\n const image = 'data:image/jpeg;base64,' + imageSource?.base64;\n setImage(image);\n const file = dataURLtoFile(image, 'inputImage.jpg');\n setFiles((files) => files.concat(file));\n setImages((images) => images.concat(imageSource as ImagePicker.ImageInfo));\n }\n if (imageSource.cancelled) setLoading(false);\n };\n\n const sendPushNotification = (title: String, body: String, data: any, to: any) => {\n fetch('https://exp.host/--/api/v2/push/send/', {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Accept-Encoding': 'gzip, deflate',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n to: to,\n data: data,\n title: title,\n body: body,\n }),\n });\n };\n\n const handleSend = useCallback(\n async (message: string) => {\n // if (!(message && channelId)) {\n // return;\n // }\n\n if (!channelId) return;\n if (!message && message != ' ' && images.length == 0) return;\n\n setLoading(true);\n const { data } = await sendMsg({\n variables: {\n channelId,\n content: message,\n },\n update: (cache, { data, errors }) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n setChannelMessages((messages) => [...messages, data?.sendMessage]);\n setTotalCount((t) => t + 1);\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n const title: String = 'New Message from cdmbase';\n const body: String = message;\n const notificationData: any = {\n url: config.INBOX_MESSEGE_PATH,\n params: { channelId, hideTabBar: true },\n screen: 'DialogMessages',\n };\n if (expoTokens?.length > 0) {\n const to: any = expoTokens?.length > 0 ? expoTokens : [];\n sendPushNotification(title, body, notificationData, to);\n }\n\n setMsg('');\n },\n });\n if (images && images.length > 0 && data?.sendMessage?.id) {\n const { id: postId } = data.sendMessage;\n setLoading(true);\n const uploadResponse = await startUpload({\n file: images,\n saveUploadedFile: {\n variables: {\n postId,\n },\n },\n createUploadLink: {\n variables: {\n postId,\n },\n },\n });\n if (uploadResponse?.error) setLoading(false);\n const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];\n if (uploadResponse.data) {\n setImage('');\n setFiles([]);\n setImages([]);\n setLoading(false);\n }\n setChannelMessages((messages) =>\n messages.map((message) => {\n if (message.id === postId) {\n return {\n ...message,\n files: {\n totalCount: uploadedFiles.length,\n data: uploadedFiles,\n },\n };\n }\n return message;\n }),\n );\n }\n },\n [setChannelMessages, currentUser, channelId, images],\n );\n\n const messageList = useMemo(() => {\n let currentDate = '';\n let res: any = [];\n if (channelMessages.length) {\n orderBy(channelMessages, ['createdAt'], ['desc']).map((msg) => {\n let message: IMessageProps = {\n _id: '',\n text: '',\n createdAt: 0,\n user: {\n _id: '',\n name: '',\n avatar: '',\n },\n type: '',\n };\n const date = new Date(msg.createdAt);\n message._id = msg.id;\n message.text = msg.message;\n message.createdAt = date;\n (message.user = {\n _id: msg.author.id,\n name: msg.author.givenName + ' ' + msg.author.familyName,\n avatar: msg.author?.picture,\n }),\n (message.image = msg.files?.data[0]?.url),\n (message.sent = msg?.isDelivered),\n (message.received = msg?.isRead);\n message.type = msg?.type;\n message.propsConfiguration = msg?.propsConfiguration;\n res.push(message);\n });\n }\n return res;\n }, [channelMessages]);\n\n const renderSend = (props) => {\n return (\n <Send {...props}>\n <Box>\n <MaterialCommunityIcons\n name=\"send-circle\"\n style={{ marginBottom: 5, marginRight: 5 }}\n size={32}\n color=\"#2e64e5\"\n />\n </Box>\n </Send>\n );\n };\n\n const renderMessageText = (props) => {\n const { currentMessage } = props;\n if (currentMessage.type === 'ALERT') {\n const attachment = currentMessage?.propsConfiguration?.contents?.attachment;\n let action: string = '';\n let actionId: any = '';\n if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n action = CALL_TO_ACTION_PATH;\n actionId = attachment?.callToAction?.link.split('/').pop();\n }\n // if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n // action = 'm-reservation-detail';\n // actionId = attachment?.callToAction?.link.split('/').pop();\n // }\n return (\n <Box bg={CALL_TO_ACTION_BOX_BGCOLOR} borderRadius={15} pb={2}>\n {attachment?.callToAction ? (\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={CALL_TO_ACTION_BUTTON_BORDERCOLOR}\n onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={CALL_TO_ACTION_TEXT_COLOR}>{attachment.callToAction.title}</Text>\n </Button>\n ) : null}\n <MessageText\n {...props}\n textStyle={{ left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 } }}\n />\n </Box>\n );\n } else {\n return <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />;\n }\n };\n\n const renderActions = (props) => {\n return (\n <Actions\n {...props}\n icon={() => <Icon as={Ionicons} name={'image'} size={'lg'} color={'black'} onPress={onSelectImages} />}\n />\n );\n };\n\n const renderAccessory = (props) => {\n return (\n <Box>\n {selectedImage !== '' ? (\n <HStack alignItems={'center'}>\n <Image ml={3} key={selectedImage} alt={'image'} source={{ uri: selectedImage }} size={'xs'} />\n <Button\n variant={'ghost'}\n colorScheme={'secondary'}\n onPress={() => {\n setFiles([]);\n setImage('');\n setImages([]);\n }}\n >\n Cancel\n </Button>\n </HStack>\n ) : null}\n </Box>\n );\n };\n\n const renderMessage = (props: any) => {\n // const {\n // currentMessage: { text: currText },\n // } = props;\n\n //let messageTextStyle: any;\n\n // Make \"pure emoji\" messages much bigger than plain text.\n // if (currText && emojiUtils.isPureEmojiString(currText)) {\n // messageTextStyle = {\n // fontSize: 28,\n // // Emoji get clipped if lineHeight isn't increased; make it consistent across platforms.\n // lineHeight: Platform.OS === 'android' ? 34 : 30,\n // }\n // }\n\n // return <SlackMessage {...props} messageTextStyle={messageTextStyle} />;\n return <SlackMessage {...props} />;\n };\n\n return (\n <GiftedChat\n wrapInSafeArea={false}\n renderLoading={() => <Spinner />}\n messages={messageList}\n onSend={(messages) => {\n handleSend(messages[0]?.text ?? ' ');\n }}\n text={msg ? msg : ' '}\n onInputTextChanged={(text) => setMsg(text)}\n renderFooter={() => (loading ? <Spinner /> : imageLoading ? <Spinner /> : '')}\n scrollToBottom\n user={{\n _id: currentUser?.id || '',\n }}\n isTyping={true}\n alwaysShowSend={loading ? false : true}\n onLoadEarlier={onFetchOld}\n infiniteScroll={true}\n renderSend={renderSend}\n loadEarlier={checkForMessages?.messages?.totalCount > totalCount}\n // loadEarlier={channelMessages.length !== data?.messages?.totalCount}\n renderMessageText={renderMessageText}\n minInputToolbarHeight={50}\n renderActions={renderActions}\n renderAccessory={renderAccessory}\n renderMessage={renderMessage}\n />\n );\n}\n","import React, { useCallback, useMemo, useEffect, useState } from 'react';\nimport { FlatList, Box, Heading, Input, Text, Icon, Center } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute, useIsFocused, useFocusEffect } from '@react-navigation/native';\n\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { useGetChannelsByUserQuery } from '@messenger-box/platform-client';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';\nimport { config } from '../config';\n\nexport interface InboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n}\n\nexport const Dialogs = (props: InboxProps) => {\n const { channelFilters, channelRole } = props;\n const { params } = useRoute<any>();\n const auth = useSelector(userSelector);\n const dispatch = useDispatch();\n const navigation = useNavigation<any>();\n const isFocused = useIsFocused();\n const [userDirectChannel, setUserDirectChannel] = useState<any>([]);\n\n const {\n data: userChannels,\n loading: userChannelsLoading,\n refetch: getChannelsRefetch,\n } = useGetChannelsByUserQuery({\n variables: {\n role: channelRole,\n criteria: channelFilters,\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n getChannelsRefetch({ role: channelRole, criteria: channelFilters });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [channelFilters]),\n );\n\n useEffect(() => {\n setTimeout(() => {\n dispatch({\n type: CHANGE_SETTINGS_ACTION,\n payload: {\n footerRender: false,\n },\n } as any);\n }, 0);\n return () => {\n dispatch({\n type: CHANGE_SETTINGS_ACTION,\n payload: {\n footerRender: true,\n },\n } as any);\n };\n }, []);\n\n useEffect(() => {\n if (userChannels?.channelsByUser) {\n //Direct channel\n let userDirectChannels: any =\n userChannels?.channelsByUser\n ?.filter((i: any) => i.type == 'DIRECT')\n ?.filter((c: any) =>\n c.members.some((u: any) => u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n ) ?? [];\n\n if (userDirectChannels?.length > 0) setUserDirectChannel(userDirectChannels);\n }\n }, [userChannels?.channelsByUser]);\n\n const handleSelectChannel = useCallback((id: any, title: any) => {\n if (params?.channelId) {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: params?.channelId,\n title: params?.title ?? null,\n hideTabBar: true,\n });\n } else {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: id,\n title: title,\n hideTabBar: true,\n });\n }\n }, []);\n\n return (\n <Box p={2}>\n <FlatList\n data={userDirectChannel?.length > 0 ? userDirectChannel : []}\n onRefresh={getChannelsRefetch}\n refreshing={userChannelsLoading}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: channel }) => (\n <DialogsListItem\n onOpen={handleSelectChannel}\n currentUser={auth}\n channel={channel}\n selectedChannelId={params?.channelId}\n />\n )}\n ListEmptyComponent={() => (\n <Box p={5}>\n <Heading>Chat</Heading>\n <Input\n height={50}\n mt={3}\n placeholder=\"Search\"\n borderRadius={50}\n borderColor={'gray.200'}\n borderWidth={2}\n />\n <Center mt={6}>\n <Icon as={Ionicons} name=\"chatbubbles\" size={'xl'} />\n <Text>You don't have any messages yet!</Text>\n </Center>\n </Box>\n )}\n keyExtractor={(item, index) => 'key' + index}\n />\n </Box>\n );\n};\n","export * from './inbox/Inbox';\nexport * from './inbox/DialogMessages';","module.exports = require(\"@admin-layout/client\");","module.exports = require(\"@adminide-stack/user-auth0-client\");","module.exports = require(\"@common-stack/client-react\");","module.exports = require(\"@expo/vector-icons\");","module.exports = require(\"@messenger-box/platform-client\");","module.exports = require(\"@react-navigation/native\");","module.exports = require(\"base-64\");","module.exports = require(\"date-fns\");","module.exports = require(\"envalid\");","module.exports = require(\"expo-image-picker\");","module.exports = require(\"lodash\");","module.exports = require(\"native-base\");","module.exports = require(\"react\");","module.exports = require(\"react-native\");","module.exports = require(\"react-native-gifted-chat\");","module.exports = require(\"react-redux\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n",""],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@messenger-box/platform-mobile/./src/index.ts","webpack://@messenger-box/platform-mobile/./src/module.ts","webpack://@messenger-box/platform-mobile/./src/navigation/InboxNavigation.tsx","webpack://@messenger-box/platform-mobile/./src/navigation/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/DialogMessages.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/Inbox.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/DialogsListItem.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/config/config.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/config/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/ConversationView.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/Dialogs.tsx","webpack://@messenger-box/platform-mobile/./src/screens/index.ts","webpack://@messenger-box/platform-mobile/external commonjs \"@admin-layout/client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@adminide-stack/user-auth0-client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@common-stack/client-react\"","webpack://@messenger-box/platform-mobile/external commonjs \"@expo/vector-icons\"","webpack://@messenger-box/platform-mobile/external commonjs \"@messenger-box/platform-client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@react-navigation/native\"","webpack://@messenger-box/platform-mobile/external commonjs \"base-64\"","webpack://@messenger-box/platform-mobile/external commonjs \"date-fns\"","webpack://@messenger-box/platform-mobile/external commonjs \"envalid\"","webpack://@messenger-box/platform-mobile/external commonjs \"expo-image-picker\"","webpack://@messenger-box/platform-mobile/external commonjs \"lodash\"","webpack://@messenger-box/platform-mobile/external commonjs \"native-base\"","webpack://@messenger-box/platform-mobile/external commonjs \"react\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-native\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-native-gifted-chat\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-redux\"","webpack://@messenger-box/platform-mobile/webpack/bootstrap","webpack://@messenger-box/platform-mobile/webpack/before-startup","webpack://@messenger-box/platform-mobile/webpack/startup","webpack://@messenger-box/platform-mobile/webpack/after-startup"],"sourcesContent":["import PlatformModule from './module';\n\nimport { Feature } from '@common-stack/client-react';\n\nexport default new Feature(PlatformModule);\nexport * from './navigation';\nexport * from './screens';\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { Feature } from '@common-stack/client-react';\nimport { schema, typePolicies, dataIdFromObject } from '@messenger-box/platform-client';\n\nexport default new Feature({\n dataIdFromObject,\n clientStateParams: { typeDefs: schema, typePolicies },\n});\n","import * as React from 'react';\nimport { Feature } from '@common-stack/client-react';\nimport { DialogMessages } from '../screens/inbox/DialogMessages';\n\nconst inboxConfig = {\n ['//message']: {\n exact: true,\n name: 'Message',\n props: {\n initialParams: { channelId: null },\n component: (props: any) => <DialogMessages {...props} channelId={props?.route?.params?.channelId} />,\n options: {\n headerShown: true,\n title: 'Inbox',\n headerBackTitleVisible: false,\n gestureEnabled: false,\n swipeEnabled: false,\n },\n },\n },\n};\n\nexport const inboxFeature = new Feature({\n routeConfig: inboxConfig as any,\n});\n","export * from './InboxNavigation';\n","import * as React from 'react';\nimport { Box } from 'native-base';\nimport { ConversationView } from './containers/ConversationView';\n\nexport function DialogMessages({ channelId }) {\n return (\n <Box bg={'white'} flex={1} pt={5}>\n <ConversationView channelId={channelId} />\n </Box>\n );\n}","import * as React from 'react';\nimport { Box } from 'native-base';\n\nimport { Dialogs } from './containers/Dialogs';\n\nexport const Inbox = (props) => {\n const { channelFilters, channelRole } = props;\n return (\n <Box bg={'white'} flex={1}>\n <Dialogs channelFilters={channelFilters} channelRole={channelRole} {...props} />\n </Box>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Text, Image, Pressable, HStack, Stack, Box, Avatar, View } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { IChannel, IUserAccount, useMessagesQuery, useUserAccountQuery } from '@messenger-box/platform-client';\nimport { startCase } from 'lodash';\n\nconst createdAtText = (value: string) => {\n if (!value) return '';\n let date = new Date(value);\n if (isToday(date)) return 'Today';\n if (isYesterday(date)) return 'Yesterday';\n return format(new Date(value), 'MMM dd, yyyy');\n};\n\nexport interface IDialogListChannel extends IChannel {\n users: IUserAccount[];\n}\n\nexport interface IDialogListItemProps {\n currentUser?: any;\n users?: any;\n selectedChannelId?: any;\n channel?: any;\n onOpen: (id: any, title: any) => void;\n}\n\n/**\n * TODO:\n * - Get Reservation info: reservation date, status\n * - Add ability to get property information: name, logo\n */\nexport const DialogsListItem: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n selectedChannelId,\n channel,\n onOpen,\n}) {\n const {\n data: messagesQuery,\n loading: messageLoading,\n refetch: refetchMessages,\n } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n limit: 1,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchMessages({ channelId: channel?.id?.toString(), limit: 1 });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const lastMessage = useMemo(() => {\n if (!messagesQuery?.messages?.data?.length) {\n return null;\n }\n const { data } = messagesQuery.messages;\n return data[data.length - 1];\n }, [messagesQuery]);\n\n const channelMembers = useMemo(\n () =>\n channel?.members\n ?.filter((ch: any) => ch?.user?.id != currentUser?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null,\n [currentUser, channel],\n );\n\n const title = useMemo(\n () =>\n channelMembers\n ?.map((u: any) => u?.givenName + ' ' + u?.familyName ?? '')\n ?.filter((mu: any) => mu)\n ?.join(', ') ?? '',\n [channelMembers],\n );\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id, title)}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\n flex={1}\n _dark={{\n borderColor: 'coolGray.600',\n backgroundColor: 'gray.700',\n }}\n _web={{\n shadow: 2,\n borderWidth: 0,\n }}\n _light={{\n backgroundColor: 'gray.50',\n }}\n >\n <HStack\n // px={2}\n // pl={3}\n py={3}\n space={2}\n w={'100%'}\n flex={1}\n direction={'row'}\n justifyContent={'space-between'}\n alignItems={'center'}\n >\n <Box flex={0.1} alignItems={'flex-start'} pl={3}>\n <Avatar.Group\n _avatar={{\n size: 'sm',\n bg: 'transparent',\n }}\n >\n {channelMembers &&\n channelMembers?.length > 0 &&\n channelMembers?.slice(0, 2)?.map((ch: any, i: Number) => (\n <Avatar\n key={'key' + i}\n bg={'transparent'}\n size={9}\n top={i == 1 ? 4 : 0}\n right={i == 1 ? -2 : 0}\n zIndex={i == 1 ? 5 : 1}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: ch?.picture,\n }}\n >\n {startCase(ch?.username?.charAt(0))}\n {channelMembers?.length == 1 && (\n <Avatar.Badge bg=\"green.800\" bottom={-4} right={-4} />\n )}\n </Avatar>\n ))}\n </Avatar.Group>\n </Box>\n <Box flex={0.9}>\n <HStack space={1} flex={1} direction={'row'} justifyContent={'center'} alignItems={'center'}>\n <Box flex={0.8}>\n <Text color=\"gray.600\" fontSize=\"lg\" flexWrap={'wrap'} fontWeight=\"semibold\">\n {title}\n </Text>\n <Text color=\"gray.600\" noOfLines={1}>\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </Box>\n </HStack>\n {/* <Text\n flex={1}\n color=\"gray.600\"\n p={0}\n m={0}\n w={'100%'}\n justifyContent={''}\n fontSize=\"lg\"\n fontWeight=\"semibold\"\n >\n {title}\n </Text> */}\n {/* <Text flex={0.1} color=\"gray.600\">\n {lastMessage?.message ?? ''}\n </Text> */}\n </Box>\n {/* <Text flex={0.2} color=\"gray.500\">\n {lastMessage ? createdAtText(lastMessage?.createdAt) : ''}\n </Text> */}\n </HStack>\n </Pressable>\n );\n};\n","import React, {useState} from 'react';\nimport {Alert, Modal, StyleSheet, Text, Pressable, View,SafeAreaView,StatusBar} from 'react-native';\n\nconst ImageViewerModal = ({children,isVisible=false,setVisible}:any,modalComponent: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(!isVisible);\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'}} > \n <Pressable\n style={[styles.button, styles.buttonClose]}\n onPress={() => setVisible(!isVisible)}>\n <Text style={styles.headerTextStyle}>X</Text>\n </Pressable></View>\n </View>\n <View style={styles.centeredView}>\n {modalComponent ? modalComponent : children}\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:'#000',\n paddingTop:50,\n paddingBottom:10,\n },\n centeredView: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'white',\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: 'white',\n // fontWeight: 'bold',\n textAlign: 'center',\n fontSize:20\n },\n modalText: {\n marginBottom: 15,\n textAlign: 'center',\n },\n});\n\nexport default ImageViewerModal;","/* eslint-disable no-underscore-dangle, no-use-before-define */\nimport React from 'react';\nimport { Text, StyleSheet, TouchableOpacity, View, Platform } from 'react-native';\n\nimport { MessageText, MessageImage, Time, utils } from 'react-native-gifted-chat';\n\nconst { isSameUser, isSameDay } = utils;\n\nexport default class Bubble extends React.Component<any> {\n static defaultProps: {\n touchableProps: {};\n onLongPress: null;\n renderMessageImage: null;\n renderMessageText: null;\n renderCustomView: null;\n renderTime: null;\n currentMessage: { text: null; createdAt: null; image: null };\n nextMessage: {};\n previousMessage: {};\n containerStyle: {};\n wrapperStyle: {};\n tickStyle: {};\n containerToNextStyle: {};\n containerToPreviousStyle: {};\n isShowImageViewer:false,\n setImageViewer:(obj:any,v:boolean) => void,\n };\n static propTypes: any;\n constructor(props: any) {\n super(props);\n }\n\n renderMessageText() {\n if (this.props.currentMessage.text) {\n const { containerStyle, wrapperStyle, messageTextStyle, ...messageTextProps } = this.props;\n if (this.props.renderMessageText) {\n return this.props.renderMessageText(messageTextProps);\n }\n return (\n <MessageText\n {...messageTextProps}\n textStyle={{\n left: [\n styles.standardFont,\n styles.slackMessageText,\n messageTextProps.textStyle,\n messageTextStyle,\n ],\n }}\n />\n );\n }\n return null;\n }\n\n renderMessageImage() {\n if (this.props.currentMessage.image) {\n const { containerStyle, wrapperStyle, ...messageImageProps } = this.props;\n if (this.props.renderMessageImage) {\n return this.props.renderMessageImage(messageImageProps);\n }\n return ( <MessageImage {...messageImageProps} imageStyle={[styles.slackImage, messageImageProps.imageStyle]} />\n //<TouchableOpacity onPress={()=>this.props.setImageViewer(messageImageProps?.currentMessage,true)}><Text><MessageImage {...messageImageProps} imageStyle={[styles.slackImage, messageImageProps.imageStyle]} /></Text></TouchableOpacity>\n );\n }\n return null;\n }\n\n renderTicks() {\n const { currentMessage } = this.props;\n if (this.props.renderTicks) {\n return this.props.renderTicks(currentMessage);\n }\n if (currentMessage.user._id !== this.props.user._id) {\n return null;\n }\n if (currentMessage.sent || currentMessage.received) {\n return (\n <View style={[styles.headerItem, styles.tickView]}>\n {currentMessage.sent && (\n <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>\n )}\n {currentMessage.received && (\n <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>\n )}\n </View>\n );\n }\n return null;\n }\n\n renderUsername() {\n const username = this.props.currentMessage.user.name;\n if (username) {\n const { containerStyle, wrapperStyle, ...usernameProps } = this.props;\n if (this.props.renderUsername) {\n return this.props.renderUsername(usernameProps);\n }\n return (\n <Text style={[styles.standardFont, styles.headerItem, styles.username, this.props.usernameStyle]}>\n {username}\n </Text>\n );\n }\n return null;\n }\n\n renderTime() {\n if (this.props.currentMessage.createdAt) {\n const { containerStyle, wrapperStyle, ...timeProps }: any = this.props;\n if (this.props.renderTime) {\n return this.props.renderTime(timeProps);\n }\n return (\n <Time\n {...timeProps}\n containerStyle={{ left: [styles.timeContainer] }}\n textStyle={{\n left: [styles.standardFont, styles.headerItem, styles.time, timeProps.textStyle],\n }}\n />\n );\n }\n return null;\n }\n\n renderCustomView() {\n if (this.props.renderCustomView) {\n return this.props.renderCustomView(this.props);\n }\n return null;\n }\n\n render() {\n const isSameThread =\n isSameUser(this.props.currentMessage, this.props.previousMessage) &&\n isSameDay(this.props.currentMessage, this.props.previousMessage);\n\n const messageHeader = isSameThread ? null : (\n <View style={styles.headerView}>\n {this.renderUsername()}\n {this.renderTime()}\n {this.renderTicks()}\n </View>\n );\n\n return (\n <View style={[styles.container, this.props.containerStyle]}>\n <TouchableOpacity disabled={true} accessibilityTraits=\"text\" {...this.props.touchableProps}>\n <View style={[styles.wrapper, this.props.wrapperStyle]}>\n <View>\n {this.renderCustomView()}\n {messageHeader}\n {this.renderMessageImage()}\n {this.renderMessageText()}\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n }\n}\n\n// Note: Everything is forced to be \"left\" positioned with this component.\n// The \"right\" position is only used in the default Bubble.\nconst styles = StyleSheet.create({\n standardFont: {\n fontSize: 15,\n },\n slackMessageText: {\n marginLeft: 0,\n marginRight: 0,\n },\n container: {\n flex: 1,\n alignItems: 'flex-start',\n },\n wrapper: {\n marginRight: 60,\n minHeight: 20,\n justifyContent: 'flex-start',\n },\n username: {\n fontWeight: 'bold',\n top: 0,\n paddingTop: 0,\n marginTop: 0,\n },\n time: {\n textAlign: 'left',\n fontSize: 12,\n },\n timeContainer: {\n marginLeft: 0,\n marginRight: 0,\n marginBottom: 0,\n },\n headerItem: {\n marginRight: 10,\n },\n headerView: {\n // Try to align it better with the avatar on Android.\n marginTop: Platform.OS === 'android' ? -2 : 0,\n flexDirection: 'row',\n alignItems: 'baseline',\n },\n /* eslint-disable react-native/no-color-literals */\n tick: {\n backgroundColor: 'transparent',\n color: 'white',\n },\n /* eslint-enable react-native/no-color-literals */\n tickView: {\n flexDirection: 'row',\n },\n slackImage: {\n borderRadius: 3,\n marginLeft: 8,\n marginRight: 0,\n },\n});\n\n// Bubble.contextTypes = {\n// actionSheet: PropTypes.func,\n// };\n\nBubble.defaultProps = {\n touchableProps: {},\n onLongPress: null,\n renderMessageImage: null,\n renderMessageText: null,\n renderCustomView: null,\n renderTime: null,\n currentMessage: {\n text: null,\n createdAt: null,\n image: null,\n },\n nextMessage: {},\n previousMessage: {},\n containerStyle: {},\n wrapperStyle: {},\n tickStyle: {},\n containerToNextStyle: {},\n containerToPreviousStyle: {},\n isShowImageViewer:false,\n setImageViewer:(obj:any,v:boolean) => null,\n};\n","/* eslint-disable no-underscore-dangle, no-use-before-define */\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { View, ViewPropTypes, StyleSheet } from 'react-native';\n\nimport { Avatar, Day, utils } from 'react-native-gifted-chat';\nimport Bubble from './SlackBubble';\n\nconst { isSameUser, isSameDay } = utils;\n\nexport default class Message 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) => void,\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 renderBubble() {\n const bubbleProps = this.getInnerComponentProps();\n if (this.props.renderBubble) {\n return this.props.renderBubble(bubbleProps);\n }\n return <Bubble {...bubbleProps} isShowImageViewer={this.props.isShowImageViewer} setImageViewer={this.props.setImageViewer} />;\n }\n\n renderAvatar() {\n let extraStyle: any;\n if (\n isSameUser(this.props.currentMessage, this.props.previousMessage) &&\n isSameDay(this.props.currentMessage, this.props.previousMessage)\n ) {\n // Set the invisible avatar height to 0, but keep the width, padding, etc.\n extraStyle = { height: 0 };\n }\n\n const avatarProps: any = this.getInnerComponentProps();\n return (\n <Avatar\n {...avatarProps}\n showAvatarForEveryMessage={true}\n imageStyle={{\n left: [styles.slackAvatar, avatarProps.imageStyle, extraStyle],\n }}\n />\n );\n }\n\n render() {\n const marginBottom = isSameUser(this.props.currentMessage, this.props.nextMessage) ? 2 : 10;\n\n return (\n <View>\n {this.renderDay()}\n <View style={[styles.container, { marginBottom }, this.props.containerStyle]}>\n {this.renderAvatar()}\n {this.renderBubble()}\n </View>\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n marginLeft: 8,\n marginRight: 0,\n },\n slackAvatar: {\n // The bottom should roughly line up with the first line of message text.\n height: 40,\n width: 40,\n borderRadius: 3,\n marginTop: 0,\n },\n});\n\nMessage.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","import SlackMessage from './SlackMessage';\nimport ImageViewerModal from './ImageViewerModal';\nexport { SlackMessage ,ImageViewerModal};\n","import { cleanEnv, num, str } from 'envalid';\n\nexport const config = cleanEnv(process['APP_ENV'] || process.env, {\n MESSAGES_PER_PAGE: num({ devDefault: 10, default: 20 }),\n FILES_PER_MESSAGE: num({ default: 10 }),\n INBOX_MESSEGE_PATH: str({ default: 'MainStack.Message' }),\n CALL_TO_ACTION_PATH: str({ default: 'MainStack.MyReservationDetails' }),\n CALL_TO_ACTION_BOX_BGCOLOR: str({ default: '#0084ff' }),\n CALL_TO_ACTION_BUTTON_BORDERCOLOR: str({ default: '#fff' }),\n CALL_TO_ACTION_TEXT_COLOR: str({ default: '#fff' }),\n});\n","export { config } from './config';\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Box, Button, HStack, Icon, Image, Spinner, Text, useColorModeValue } from 'native-base';\nimport { useNavigation } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy } from 'lodash';\nimport * as ImagePicker from 'expo-image-picker';\nimport { encode as atob } from 'base-64';\nimport { Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { Actions, GiftedChat, IMessage, MessageText, Send } from 'react-native-gifted-chat';\nimport {\n useCheckForNewMessagesQuery,\n useGetAllUsersQuery,\n useMessagesQuery,\n useSendMessagesMutation,\n useViewChannelDetailQuery,\n useUploadFilesNative,\n} from '@messenger-box/platform-client';\nimport { IFileInfo } from '@messenger-box/core';\nimport { config } from '../config';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { SlackMessage,ImageViewerModal } from '../components/SlackMessageContainer';\n\nconst {\n MESSAGES_PER_PAGE,\n CALL_TO_ACTION_BOX_BGCOLOR,\n CALL_TO_ACTION_PATH,\n CALL_TO_ACTION_BUTTON_BORDERCOLOR,\n CALL_TO_ACTION_TEXT_COLOR,\n} = config;\n\ninterface IMessageProps extends IMessage {\n type: string;\n propsConfiguration?: any;\n}\n\nexport interface AlertMessageAttachmentsInterface {\n title: string;\n isTitleHtml: boolean;\n icon: string;\n callToAction: {\n title: string;\n link: string;\n };\n}\n\nexport function ConversationView({ channelId }: any) {\n const [channelToTop, setChannelToTop] = useState(0);\n const [channelMessages, setChannelMessages] = useState<any>([]);\n const auth = useSelector(userSelector);\n const [totalCount, setTotalCount] = useState<any>(0);\n const [selectedImage, setImage] = useState<string>('');\n const [loadingOldMessages, setLoadingOldMessages] = useState(false);\n const color = useColorModeValue('white', 'black');\n // const color = useColorModeValue('black', 'white');\n const navigation = useNavigation<any>();\n const [files, setFiles] = useState<File[]>([]);\n const [images, setImages] = useState<ImagePicker.ImageInfo[]>([]);\n const [msg, setMsg] = useState<string>('');\n const [loading, setLoading] = useState(false);\n const [imageLoading, setImageLoading] = useState(false);\n //const [expoTokens, setExpoTokens] = useState<any[]>([]);\n const [isShowImageViewer,setImageViewer] = useState<boolean>(false)\n const [imageObject, setImageObject] = useState<any>({});\n \n const { startUpload } = useUploadFilesNative();\n\n const [sendMsg] = useSendMessagesMutation();\n\n React.useEffect(() => {\n if (selectedImage) setImageLoading(false);\n }, [selectedImage]);\n\n const {\n data,\n loading: messageLoading,\n refetch,\n } = useMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n });\n\n const {\n data: channelsDetail,\n loading: channelLoading,\n refetch: refetchChannelDetail,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\n },\n });\n\n const expoTokens = useMemo(() => {\n if (!channelsDetail?.viewChannelDetail?.members?.length) {\n return [];\n }\n const channelData: any =\n channelsDetail?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != auth?.id) ?? [];\n const tokens: any =\n channelData\n ?.map(\n (u: any) =>\n u?.user?.tokens\n ?.filter((t: any) => t?.type == 'EXPO_NOTIFICATION_TOKEN')\n ?.map((et: any) => et?.token) ?? [],\n )\n ?.flat(1)\n ?.filter((t: any) => t) ?? [];\n return tokens;\n }, [channelsDetail?.viewChannelDetail]);\n\n const { data: users } = useGetAllUsersQuery();\n\n const currentUser = useMemo(\n () => users?.getUsers?.find(({ alias }: any) => alias?.includes(auth?.auth0UserId)),\n [users, auth],\n );\n\n const { data: checkForMessages }:any = useCheckForNewMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n },\n skip: !channelId,\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n useEffect(() => {\n if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n const { data: messages, totalCount: messeageTotalCount } = data.messages;\n if (messages && messages.length > 0 && totalCount !== messeageTotalCount) {\n setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n }\n if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n }\n }, [data, loadingOldMessages, channelMessages]);\n\n useEffect(() => {\n if (checkForMessages?.messages?.totalCount > totalCount) {\n const numberOfNewMessages = checkForMessages?.messages?.totalCount - totalCount;\n refetch({\n limit: numberOfNewMessages,\n }).then(({ data }) => {\n if (!data?.messages) {\n return;\n }\n const { data: messages, totalCount }:any = data.messages;\n setTotalCount(totalCount);\n setChannelMessages((oldMessages:any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n });\n }\n }, [checkForMessages, totalCount, refetch]);\n\n const onFetchOld = useCallback(() => { console.log('fetch old')\n // if (data?.messages?.totalCount > channelMessages.length) {\n if(channelMessages.length !== data?.messages?.totalCount){\n setLoadingOldMessages(true);\n refetch({ skip: channelMessages.length });\n }\n }, [data, channelMessages]);\n\n const isCloseToTop = ({ layoutMeasurement, contentOffset, contentSize }) => {\n return contentOffset.y <= 100; // 100px from top\n };\n\n const dataURLtoFile = (dataurl, filename) => {\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], filename, { type: mime });\n };\n\n const onSelectImages = async () => {\n setImageLoading(true);\n let imageSource: any = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 3],\n quality: 1,\n base64: true,\n });\n if (!imageSource.cancelled) {\n const image = 'data:image/jpeg;base64,' + imageSource?.base64;\n setImage(image);\n const file = dataURLtoFile(image, 'inputImage.jpg');\n setFiles((files) => files.concat(file));\n setImages((images) => images.concat(imageSource as ImagePicker.ImageInfo));\n }\n if (imageSource.cancelled) setLoading(false);\n };\n\n const sendPushNotification = (title: String, body: String, data: any, to: any) => {\n fetch('https://exp.host/--/api/v2/push/send/', {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Accept-Encoding': 'gzip, deflate',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n to: to,\n data: data,\n title: title,\n body: body,\n }),\n });\n };\n\n const handleSend = useCallback(\n async (message: string) => {\n // if (!(message && channelId)) {\n // return;\n // }\n\n if (!channelId) return;\n if (!message && message != ' ' && images.length == 0) return;\n\n setLoading(true);\n const { data } = await sendMsg({\n variables: {\n channelId,\n content: message,\n },\n update: (cache, { data, errors }) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n setChannelMessages((messages) => [...messages, data?.sendMessage]);\n setTotalCount((t) => t + 1);\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n const title: String = 'Followup Chat';\n const body: String = message;\n const notificationData: any = {\n url: config.INBOX_MESSEGE_PATH,\n params: { channelId, hideTabBar: true },\n screen: 'DialogMessages',\n };\n console.log('expo to',JSON.stringify(expoTokens));\n if (expoTokens?.length > 0) {\n const to: any = expoTokens?.length > 0 ? expoTokens : [];\n \n sendPushNotification(title, body, notificationData, to);\n }\n\n setMsg('');\n },\n });\n if (images && images.length > 0 && data?.sendMessage?.id) {\n const { id: postId } = data.sendMessage;\n setLoading(true);\n const uploadResponse = await startUpload({\n file: images,\n saveUploadedFile: {\n variables: {\n postId,\n },\n },\n createUploadLink: {\n variables: {\n postId,\n },\n },\n });\n if (uploadResponse?.error) setLoading(false);\n const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];\n if (uploadResponse.data) {\n setImage('');\n setFiles([]);\n setImages([]);\n setLoading(false);\n }\n setChannelMessages((messages) =>\n messages.map((message) => {\n if (message.id === postId) {\n return {\n ...message,\n files: {\n totalCount: uploadedFiles.length,\n data: uploadedFiles,\n },\n };\n }\n return message;\n }),\n );\n }\n },\n [setChannelMessages, currentUser, channelId, images],\n );\n\n const messageList = useMemo(() => {\n let currentDate = '';\n let res: any = [];\n if (channelMessages.length) {\n orderBy(channelMessages, ['createdAt'], ['desc']).map((msg) => {\n let message: IMessageProps = {\n _id: '',\n text: '',\n createdAt: 0,\n user: {\n _id: '',\n name: '',\n avatar: '',\n },\n type: '',\n };\n const date = new Date(msg.createdAt);\n message._id = msg.id;\n message.text = msg.message;\n message.createdAt = date;\n (message.user = {\n _id: msg.author.id,\n name: msg.author.givenName + ' ' + msg.author.familyName,\n avatar: msg.author?.picture,\n }),\n (message.image = msg.files?.data[0]?.url),\n (message.sent = msg?.isDelivered),\n (message.received = msg?.isRead);\n message.type = msg?.type;\n message.propsConfiguration = msg?.propsConfiguration;\n res.push(message);\n });\n }\n return res;\n }, [channelMessages]);\n\n const renderSend = (props) => {\n return (\n <Send {...props}>\n <Box>\n <MaterialCommunityIcons\n name=\"send-circle\"\n style={{ marginBottom: 5, marginRight: 5 }}\n size={32}\n color=\"#2e64e5\"\n />\n </Box>\n </Send>\n );\n };\n\n const renderMessageText = (props) => {\n const { currentMessage } = props;\n if (currentMessage.type === 'ALERT') {\n const attachment = currentMessage?.propsConfiguration?.contents?.attachment;\n let action: string = '';\n let actionId: any = '';\n if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n action = CALL_TO_ACTION_PATH;\n actionId = attachment?.callToAction?.link.split('/').pop();\n }\n // if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n // action = 'm-reservation-detail';\n // actionId = attachment?.callToAction?.link.split('/').pop();\n // }\n return (\n <Box bg={CALL_TO_ACTION_BOX_BGCOLOR} borderRadius={15} pb={2}>\n {attachment?.callToAction ? (\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={CALL_TO_ACTION_BUTTON_BORDERCOLOR}\n onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={CALL_TO_ACTION_TEXT_COLOR}>{attachment.callToAction.title}</Text>\n </Button>\n ) : null}\n <MessageText\n {...props}\n textStyle={{ left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 } }}\n />\n </Box>\n );\n } else {\n return <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />;\n }\n };\n\n const renderActions = (props) => {\n return (\n <Actions\n {...props}\n icon={() => <Icon as={Ionicons} name={'image'} size={'lg'} color={'black'} onPress={onSelectImages} />}\n />\n );\n };\n\n const renderAccessory = (props) => {\n return (\n <Box>\n {selectedImage !== '' ? (\n <HStack alignItems={'center'}>\n <Image ml={3} key={selectedImage} alt={'image'} source={{ uri: selectedImage }} size={'xs'} />\n <Button\n variant={'ghost'}\n colorScheme={'secondary'}\n onPress={() => {\n setFiles([]);\n setImage('');\n setImages([]);\n }}\n >\n Cancel\n </Button>\n </HStack>\n ) : null}\n </Box>\n );\n };\n\n // React.useEffect(()=>{\n // if(Object.keys(imageObject).length > 0) console.log('imageObject',imageObject)\n // },[imageObject])\n \n\n const setImageViewerObject = (obj:any,v:boolean) => {\n setImageObject(obj);\n setImageViewer(v)\n }\n\n const renderMessage = (props: any) => {\n // const {\n // currentMessage: { text: currText },\n // } = props;\n\n //let messageTextStyle: any;\n\n // Make \"pure emoji\" messages much bigger than plain text.\n // if (currText && emojiUtils.isPureEmojiString(currText)) {\n // messageTextStyle = {\n // fontSize: 28,\n // // Emoji get clipped if lineHeight isn't increased; make it consistent across platforms.\n // lineHeight: Platform.OS === 'android' ? 34 : 30,\n // }\n // }\n\n // return <SlackMessage {...props} messageTextStyle={messageTextStyle} />;\n return <SlackMessage {...props} isShowImageViewer={isShowImageViewer} setImageViewer={setImageViewerObject} />;\n };\n\n return (\n <GiftedChat\n wrapInSafeArea={false}\n renderLoading={() => <Spinner />}\n messages={messageList}\n onSend={(messages) => {\n handleSend(messages[0]?.text ?? ' ');\n }}\n text={msg ? msg : ' '}\n onInputTextChanged={(text) => setMsg(text)}\n renderFooter={() => (loading ? <Spinner /> : imageLoading ? <Spinner /> : '')}\n scrollToBottom\n user={{\n _id: currentUser?.id || '',\n }}\n isTyping={true}\n alwaysShowSend={loading ? false : true}\n onLoadEarlier={onFetchOld}\n infiniteScroll={true}\n renderSend={renderSend}\n loadEarlier={checkForMessages?.messages?.totalCount > totalCount}\n //loadEarlier={channelMessages.length !== data?.messages?.totalCount}\n renderMessageText={renderMessageText}\n minInputToolbarHeight={50}\n renderActions={renderActions}\n renderAccessory={renderAccessory}\n renderMessage={renderMessage}\n // renderChatFooter={()=>(\n // <ImageViewerModal isVisible={isShowImageViewer} setVisible={setImageViewer} />\n // )}\n lightboxProps={{underlayColor:'transparent',springConfig:{tension: 90000, friction: 90000},disabled:false}}\n />\n );\n}\n","import React, { useCallback, useMemo, useEffect, useState } from 'react';\nimport { FlatList, Box, Heading, Input, Text, Icon, Center } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute, useIsFocused, useFocusEffect } from '@react-navigation/native';\n\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { useGetChannelsByUserQuery } from '@messenger-box/platform-client';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';\nimport { config } from '../config';\n\nexport interface InboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n}\n\nexport const Dialogs = (props: InboxProps) => {\n const { channelFilters, channelRole } = props;\n const { params } = useRoute<any>();\n const auth = useSelector(userSelector);\n const dispatch = useDispatch();\n const navigation = useNavigation<any>();\n const isFocused = useIsFocused();\n const [userDirectChannel, setUserDirectChannel] = useState<any>([]);\n\n const {\n data: userChannels,\n loading: userChannelsLoading,\n refetch: getChannelsRefetch,\n } = useGetChannelsByUserQuery({\n variables: {\n role: channelRole,\n criteria: channelFilters,\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n getChannelsRefetch({ role: channelRole, criteria: channelFilters });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [channelFilters]),\n );\n\n useEffect(() => {\n setTimeout(() => {\n dispatch({\n type: CHANGE_SETTINGS_ACTION,\n payload: {\n footerRender: false,\n },\n } as any);\n }, 0);\n return () => {\n dispatch({\n type: CHANGE_SETTINGS_ACTION,\n payload: {\n footerRender: true,\n },\n } as any);\n };\n }, []);\n\n useEffect(() => {\n if (userChannels?.channelsByUser) {\n //Direct channel\n let userDirectChannels: any =\n userChannels?.channelsByUser\n ?.filter((i: any) => i.type == 'DIRECT')\n ?.filter((c: any) =>\n c.members.some((u: any) => u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n ) ?? [];\n\n if (userDirectChannels?.length > 0) setUserDirectChannel(userDirectChannels);\n }\n }, [userChannels?.channelsByUser]);\n\n const handleSelectChannel = useCallback((id: any, title: any) => {\n if (params?.channelId) {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: params?.channelId,\n title: params?.title ?? null,\n hideTabBar: true,\n });\n } else {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: id,\n title: title,\n hideTabBar: true,\n });\n }\n }, []);\n\n return (\n <Box p={2}>\n <FlatList\n data={userDirectChannel?.length > 0 ? userDirectChannel : []}\n onRefresh={getChannelsRefetch}\n refreshing={userChannelsLoading}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: channel }) => (\n <DialogsListItem\n onOpen={handleSelectChannel}\n currentUser={auth}\n channel={channel}\n selectedChannelId={params?.channelId}\n />\n )}\n ListEmptyComponent={() => (\n <Box p={5}>\n <Heading>Chat</Heading>\n <Input\n height={50}\n mt={3}\n placeholder=\"Search\"\n borderRadius={50}\n borderColor={'gray.200'}\n borderWidth={2}\n />\n <Center mt={6}>\n <Icon as={Ionicons} name=\"chatbubbles\" size={'xl'} />\n <Text>You don't have any messages yet!</Text>\n </Center>\n </Box>\n )}\n keyExtractor={(item, index) => 'key' + index}\n />\n </Box>\n );\n};\n","export * from './inbox/Inbox';\nexport * from './inbox/DialogMessages';","module.exports = require(\"@admin-layout/client\");","module.exports = require(\"@adminide-stack/user-auth0-client\");","module.exports = require(\"@common-stack/client-react\");","module.exports = require(\"@expo/vector-icons\");","module.exports = require(\"@messenger-box/platform-client\");","module.exports = require(\"@react-navigation/native\");","module.exports = require(\"base-64\");","module.exports = require(\"date-fns\");","module.exports = require(\"envalid\");","module.exports = require(\"expo-image-picker\");","module.exports = require(\"lodash\");","module.exports = require(\"native-base\");","module.exports = require(\"react\");","module.exports = require(\"react-native\");","module.exports = require(\"react-native-gifted-chat\");","module.exports = require(\"react-redux\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n",""],"names":[],"sourceRoot":""}
|
|
@@ -19,6 +19,8 @@ export default class Bubble extends React.Component<any> {
|
|
|
19
19
|
tickStyle: {};
|
|
20
20
|
containerToNextStyle: {};
|
|
21
21
|
containerToPreviousStyle: {};
|
|
22
|
+
isShowImageViewer: false;
|
|
23
|
+
setImageViewer: (obj: any, v: boolean) => void;
|
|
22
24
|
};
|
|
23
25
|
static propTypes: any;
|
|
24
26
|
constructor(props: any);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@messenger-box/platform-mobile",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.320",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@messenger-box/core": "0.0.1-alpha.316",
|
|
23
|
-
"@messenger-box/platform-client": "0.0.1-alpha.
|
|
23
|
+
"@messenger-box/platform-client": "0.0.1-alpha.318",
|
|
24
24
|
"base-64": "1.0.0",
|
|
25
25
|
"react-native-gifted-chat": "1.0.4"
|
|
26
26
|
},
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"typescript": {
|
|
41
41
|
"definition": "lib/index.d.ts"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "051089840f13edad1a86df047882db026dde4e8e"
|
|
44
44
|
}
|
|
@@ -0,0 +1,95 @@
|
|
|
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}:any,modalComponent: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(!isVisible);
|
|
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'}} >
|
|
21
|
+
<Pressable
|
|
22
|
+
style={[styles.button, styles.buttonClose]}
|
|
23
|
+
onPress={() => setVisible(!isVisible)}>
|
|
24
|
+
<Text style={styles.headerTextStyle}>X</Text>
|
|
25
|
+
</Pressable></View>
|
|
26
|
+
</View>
|
|
27
|
+
<View style={styles.centeredView}>
|
|
28
|
+
{modalComponent ? modalComponent : children}
|
|
29
|
+
</View>
|
|
30
|
+
</View>
|
|
31
|
+
</Modal>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const styles = StyleSheet.create({
|
|
36
|
+
container:{
|
|
37
|
+
flex:1,
|
|
38
|
+
},
|
|
39
|
+
headerView:{
|
|
40
|
+
width:'100%',
|
|
41
|
+
alignItems: 'center',
|
|
42
|
+
justifyContent:'space-between',
|
|
43
|
+
backgroundColor:'#000',
|
|
44
|
+
paddingTop:50,
|
|
45
|
+
paddingBottom:10,
|
|
46
|
+
},
|
|
47
|
+
centeredView: {
|
|
48
|
+
flex: 1,
|
|
49
|
+
justifyContent: 'center',
|
|
50
|
+
alignItems: 'center',
|
|
51
|
+
backgroundColor: 'white',
|
|
52
|
+
},
|
|
53
|
+
modalView: {
|
|
54
|
+
flex:1,
|
|
55
|
+
backgroundColor: 'white',
|
|
56
|
+
borderRadius: 20,
|
|
57
|
+
alignItems: 'center',
|
|
58
|
+
shadowColor: '#000',
|
|
59
|
+
shadowOffset: {
|
|
60
|
+
width: 0,
|
|
61
|
+
height: 2,
|
|
62
|
+
},
|
|
63
|
+
shadowOpacity: 0.25,
|
|
64
|
+
shadowRadius: 4,
|
|
65
|
+
elevation: 5,
|
|
66
|
+
},
|
|
67
|
+
button: {
|
|
68
|
+
borderRadius: 20,
|
|
69
|
+
padding: 10,
|
|
70
|
+
elevation: 2,
|
|
71
|
+
},
|
|
72
|
+
buttonOpen: {
|
|
73
|
+
backgroundColor: '#F194FF',
|
|
74
|
+
},
|
|
75
|
+
buttonClose: {
|
|
76
|
+
backgroundColor: 'transparent',
|
|
77
|
+
},
|
|
78
|
+
textStyle: {
|
|
79
|
+
color: 'white',
|
|
80
|
+
fontWeight: 'bold',
|
|
81
|
+
textAlign: 'center',
|
|
82
|
+
},
|
|
83
|
+
headerTextStyle:{
|
|
84
|
+
color: 'white',
|
|
85
|
+
// fontWeight: 'bold',
|
|
86
|
+
textAlign: 'center',
|
|
87
|
+
fontSize:20
|
|
88
|
+
},
|
|
89
|
+
modalText: {
|
|
90
|
+
marginBottom: 15,
|
|
91
|
+
textAlign: 'center',
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
export default ImageViewerModal;
|
|
@@ -22,6 +22,8 @@ export default class Bubble extends React.Component<any> {
|
|
|
22
22
|
tickStyle: {};
|
|
23
23
|
containerToNextStyle: {};
|
|
24
24
|
containerToPreviousStyle: {};
|
|
25
|
+
isShowImageViewer:false,
|
|
26
|
+
setImageViewer:(obj:any,v:boolean) => void,
|
|
25
27
|
};
|
|
26
28
|
static propTypes: any;
|
|
27
29
|
constructor(props: any) {
|
|
@@ -57,8 +59,8 @@ export default class Bubble extends React.Component<any> {
|
|
|
57
59
|
if (this.props.renderMessageImage) {
|
|
58
60
|
return this.props.renderMessageImage(messageImageProps);
|
|
59
61
|
}
|
|
60
|
-
return (
|
|
61
|
-
|
|
62
|
+
return ( <MessageImage {...messageImageProps} imageStyle={[styles.slackImage, messageImageProps.imageStyle]} />
|
|
63
|
+
//<TouchableOpacity onPress={()=>this.props.setImageViewer(messageImageProps?.currentMessage,true)}><Text><MessageImage {...messageImageProps} imageStyle={[styles.slackImage, messageImageProps.imageStyle]} /></Text></TouchableOpacity>
|
|
62
64
|
);
|
|
63
65
|
}
|
|
64
66
|
return null;
|
|
@@ -241,4 +243,6 @@ Bubble.defaultProps = {
|
|
|
241
243
|
tickStyle: {},
|
|
242
244
|
containerToNextStyle: {},
|
|
243
245
|
containerToPreviousStyle: {},
|
|
246
|
+
isShowImageViewer:false,
|
|
247
|
+
setImageViewer:(obj:any,v:boolean) => null,
|
|
244
248
|
};
|
|
@@ -19,6 +19,8 @@ export default class Message extends React.Component<any> {
|
|
|
19
19
|
previousMessage: {};
|
|
20
20
|
user: {};
|
|
21
21
|
containerStyle: {};
|
|
22
|
+
isShowImageViewer:false,
|
|
23
|
+
setImageViewer:(obj:any,v:boolean) => void,
|
|
22
24
|
};
|
|
23
25
|
getInnerComponentProps() {
|
|
24
26
|
const { containerStyle, ...props } = this.props;
|
|
@@ -46,7 +48,7 @@ export default class Message extends React.Component<any> {
|
|
|
46
48
|
if (this.props.renderBubble) {
|
|
47
49
|
return this.props.renderBubble(bubbleProps);
|
|
48
50
|
}
|
|
49
|
-
return <Bubble {...bubbleProps} />;
|
|
51
|
+
return <Bubble {...bubbleProps} isShowImageViewer={this.props.isShowImageViewer} setImageViewer={this.props.setImageViewer} />;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
renderAvatar() {
|
|
@@ -112,4 +114,6 @@ Message.defaultProps = {
|
|
|
112
114
|
previousMessage: {},
|
|
113
115
|
user: {},
|
|
114
116
|
containerStyle: {},
|
|
117
|
+
isShowImageViewer:false,
|
|
118
|
+
setImageViewer:(obj:any,v:boolean) => null,
|
|
115
119
|
};
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
import { IFileInfo } from '@messenger-box/core';
|
|
19
19
|
import { config } from '../config';
|
|
20
20
|
import { userSelector } from '@adminide-stack/user-auth0-client';
|
|
21
|
-
import { SlackMessage } from '../components/SlackMessageContainer';
|
|
21
|
+
import { SlackMessage,ImageViewerModal } from '../components/SlackMessageContainer';
|
|
22
22
|
|
|
23
23
|
const {
|
|
24
24
|
MESSAGES_PER_PAGE,
|
|
@@ -58,8 +58,10 @@ export function ConversationView({ channelId }: any) {
|
|
|
58
58
|
const [msg, setMsg] = useState<string>('');
|
|
59
59
|
const [loading, setLoading] = useState(false);
|
|
60
60
|
const [imageLoading, setImageLoading] = useState(false);
|
|
61
|
-
const [expoTokens, setExpoTokens] = useState<any[]>([]);
|
|
62
|
-
|
|
61
|
+
//const [expoTokens, setExpoTokens] = useState<any[]>([]);
|
|
62
|
+
const [isShowImageViewer,setImageViewer] = useState<boolean>(false)
|
|
63
|
+
const [imageObject, setImageObject] = useState<any>({});
|
|
64
|
+
|
|
63
65
|
const { startUpload } = useUploadFilesNative();
|
|
64
66
|
|
|
65
67
|
const [sendMsg] = useSendMessagesMutation();
|
|
@@ -89,9 +91,14 @@ export function ConversationView({ channelId }: any) {
|
|
|
89
91
|
variables: {
|
|
90
92
|
id: channelId?.toString(),
|
|
91
93
|
},
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
const expoTokens = useMemo(() => {
|
|
97
|
+
if (!channelsDetail?.viewChannelDetail?.members?.length) {
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
const channelData: any =
|
|
101
|
+
channelsDetail?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != auth?.id) ?? [];
|
|
95
102
|
const tokens: any =
|
|
96
103
|
channelData
|
|
97
104
|
?.map(
|
|
@@ -102,9 +109,8 @@ export function ConversationView({ channelId }: any) {
|
|
|
102
109
|
)
|
|
103
110
|
?.flat(1)
|
|
104
111
|
?.filter((t: any) => t) ?? [];
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
});
|
|
112
|
+
return tokens;
|
|
113
|
+
}, [channelsDetail?.viewChannelDetail]);
|
|
108
114
|
|
|
109
115
|
const { data: users } = useGetAllUsersQuery();
|
|
110
116
|
|
|
@@ -113,7 +119,7 @@ export function ConversationView({ channelId }: any) {
|
|
|
113
119
|
[users, auth],
|
|
114
120
|
);
|
|
115
121
|
|
|
116
|
-
const { data: checkForMessages } = useCheckForNewMessagesQuery({
|
|
122
|
+
const { data: checkForMessages }:any = useCheckForNewMessagesQuery({
|
|
117
123
|
variables: {
|
|
118
124
|
channelId: channelId?.toString(),
|
|
119
125
|
},
|
|
@@ -141,15 +147,16 @@ export function ConversationView({ channelId }: any) {
|
|
|
141
147
|
if (!data?.messages) {
|
|
142
148
|
return;
|
|
143
149
|
}
|
|
144
|
-
const { data: messages, totalCount } = data.messages;
|
|
150
|
+
const { data: messages, totalCount }:any = data.messages;
|
|
145
151
|
setTotalCount(totalCount);
|
|
146
|
-
setChannelMessages((oldMessages) => uniqBy([...oldMessages, ...messages], ({ id }) => id));
|
|
152
|
+
setChannelMessages((oldMessages:any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));
|
|
147
153
|
});
|
|
148
154
|
}
|
|
149
155
|
}, [checkForMessages, totalCount, refetch]);
|
|
150
156
|
|
|
151
|
-
const onFetchOld = useCallback(() => {
|
|
152
|
-
|
|
157
|
+
const onFetchOld = useCallback(() => { console.log('fetch old')
|
|
158
|
+
// if (data?.messages?.totalCount > channelMessages.length) {
|
|
159
|
+
if(channelMessages.length !== data?.messages?.totalCount){
|
|
153
160
|
setLoadingOldMessages(true);
|
|
154
161
|
refetch({ skip: channelMessages.length });
|
|
155
162
|
}
|
|
@@ -231,15 +238,17 @@ export function ConversationView({ channelId }: any) {
|
|
|
231
238
|
setTotalCount((t) => t + 1);
|
|
232
239
|
setChannelToTop(channelToTop + 1);
|
|
233
240
|
setLoading(false);
|
|
234
|
-
const title: String = '
|
|
241
|
+
const title: String = 'Followup Chat';
|
|
235
242
|
const body: String = message;
|
|
236
243
|
const notificationData: any = {
|
|
237
244
|
url: config.INBOX_MESSEGE_PATH,
|
|
238
245
|
params: { channelId, hideTabBar: true },
|
|
239
246
|
screen: 'DialogMessages',
|
|
240
247
|
};
|
|
248
|
+
console.log('expo to',JSON.stringify(expoTokens));
|
|
241
249
|
if (expoTokens?.length > 0) {
|
|
242
250
|
const to: any = expoTokens?.length > 0 ? expoTokens : [];
|
|
251
|
+
|
|
243
252
|
sendPushNotification(title, body, notificationData, to);
|
|
244
253
|
}
|
|
245
254
|
|
|
@@ -409,6 +418,16 @@ export function ConversationView({ channelId }: any) {
|
|
|
409
418
|
);
|
|
410
419
|
};
|
|
411
420
|
|
|
421
|
+
// React.useEffect(()=>{
|
|
422
|
+
// if(Object.keys(imageObject).length > 0) console.log('imageObject',imageObject)
|
|
423
|
+
// },[imageObject])
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
const setImageViewerObject = (obj:any,v:boolean) => {
|
|
427
|
+
setImageObject(obj);
|
|
428
|
+
setImageViewer(v)
|
|
429
|
+
}
|
|
430
|
+
|
|
412
431
|
const renderMessage = (props: any) => {
|
|
413
432
|
// const {
|
|
414
433
|
// currentMessage: { text: currText },
|
|
@@ -426,7 +445,7 @@ export function ConversationView({ channelId }: any) {
|
|
|
426
445
|
// }
|
|
427
446
|
|
|
428
447
|
// return <SlackMessage {...props} messageTextStyle={messageTextStyle} />;
|
|
429
|
-
return <SlackMessage {...props} />;
|
|
448
|
+
return <SlackMessage {...props} isShowImageViewer={isShowImageViewer} setImageViewer={setImageViewerObject} />;
|
|
430
449
|
};
|
|
431
450
|
|
|
432
451
|
return (
|
|
@@ -450,12 +469,16 @@ export function ConversationView({ channelId }: any) {
|
|
|
450
469
|
infiniteScroll={true}
|
|
451
470
|
renderSend={renderSend}
|
|
452
471
|
loadEarlier={checkForMessages?.messages?.totalCount > totalCount}
|
|
453
|
-
|
|
472
|
+
//loadEarlier={channelMessages.length !== data?.messages?.totalCount}
|
|
454
473
|
renderMessageText={renderMessageText}
|
|
455
474
|
minInputToolbarHeight={50}
|
|
456
475
|
renderActions={renderActions}
|
|
457
476
|
renderAccessory={renderAccessory}
|
|
458
477
|
renderMessage={renderMessage}
|
|
478
|
+
// renderChatFooter={()=>(
|
|
479
|
+
// <ImageViewerModal isVisible={isShowImageViewer} setVisible={setImageViewer} />
|
|
480
|
+
// )}
|
|
481
|
+
lightboxProps={{underlayColor:'transparent',springConfig:{tension: 90000, friction: 90000},disabled:false}}
|
|
459
482
|
/>
|
|
460
483
|
);
|
|
461
484
|
}
|