@messenger-box/platform-mobile 0.0.1-alpha.296 → 0.0.1-alpha.306
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 +87 -23
- package/lib/index.js.map +1 -1
- package/lib/screens/inbox/config/config.d.ts +1 -0
- package/package.json +4 -4
- package/src/navigation/InboxNavigation.tsx +7 -2
- package/src/screens/inbox/config/config.ts +3 -2
- package/src/screens/inbox/containers/ConversationView.tsx +82 -43
- package/src/screens/inbox/containers/Dialogs.tsx +25 -14
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.306](https://github.com/CDEBase/messenger-box/compare/v0.0.1-alpha.305...v0.0.1-alpha.306) (2023-03-24)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @messenger-box/platform-mobile
|
|
9
|
+
|
|
10
|
+
## [0.0.1-alpha.302](https://github.com/CDEBase/messenger-box/compare/v0.0.1-alpha.301...v0.0.1-alpha.302) (2023-03-23)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @messenger-box/platform-mobile
|
|
13
|
+
|
|
6
14
|
## [0.0.1-alpha.296](https://github.com/CDEBase/messenger-box/compare/v0.0.1-alpha.295...v0.0.1-alpha.296) (2023-03-23)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @messenger-box/platform-mobile
|
package/lib/index.js
CHANGED
|
@@ -59,11 +59,35 @@ exports["default"] = new client_react_1.Feature({
|
|
|
59
59
|
/*!********************************************!*\
|
|
60
60
|
!*** ./src/navigation/InboxNavigation.tsx ***!
|
|
61
61
|
\********************************************/
|
|
62
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__)
|
|
62
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
63
63
|
|
|
64
64
|
|
|
65
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
66
|
+
if (k2 === undefined) k2 = k;
|
|
67
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
68
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
69
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
70
|
+
}
|
|
71
|
+
Object.defineProperty(o, k2, desc);
|
|
72
|
+
}) : (function(o, m, k, k2) {
|
|
73
|
+
if (k2 === undefined) k2 = k;
|
|
74
|
+
o[k2] = m[k];
|
|
75
|
+
}));
|
|
76
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
77
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
78
|
+
}) : function(o, v) {
|
|
79
|
+
o["default"] = v;
|
|
80
|
+
});
|
|
81
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
82
|
+
if (mod && mod.__esModule) return mod;
|
|
83
|
+
var result = {};
|
|
84
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
85
|
+
__setModuleDefault(result, mod);
|
|
86
|
+
return result;
|
|
87
|
+
};
|
|
65
88
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
66
89
|
exports.inboxFeature = void 0;
|
|
90
|
+
const React = __importStar(__webpack_require__(/*! react */ "react"));
|
|
67
91
|
const client_react_1 = __webpack_require__(/*! @common-stack/client-react */ "@common-stack/client-react");
|
|
68
92
|
const DialogMessages_1 = __webpack_require__(/*! ../screens/inbox/DialogMessages */ "./src/screens/inbox/DialogMessages.tsx");
|
|
69
93
|
const inboxConfig = {
|
|
@@ -72,9 +96,13 @@ const inboxConfig = {
|
|
|
72
96
|
name: 'Message',
|
|
73
97
|
props: {
|
|
74
98
|
initialParams: { channelId: null },
|
|
75
|
-
component: DialogMessages_1.DialogMessages,
|
|
99
|
+
component: (props) => { var _a, _b; return React.createElement(DialogMessages_1.DialogMessages, Object.assign({}, props, { channelId: (_b = (_a = props === null || props === void 0 ? void 0 : props.route) === null || _a === void 0 ? void 0 : _a.params) === null || _b === void 0 ? void 0 : _b.channelId })); },
|
|
76
100
|
options: {
|
|
77
|
-
headerShown:
|
|
101
|
+
headerShown: true,
|
|
102
|
+
title: 'Inbox',
|
|
103
|
+
headerBackTitleVisible: false,
|
|
104
|
+
gestureEnabled: false,
|
|
105
|
+
swipeEnabled: false,
|
|
78
106
|
},
|
|
79
107
|
},
|
|
80
108
|
},
|
|
@@ -329,9 +357,10 @@ exports.DialogsListItem = DialogsListItem;
|
|
|
329
357
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
330
358
|
exports.config = void 0;
|
|
331
359
|
const envalid_1 = __webpack_require__(/*! envalid */ "envalid");
|
|
332
|
-
exports.config = (0, envalid_1.cleanEnv)(process.env, {
|
|
360
|
+
exports.config = (0, envalid_1.cleanEnv)(process['APP_ENV'] || process.env, {
|
|
333
361
|
MESSAGES_PER_PAGE: (0, envalid_1.num)({ devDefault: 10, default: 20 }),
|
|
334
362
|
FILES_PER_MESSAGE: (0, envalid_1.num)({ default: 10 }),
|
|
363
|
+
INBOX_MESSEGE_PATH: (0, envalid_1.str)({ default: 'MainStack.Message' }),
|
|
335
364
|
});
|
|
336
365
|
|
|
337
366
|
|
|
@@ -411,8 +440,14 @@ function ConversationView({ channelId }) {
|
|
|
411
440
|
const [images, setImages] = (0, react_1.useState)([]);
|
|
412
441
|
const [msg, setMsg] = (0, react_1.useState)('');
|
|
413
442
|
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
443
|
+
const [imageLoading, setImageLoading] = (0, react_1.useState)(false);
|
|
444
|
+
const [expoTokens, setExpoTokens] = (0, react_1.useState)([]);
|
|
414
445
|
const { startUpload } = (0, platform_client_1.useUploadFiles)();
|
|
415
446
|
const [sendMsg] = (0, platform_client_1.useSendMessagesMutation)();
|
|
447
|
+
react_1.default.useEffect(() => {
|
|
448
|
+
if (selectedImage)
|
|
449
|
+
setImageLoading(false);
|
|
450
|
+
}, [selectedImage]);
|
|
416
451
|
const { data, loading: messageLoading, refetch, } = (0, platform_client_1.useMessagesQuery)({
|
|
417
452
|
variables: {
|
|
418
453
|
channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
|
|
@@ -421,6 +456,20 @@ function ConversationView({ channelId }) {
|
|
|
421
456
|
skip: !channelId,
|
|
422
457
|
fetchPolicy: 'cache-and-network',
|
|
423
458
|
});
|
|
459
|
+
const { data: channelsDetail, loading: channelLoading, refetch: refetchChannelDetail, } = (0, platform_client_1.useViewChannelDetailQuery)({
|
|
460
|
+
variables: {
|
|
461
|
+
id: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
|
|
462
|
+
},
|
|
463
|
+
onCompleted: (data) => {
|
|
464
|
+
var _a, _b, _c, _d, _e, _f;
|
|
465
|
+
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 : [];
|
|
466
|
+
const tokens = (_f = (_e = (_d = channelData === null || channelData === void 0 ? void 0 : channelData.map((u) => {
|
|
467
|
+
var _a, _b, _c, _d;
|
|
468
|
+
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 : [];
|
|
469
|
+
})) === null || _d === void 0 ? void 0 : _d.flat(1)) === null || _e === void 0 ? void 0 : _e.filter((t) => t)) !== null && _f !== void 0 ? _f : [];
|
|
470
|
+
setExpoTokens(tokens);
|
|
471
|
+
},
|
|
472
|
+
});
|
|
424
473
|
const { data: users } = (0, platform_client_1.useGetAllUsersQuery)();
|
|
425
474
|
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]);
|
|
426
475
|
const { data: checkForMessages } = (0, platform_client_1.useCheckForNewMessagesQuery)({
|
|
@@ -454,10 +503,7 @@ function ConversationView({ channelId }) {
|
|
|
454
503
|
}
|
|
455
504
|
const { data: messages, totalCount } = data.messages;
|
|
456
505
|
setTotalCount(totalCount);
|
|
457
|
-
setChannelMessages((oldMessages) => (0, lodash_1.uniqBy)([
|
|
458
|
-
...oldMessages,
|
|
459
|
-
...messages
|
|
460
|
-
], ({ id }) => id));
|
|
506
|
+
setChannelMessages((oldMessages) => (0, lodash_1.uniqBy)([...oldMessages, ...messages], ({ id }) => id));
|
|
461
507
|
});
|
|
462
508
|
}
|
|
463
509
|
}, [checkForMessages, totalCount, refetch]);
|
|
@@ -479,6 +525,7 @@ function ConversationView({ channelId }) {
|
|
|
479
525
|
return new File([u8arr], filename, { type: mime });
|
|
480
526
|
};
|
|
481
527
|
const onSelectImages = async () => {
|
|
528
|
+
setImageLoading(true);
|
|
482
529
|
let imageSource = await ImagePicker.launchImageLibraryAsync({
|
|
483
530
|
mediaTypes: ImagePicker.MediaTypeOptions.Images,
|
|
484
531
|
allowsEditing: true,
|
|
@@ -493,14 +540,16 @@ function ConversationView({ channelId }) {
|
|
|
493
540
|
setFiles((files) => files.concat(file));
|
|
494
541
|
setImages((images) => images.concat(imageSource));
|
|
495
542
|
}
|
|
543
|
+
if (imageSource.cancelled)
|
|
544
|
+
setLoading(false);
|
|
496
545
|
};
|
|
497
546
|
const sendPushNotification = (title, body, data, to) => {
|
|
498
|
-
fetch(
|
|
499
|
-
method:
|
|
547
|
+
fetch('https://exp.host/--/api/v2/push/send/', {
|
|
548
|
+
method: 'POST',
|
|
500
549
|
headers: {
|
|
501
|
-
Accept:
|
|
502
|
-
|
|
503
|
-
|
|
550
|
+
Accept: 'application/json',
|
|
551
|
+
'Accept-Encoding': 'gzip, deflate',
|
|
552
|
+
'Content-Type': 'application/json',
|
|
504
553
|
},
|
|
505
554
|
body: JSON.stringify({
|
|
506
555
|
to: to,
|
|
@@ -515,9 +564,9 @@ function ConversationView({ channelId }) {
|
|
|
515
564
|
// return;
|
|
516
565
|
// }
|
|
517
566
|
var _a;
|
|
518
|
-
if (!
|
|
567
|
+
if (!channelId)
|
|
519
568
|
return;
|
|
520
|
-
if (!
|
|
569
|
+
if (!message && message != ' ' && images.length == 0)
|
|
521
570
|
return;
|
|
522
571
|
setLoading(true);
|
|
523
572
|
const { data } = await sendMsg({
|
|
@@ -536,9 +585,15 @@ function ConversationView({ channelId }) {
|
|
|
536
585
|
setLoading(false);
|
|
537
586
|
const title = 'New Message from cdmbase';
|
|
538
587
|
const body = message;
|
|
539
|
-
const notificationData = {
|
|
540
|
-
|
|
541
|
-
|
|
588
|
+
const notificationData = {
|
|
589
|
+
url: config_1.config.INBOX_MESSEGE_PATH,
|
|
590
|
+
params: { channelId, hideTabBar: true },
|
|
591
|
+
screen: 'DialogMessages',
|
|
592
|
+
};
|
|
593
|
+
if ((expoTokens === null || expoTokens === void 0 ? void 0 : expoTokens.length) > 0) {
|
|
594
|
+
const to = (expoTokens === null || expoTokens === void 0 ? void 0 : expoTokens.length) > 0 ? expoTokens : [];
|
|
595
|
+
sendPushNotification(title, body, notificationData, to);
|
|
596
|
+
}
|
|
542
597
|
setMsg('');
|
|
543
598
|
},
|
|
544
599
|
});
|
|
@@ -562,9 +617,9 @@ function ConversationView({ channelId }) {
|
|
|
562
617
|
setLoading(false);
|
|
563
618
|
const uploadedFiles = uploadResponse.data;
|
|
564
619
|
if (uploadResponse.data) {
|
|
620
|
+
setImage('');
|
|
565
621
|
setFiles([]);
|
|
566
622
|
setImages([]);
|
|
567
|
-
setImage('');
|
|
568
623
|
setLoading(false);
|
|
569
624
|
}
|
|
570
625
|
setChannelMessages((messages) => messages.map((message) => {
|
|
@@ -654,7 +709,7 @@ function ConversationView({ channelId }) {
|
|
|
654
709
|
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) => {
|
|
655
710
|
var _a, _b;
|
|
656
711
|
handleSend((_b = (_a = messages[0]) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : ' ');
|
|
657
|
-
}, text: msg ? msg : ' ', onInputTextChanged: (text) => setMsg(text), renderFooter: () => loading ? react_1.default.createElement(native_base_1.Spinner, null) : '', scrollToBottom: true, user: {
|
|
712
|
+
}, 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: {
|
|
658
713
|
_id: (currentUser === null || currentUser === void 0 ? void 0 : currentUser.id) || '',
|
|
659
714
|
}, isTyping: true, alwaysShowSend: loading ? false : true, onLoadEarlier: onFetchOld, infiniteScroll: true, renderSend: renderSend, loadEarlier: channelMessages.length !== ((_a = data === null || data === void 0 ? void 0 : data.messages) === null || _a === void 0 ? void 0 : _a.totalCount), renderMessageText: renderMessageText, minInputToolbarHeight: 50, renderActions: renderActions, renderAccessory: renderAccessory }));
|
|
660
715
|
}
|
|
@@ -704,6 +759,7 @@ const DialogsListItem_1 = __webpack_require__(/*! ../components/DialogsListItem
|
|
|
704
759
|
const platform_client_1 = __webpack_require__(/*! @messenger-box/platform-client */ "@messenger-box/platform-client");
|
|
705
760
|
const user_auth0_client_1 = __webpack_require__(/*! @adminide-stack/user-auth0-client */ "@adminide-stack/user-auth0-client");
|
|
706
761
|
const client_1 = __webpack_require__(/*! @admin-layout/client */ "@admin-layout/client");
|
|
762
|
+
const config_1 = __webpack_require__(/*! ../config */ "./src/screens/inbox/config/index.ts");
|
|
707
763
|
function Dialogs(props) {
|
|
708
764
|
var _a;
|
|
709
765
|
const { channelFilters, channelRole } = props;
|
|
@@ -754,16 +810,24 @@ function Dialogs(props) {
|
|
|
754
810
|
const handleSelectChannel = (0, react_1.useCallback)((id, title) => {
|
|
755
811
|
var _a;
|
|
756
812
|
if (params === null || params === void 0 ? void 0 : params.channelId) {
|
|
757
|
-
navigation.navigate(
|
|
813
|
+
navigation.navigate(config_1.config.INBOX_MESSEGE_PATH, {
|
|
814
|
+
channelId: params === null || params === void 0 ? void 0 : params.channelId,
|
|
815
|
+
title: (_a = params === null || params === void 0 ? void 0 : params.title) !== null && _a !== void 0 ? _a : null,
|
|
816
|
+
hideTabBar: true,
|
|
817
|
+
});
|
|
758
818
|
}
|
|
759
819
|
else {
|
|
760
|
-
navigation.navigate(
|
|
820
|
+
navigation.navigate(config_1.config.INBOX_MESSEGE_PATH, {
|
|
821
|
+
channelId: id,
|
|
822
|
+
title: title,
|
|
823
|
+
hideTabBar: true,
|
|
824
|
+
});
|
|
761
825
|
}
|
|
762
826
|
}, []);
|
|
763
827
|
//let cuc = userChannels?.channelsByUser?.filter((i:any)=>i.type=='DIRECT')?.map((k:any) => k?.members?.filter((e:any) => e?.user?.id != currentUser?.id))??[];
|
|
764
828
|
let cuc = (_a = userDirectChannel === null || userDirectChannel === void 0 ? void 0 : userDirectChannel.map((k) => { var _a; return (_a = k === null || k === void 0 ? void 0 : k.members) === null || _a === void 0 ? void 0 : _a.filter((e) => { var _a; return ((_a = e === null || e === void 0 ? void 0 : e.user) === null || _a === void 0 ? void 0 : _a.id) != (currentUser === null || currentUser === void 0 ? void 0 : currentUser.id); }); })) !== null && _a !== void 0 ? _a : [];
|
|
765
829
|
cuc = cuc.filter((e) => e.length);
|
|
766
|
-
return (react_1.default.createElement(native_base_1.Box, { p: 2 }, !userDirectChannel || (userDirectChannel === null || userDirectChannel === void 0 ? void 0 : userDirectChannel.length) == 0 || cuc && cuc.length == 0 ? (react_1.default.createElement(native_base_1.Box, { p: 5 },
|
|
830
|
+
return (react_1.default.createElement(native_base_1.Box, { p: 2 }, !userDirectChannel || (userDirectChannel === null || userDirectChannel === void 0 ? void 0 : userDirectChannel.length) == 0 || (cuc && cuc.length == 0) ? (react_1.default.createElement(native_base_1.Box, { p: 5 },
|
|
767
831
|
react_1.default.createElement(native_base_1.Heading, null, "Chat"),
|
|
768
832
|
react_1.default.createElement(native_base_1.Input, { height: 50, mt: 3, placeholder: "Search", borderRadius: 50, borderColor: 'gray.200', borderWidth: 2 }),
|
|
769
833
|
react_1.default.createElement(native_base_1.Center, { mt: 6 },
|
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/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-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 { 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: DialogMessages,\n options: {\n headerShown: 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, Box, Avatar } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\n\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 { data: messagesQuery, loading: messageLoading } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n limit: 1,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const chatUser = useMemo(\n () =>\n users?.find(({ id }) => {\n const isNotCurrentUser = id !== currentUser?.id;\n if (isNotCurrentUser) {\n return channel?.members?.find(({ user }: any) => user.id === id);\n }\n //return id\n return isNotCurrentUser;\n }),\n [users, currentUser, channel],\n );\n\n const { data: userQuery }:any = useUserAccountQuery({\n variables: {\n userId: chatUser?.id,\n },\n skip: !chatUser?.id,\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 channelType = useMemo(() => {\n return channel?.type;\n }, [channel]);\n\n const title = userQuery?.getUserAccount.givenName+' '+ userQuery?.getUserAccount.familyName;\n if(!chatUser) return <></>\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id,title)}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\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 m={3} space={2} flex={1} alignItems={'center'}>\n <Avatar\n size={'lg'}\n // size={'sm'} \n bg={'transparent'} \n _image={{style:{width:40,height:40,borderRadius:6}}}\n source={{\n uri: userQuery?.getUserAccount.picture,\n }}\n >\n {startCase(userQuery?.getUserAccount.username.charAt(0))}\n </Avatar>\n <Box width={'80%'}>\n <HStack alignItems=\"center\" justifyContent=\"space-between\">\n <Text color=\"gray.600\" fontSize=\"lg\" fontWeight=\"semibold\">\n {chatUser?.givenName??''}{' '}{chatUser?.familyName??''}\n </Text>\n {/* <Text fontSize=\"xs\" color=\"red.500\">\n {channelType}\n </Text> */}\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </HStack>\n {/* <Text color=\"gray.600\" fontSize=\"lg\" fontWeight=\"semibold\">\n {chatUser?.givenName + ' ' + chatUser?.familyName}\n </Text> */}\n <Text color=\"gray.600\">{lastMessage?.message??''}</Text>\n </Box>\n </HStack>\n </Pressable>\n );\n};\n","import { cleanEnv, num } from 'envalid';\n\nexport const config = cleanEnv(process.env, {\n MESSAGES_PER_PAGE: num({ devDefault: 10, default: 20 }),\n FILES_PER_MESSAGE: num({ default: 10 }),\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 useUploadFiles,\n} from '@messenger-box/platform-client';\nimport { IFileInfo } from '@messenger-box/core';\nimport { config } from '../config';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\n\nconst { MESSAGES_PER_PAGE } = 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 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\n const { startUpload } = useUploadFiles();\n\n const [sendMsg] = useSendMessagesMutation();\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 { 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 } = data.messages;\n if(messages && messages.length > 0) {setChannelMessages((oldMessages) => uniqBy\n ([...messages, ...oldMessages], ({ id }) => id));}\n if(totalCount) setTotalCount(totalCount);\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([\n ...oldMessages,\n ...messages\n ], ({ 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 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 };\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 ={url:'MainStack.Inbox.DialogMessages',params:{channelId,hideTabBar: true},screen:'DialogMessages'};\n const to:any = ['ExponentPushToken[4MVuqdAvmwLJdBKNd6yHDS]','ExponentPushToken[uZrK43LQQsAnYoEDbOpNs9]'];\n sendPushNotification(title,body,notificationData,to)\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 setFiles([]);\n setImages([])\n setImage('');\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 = 'm-reservation-detail';\n actionId = attachment?.callToAction?.link.split('/').pop();\n }\n return (\n <Box>\n {attachment?.callToAction ? (\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={color}\n onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={color}>{attachment.callToAction.title}</Text>\n </Button>\n ) : null}\n <MessageText {...props} />\n </Box>\n );\n } else {\n return <MessageText {...props} />;\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 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 />:''}\n scrollToBottom\n user={{\n _id: currentUser?.id || '',\n }}\n isTyping\n alwaysShowSend={loading?false:true}\n onLoadEarlier={onFetchOld}\n infiniteScroll={true}\n renderSend={renderSend}\n loadEarlier={channelMessages.length !== data?.messages?.totalCount}\n renderMessageText={renderMessageText}\n minInputToolbarHeight={50}\n renderActions={renderActions}\n renderAccessory={renderAccessory}\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 } from '@react-navigation/native';\n\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { useGetAllUsersQuery, useGetChannelsByUserQuery } from '@messenger-box/platform-client';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';\n\nexport interface InboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n}\n\nexport function 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 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 useEffect(() => {\n getChannelsRefetch();\n }, [isFocused,navigation]);\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 Memebers\n let userDirectChannels: any =\n userChannels?.channelsByUser?.filter((i: any) => i.type == 'DIRECT')?.filter((c:any) => c.members.some((u:any) => u.user.__typename == 'UserAccount')) ?? [];\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('MainStack.Inbox.DialogMessages' as any, { channelId: params?.channelId,title:params?.title??null, hideTabBar: true });\n } else {\n navigation.navigate('MainStack.Inbox.DialogMessages' as any, { channelId: id,title:title, hideTabBar: true });\n }\n }, []);\n \n //let cuc = userChannels?.channelsByUser?.filter((i:any)=>i.type=='DIRECT')?.map((k:any) => k?.members?.filter((e:any) => e?.user?.id != currentUser?.id))??[];\n let cuc = userDirectChannel?.map((k:any) => k?.members?.filter((e:any) => e?.user?.id != currentUser?.id))??[];\n cuc = cuc.filter((e:any) => e.length);\n return (\n <Box p={2}>\n {/* {!userChannels?.channelsByUser?.filter((i:any)=>i.type=='DIRECT')?.length || cuc && cuc.length == 0 ? ( */}\n {!userDirectChannel || userDirectChannel?.length==0 || cuc && cuc.length == 0 ? (\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 <>\n <FlatList\n // data={userChannels?.channelsByUser?.filter((i:any)=>i.type=='DIRECT')??[]}\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 users={users?.getUsers}\n onOpen={handleSelectChannel}\n currentUser={currentUser}\n channel={channel}\n selectedChannelId={params?.channelId}\n />\n )}\n />\n </>\n )}\n </Box>\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-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/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-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, Box, Avatar } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\n\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 { data: messagesQuery, loading: messageLoading } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n limit: 1,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const chatUser = useMemo(\n () =>\n users?.find(({ id }) => {\n const isNotCurrentUser = id !== currentUser?.id;\n if (isNotCurrentUser) {\n return channel?.members?.find(({ user }: any) => user.id === id);\n }\n //return id\n return isNotCurrentUser;\n }),\n [users, currentUser, channel],\n );\n\n const { data: userQuery }:any = useUserAccountQuery({\n variables: {\n userId: chatUser?.id,\n },\n skip: !chatUser?.id,\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 channelType = useMemo(() => {\n return channel?.type;\n }, [channel]);\n\n const title = userQuery?.getUserAccount.givenName+' '+ userQuery?.getUserAccount.familyName;\n if(!chatUser) return <></>\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id,title)}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\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 m={3} space={2} flex={1} alignItems={'center'}>\n <Avatar\n size={'lg'}\n // size={'sm'} \n bg={'transparent'} \n _image={{style:{width:40,height:40,borderRadius:6}}}\n source={{\n uri: userQuery?.getUserAccount.picture,\n }}\n >\n {startCase(userQuery?.getUserAccount.username.charAt(0))}\n </Avatar>\n <Box width={'80%'}>\n <HStack alignItems=\"center\" justifyContent=\"space-between\">\n <Text color=\"gray.600\" fontSize=\"lg\" fontWeight=\"semibold\">\n {chatUser?.givenName??''}{' '}{chatUser?.familyName??''}\n </Text>\n {/* <Text fontSize=\"xs\" color=\"red.500\">\n {channelType}\n </Text> */}\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </HStack>\n {/* <Text color=\"gray.600\" fontSize=\"lg\" fontWeight=\"semibold\">\n {chatUser?.givenName + ' ' + chatUser?.familyName}\n </Text> */}\n <Text color=\"gray.600\">{lastMessage?.message??''}</Text>\n </Box>\n </HStack>\n </Pressable>\n );\n};\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});\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 useUploadFiles,\n useViewChannelDetailQuery,\n} from '@messenger-box/platform-client';\nimport { IFileInfo } from '@messenger-box/core';\nimport { config } from '../config';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\n\nconst { MESSAGES_PER_PAGE } = 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 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 } = useUploadFiles();\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 } = data.messages;\n if (messages && messages.length > 0) {\n setChannelMessages((oldMessages) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n }\n if (totalCount) setTotalCount(totalCount);\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 = 'm-reservation-detail';\n actionId = attachment?.callToAction?.link.split('/').pop();\n }\n return (\n <Box>\n {attachment?.callToAction ? (\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={color}\n onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={color}>{attachment.callToAction.title}</Text>\n </Button>\n ) : null}\n <MessageText {...props} />\n </Box>\n );\n } else {\n return <MessageText {...props} />;\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 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\n alwaysShowSend={loading ? false : true}\n onLoadEarlier={onFetchOld}\n infiniteScroll={true}\n renderSend={renderSend}\n loadEarlier={channelMessages.length !== data?.messages?.totalCount}\n renderMessageText={renderMessageText}\n minInputToolbarHeight={50}\n renderActions={renderActions}\n renderAccessory={renderAccessory}\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 } from '@react-navigation/native';\n\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { useGetAllUsersQuery, 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 function 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 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 useEffect(() => {\n getChannelsRefetch();\n }, [isFocused, navigation]);\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 Memebers\n let userDirectChannels: any =\n userChannels?.channelsByUser\n ?.filter((i: any) => i.type == 'DIRECT')\n ?.filter((c: any) => c.members.some((u: any) => u.user.__typename == 'UserAccount')) ?? [];\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 //let cuc = userChannels?.channelsByUser?.filter((i:any)=>i.type=='DIRECT')?.map((k:any) => k?.members?.filter((e:any) => e?.user?.id != currentUser?.id))??[];\n let cuc = userDirectChannel?.map((k: any) => k?.members?.filter((e: any) => e?.user?.id != currentUser?.id)) ?? [];\n cuc = cuc.filter((e: any) => e.length);\n return (\n <Box p={2}>\n {/* {!userChannels?.channelsByUser?.filter((i:any)=>i.type=='DIRECT')?.length || cuc && cuc.length == 0 ? ( */}\n {!userDirectChannel || userDirectChannel?.length == 0 || (cuc && cuc.length == 0) ? (\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 <>\n <FlatList\n // data={userChannels?.channelsByUser?.filter((i:any)=>i.type=='DIRECT')??[]}\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 users={users?.getUsers}\n onOpen={handleSelectChannel}\n currentUser={currentUser}\n channel={channel}\n selectedChannelId={params?.channelId}\n />\n )}\n />\n </>\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-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":""}
|
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.306",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"watch": "yarn build:lib:watch"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@messenger-box/core": "0.0.1-alpha.
|
|
23
|
-
"@messenger-box/platform-client": "0.0.1-alpha.
|
|
22
|
+
"@messenger-box/core": "0.0.1-alpha.306",
|
|
23
|
+
"@messenger-box/platform-client": "0.0.1-alpha.306",
|
|
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": "9f2122804049cc14ed8753dd686edbae71586226"
|
|
44
44
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { Feature } from '@common-stack/client-react';
|
|
2
3
|
import { DialogMessages } from '../screens/inbox/DialogMessages';
|
|
3
4
|
|
|
@@ -7,9 +8,13 @@ const inboxConfig = {
|
|
|
7
8
|
name: 'Message',
|
|
8
9
|
props: {
|
|
9
10
|
initialParams: { channelId: null },
|
|
10
|
-
component: DialogMessages
|
|
11
|
+
component: (props: any) => <DialogMessages {...props} channelId={props?.route?.params?.channelId} />,
|
|
11
12
|
options: {
|
|
12
|
-
headerShown:
|
|
13
|
+
headerShown: true,
|
|
14
|
+
title: 'Inbox',
|
|
15
|
+
headerBackTitleVisible: false,
|
|
16
|
+
gestureEnabled: false,
|
|
17
|
+
swipeEnabled: false,
|
|
13
18
|
},
|
|
14
19
|
},
|
|
15
20
|
},
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { cleanEnv, num } from 'envalid';
|
|
1
|
+
import { cleanEnv, num, str } from 'envalid';
|
|
2
2
|
|
|
3
|
-
export const config = cleanEnv(process.env, {
|
|
3
|
+
export const config = cleanEnv(process['APP_ENV'] || process.env, {
|
|
4
4
|
MESSAGES_PER_PAGE: num({ devDefault: 10, default: 20 }),
|
|
5
5
|
FILES_PER_MESSAGE: num({ default: 10 }),
|
|
6
|
+
INBOX_MESSEGE_PATH: str({ default: 'MainStack.Message' }),
|
|
6
7
|
});
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
useMessagesQuery,
|
|
14
14
|
useSendMessagesMutation,
|
|
15
15
|
useUploadFiles,
|
|
16
|
+
useViewChannelDetailQuery,
|
|
16
17
|
} from '@messenger-box/platform-client';
|
|
17
18
|
import { IFileInfo } from '@messenger-box/core';
|
|
18
19
|
import { config } from '../config';
|
|
@@ -48,11 +49,17 @@ export function ConversationView({ channelId }: any) {
|
|
|
48
49
|
const [images, setImages] = useState<ImagePicker.ImageInfo[]>([]);
|
|
49
50
|
const [msg, setMsg] = useState<string>('');
|
|
50
51
|
const [loading, setLoading] = useState(false);
|
|
52
|
+
const [imageLoading, setImageLoading] = useState(false);
|
|
53
|
+
const [expoTokens, setExpoTokens] = useState<any[]>([]);
|
|
51
54
|
|
|
52
55
|
const { startUpload } = useUploadFiles();
|
|
53
56
|
|
|
54
57
|
const [sendMsg] = useSendMessagesMutation();
|
|
55
58
|
|
|
59
|
+
React.useEffect(() => {
|
|
60
|
+
if (selectedImage) setImageLoading(false);
|
|
61
|
+
}, [selectedImage]);
|
|
62
|
+
|
|
56
63
|
const {
|
|
57
64
|
data,
|
|
58
65
|
loading: messageLoading,
|
|
@@ -66,6 +73,31 @@ export function ConversationView({ channelId }: any) {
|
|
|
66
73
|
fetchPolicy: 'cache-and-network',
|
|
67
74
|
});
|
|
68
75
|
|
|
76
|
+
const {
|
|
77
|
+
data: channelsDetail,
|
|
78
|
+
loading: channelLoading,
|
|
79
|
+
refetch: refetchChannelDetail,
|
|
80
|
+
} = useViewChannelDetailQuery({
|
|
81
|
+
variables: {
|
|
82
|
+
id: channelId?.toString(),
|
|
83
|
+
},
|
|
84
|
+
onCompleted: (data: any) => {
|
|
85
|
+
const channelData: any =
|
|
86
|
+
data?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != auth?.id) ?? [];
|
|
87
|
+
const tokens: any =
|
|
88
|
+
channelData
|
|
89
|
+
?.map(
|
|
90
|
+
(u: any) =>
|
|
91
|
+
u?.user?.tokens
|
|
92
|
+
?.filter((t: any) => t?.type == 'EXPO_NOTIFICATION_TOKEN')
|
|
93
|
+
?.map((et: any) => et?.token) ?? [],
|
|
94
|
+
)
|
|
95
|
+
?.flat(1)
|
|
96
|
+
?.filter((t: any) => t) ?? [];
|
|
97
|
+
setExpoTokens(tokens);
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
|
|
69
101
|
const { data: users } = useGetAllUsersQuery();
|
|
70
102
|
|
|
71
103
|
const currentUser = useMemo(
|
|
@@ -85,9 +117,10 @@ export function ConversationView({ channelId }: any) {
|
|
|
85
117
|
useEffect(() => {
|
|
86
118
|
if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {
|
|
87
119
|
const { data: messages, totalCount } = data.messages;
|
|
88
|
-
if(messages && messages.length > 0) {
|
|
89
|
-
|
|
90
|
-
|
|
120
|
+
if (messages && messages.length > 0) {
|
|
121
|
+
setChannelMessages((oldMessages) => uniqBy([...messages, ...oldMessages], ({ id }) => id));
|
|
122
|
+
}
|
|
123
|
+
if (totalCount) setTotalCount(totalCount);
|
|
91
124
|
}
|
|
92
125
|
}, [data, loadingOldMessages, channelMessages]);
|
|
93
126
|
|
|
@@ -102,10 +135,7 @@ export function ConversationView({ channelId }: any) {
|
|
|
102
135
|
}
|
|
103
136
|
const { data: messages, totalCount } = data.messages;
|
|
104
137
|
setTotalCount(totalCount);
|
|
105
|
-
setChannelMessages((oldMessages) => uniqBy([
|
|
106
|
-
...oldMessages,
|
|
107
|
-
...messages
|
|
108
|
-
], ({ id }) => id));
|
|
138
|
+
setChannelMessages((oldMessages) => uniqBy([...oldMessages, ...messages], ({ id }) => id));
|
|
109
139
|
});
|
|
110
140
|
}
|
|
111
141
|
}, [checkForMessages, totalCount, refetch]);
|
|
@@ -134,6 +164,7 @@ export function ConversationView({ channelId }: any) {
|
|
|
134
164
|
};
|
|
135
165
|
|
|
136
166
|
const onSelectImages = async () => {
|
|
167
|
+
setImageLoading(true);
|
|
137
168
|
let imageSource: any = await ImagePicker.launchImageLibraryAsync({
|
|
138
169
|
mediaTypes: ImagePicker.MediaTypeOptions.Images,
|
|
139
170
|
allowsEditing: true,
|
|
@@ -148,22 +179,23 @@ export function ConversationView({ channelId }: any) {
|
|
|
148
179
|
setFiles((files) => files.concat(file));
|
|
149
180
|
setImages((images) => images.concat(imageSource as ImagePicker.ImageInfo));
|
|
150
181
|
}
|
|
182
|
+
if (imageSource.cancelled) setLoading(false);
|
|
151
183
|
};
|
|
152
184
|
|
|
153
|
-
const sendPushNotification = (title:String,body:String,data:any,to:any) => {
|
|
154
|
-
fetch(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
185
|
+
const sendPushNotification = (title: String, body: String, data: any, to: any) => {
|
|
186
|
+
fetch('https://exp.host/--/api/v2/push/send/', {
|
|
187
|
+
method: 'POST',
|
|
188
|
+
headers: {
|
|
189
|
+
Accept: 'application/json',
|
|
190
|
+
'Accept-Encoding': 'gzip, deflate',
|
|
191
|
+
'Content-Type': 'application/json',
|
|
192
|
+
},
|
|
193
|
+
body: JSON.stringify({
|
|
194
|
+
to: to,
|
|
195
|
+
data: data,
|
|
196
|
+
title: title,
|
|
197
|
+
body: body,
|
|
198
|
+
}),
|
|
167
199
|
});
|
|
168
200
|
};
|
|
169
201
|
|
|
@@ -173,10 +205,10 @@ export function ConversationView({ channelId }: any) {
|
|
|
173
205
|
// return;
|
|
174
206
|
// }
|
|
175
207
|
|
|
176
|
-
if (!
|
|
177
|
-
if (!
|
|
208
|
+
if (!channelId) return;
|
|
209
|
+
if (!message && message != ' ' && images.length == 0) return;
|
|
178
210
|
|
|
179
|
-
setLoading(true)
|
|
211
|
+
setLoading(true);
|
|
180
212
|
const { data } = await sendMsg({
|
|
181
213
|
variables: {
|
|
182
214
|
channelId,
|
|
@@ -184,24 +216,31 @@ export function ConversationView({ channelId }: any) {
|
|
|
184
216
|
},
|
|
185
217
|
update: (cache, { data, errors }) => {
|
|
186
218
|
if (!data || errors) {
|
|
187
|
-
setLoading(false)
|
|
219
|
+
setLoading(false);
|
|
188
220
|
return;
|
|
189
221
|
}
|
|
190
222
|
setChannelMessages((messages) => [...messages, data?.sendMessage]);
|
|
191
223
|
setTotalCount((t) => t + 1);
|
|
192
224
|
setChannelToTop(channelToTop + 1);
|
|
193
|
-
setLoading(false)
|
|
194
|
-
const title:String = 'New Message from cdmbase';
|
|
195
|
-
const body:String = message;
|
|
196
|
-
const notificationData:any ={
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
225
|
+
setLoading(false);
|
|
226
|
+
const title: String = 'New Message from cdmbase';
|
|
227
|
+
const body: String = message;
|
|
228
|
+
const notificationData: any = {
|
|
229
|
+
url: config.INBOX_MESSEGE_PATH,
|
|
230
|
+
params: { channelId, hideTabBar: true },
|
|
231
|
+
screen: 'DialogMessages',
|
|
232
|
+
};
|
|
233
|
+
if (expoTokens?.length > 0) {
|
|
234
|
+
const to: any = expoTokens?.length > 0 ? expoTokens : [];
|
|
235
|
+
sendPushNotification(title, body, notificationData, to);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
setMsg('');
|
|
200
239
|
},
|
|
201
240
|
});
|
|
202
241
|
if (images && images.length > 0 && data?.sendMessage?.id) {
|
|
203
242
|
const { id: postId } = data.sendMessage;
|
|
204
|
-
setLoading(true)
|
|
243
|
+
setLoading(true);
|
|
205
244
|
const uploadResponse = await startUpload({
|
|
206
245
|
file: images,
|
|
207
246
|
saveUploadedFile: {
|
|
@@ -215,13 +254,13 @@ export function ConversationView({ channelId }: any) {
|
|
|
215
254
|
},
|
|
216
255
|
},
|
|
217
256
|
});
|
|
218
|
-
if(uploadResponse?.error)setLoading(false)
|
|
257
|
+
if (uploadResponse?.error) setLoading(false);
|
|
219
258
|
const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];
|
|
220
259
|
if (uploadResponse.data) {
|
|
221
|
-
setFiles([]);
|
|
222
|
-
setImages([])
|
|
223
260
|
setImage('');
|
|
224
|
-
|
|
261
|
+
setFiles([]);
|
|
262
|
+
setImages([]);
|
|
263
|
+
setLoading(false);
|
|
225
264
|
}
|
|
226
265
|
setChannelMessages((messages) =>
|
|
227
266
|
messages.map((message) => {
|
|
@@ -361,17 +400,17 @@ export function ConversationView({ channelId }: any) {
|
|
|
361
400
|
renderLoading={() => <Spinner />}
|
|
362
401
|
messages={messageList}
|
|
363
402
|
onSend={(messages) => {
|
|
364
|
-
handleSend(messages[0]?.text??' ');
|
|
403
|
+
handleSend(messages[0]?.text ?? ' ');
|
|
365
404
|
}}
|
|
366
|
-
text={msg?msg:' '}
|
|
367
|
-
onInputTextChanged={(text)=>setMsg(text)}
|
|
368
|
-
renderFooter={() => loading
|
|
405
|
+
text={msg ? msg : ' '}
|
|
406
|
+
onInputTextChanged={(text) => setMsg(text)}
|
|
407
|
+
renderFooter={() => (loading ? <Spinner /> : imageLoading ? <Spinner /> : '')}
|
|
369
408
|
scrollToBottom
|
|
370
409
|
user={{
|
|
371
410
|
_id: currentUser?.id || '',
|
|
372
411
|
}}
|
|
373
412
|
isTyping
|
|
374
|
-
alwaysShowSend={loading?false:true}
|
|
413
|
+
alwaysShowSend={loading ? false : true}
|
|
375
414
|
onLoadEarlier={onFetchOld}
|
|
376
415
|
infiniteScroll={true}
|
|
377
416
|
renderSend={renderSend}
|
|
@@ -382,4 +421,4 @@ export function ConversationView({ channelId }: any) {
|
|
|
382
421
|
renderAccessory={renderAccessory}
|
|
383
422
|
/>
|
|
384
423
|
);
|
|
385
|
-
}
|
|
424
|
+
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import React, { useCallback, useMemo, useEffect,useState } from 'react';
|
|
1
|
+
import React, { useCallback, useMemo, useEffect, useState } from 'react';
|
|
2
2
|
import { FlatList, Box, Heading, Input, Text, Icon, Center } from 'native-base';
|
|
3
3
|
import { Ionicons } from '@expo/vector-icons';
|
|
4
4
|
import { useSelector, useDispatch } from 'react-redux';
|
|
5
|
-
import { useNavigation, useRoute,useIsFocused } from '@react-navigation/native';
|
|
5
|
+
import { useNavigation, useRoute, useIsFocused } from '@react-navigation/native';
|
|
6
6
|
|
|
7
7
|
import { DialogsListItem } from '../components/DialogsListItem';
|
|
8
8
|
import { useGetAllUsersQuery, useGetChannelsByUserQuery } from '@messenger-box/platform-client';
|
|
9
9
|
import { userSelector } from '@adminide-stack/user-auth0-client';
|
|
10
10
|
import { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';
|
|
11
|
+
import { config } from '../config';
|
|
11
12
|
|
|
12
13
|
export interface InboxProps {
|
|
13
14
|
channelFilters?: Record<string, unknown>;
|
|
@@ -43,7 +44,7 @@ export function Dialogs(props: InboxProps) {
|
|
|
43
44
|
|
|
44
45
|
useEffect(() => {
|
|
45
46
|
getChannelsRefetch();
|
|
46
|
-
}, [isFocused,navigation]);
|
|
47
|
+
}, [isFocused, navigation]);
|
|
47
48
|
|
|
48
49
|
useEffect(() => {
|
|
49
50
|
setTimeout(() => {
|
|
@@ -68,27 +69,37 @@ export function Dialogs(props: InboxProps) {
|
|
|
68
69
|
if (userChannels?.channelsByUser) {
|
|
69
70
|
//Direct channel Memebers
|
|
70
71
|
let userDirectChannels: any =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
userChannels?.channelsByUser
|
|
73
|
+
?.filter((i: any) => i.type == 'DIRECT')
|
|
74
|
+
?.filter((c: any) => c.members.some((u: any) => u.user.__typename == 'UserAccount')) ?? [];
|
|
75
|
+
|
|
76
|
+
if (userDirectChannels?.length > 0) setUserDirectChannel(userDirectChannels);
|
|
74
77
|
}
|
|
75
78
|
}, [userChannels?.channelsByUser]);
|
|
76
79
|
|
|
77
|
-
const handleSelectChannel = useCallback((id: any,title:any) => {
|
|
80
|
+
const handleSelectChannel = useCallback((id: any, title: any) => {
|
|
78
81
|
if (params?.channelId) {
|
|
79
|
-
navigation.navigate(
|
|
82
|
+
navigation.navigate(config.INBOX_MESSEGE_PATH as any, {
|
|
83
|
+
channelId: params?.channelId,
|
|
84
|
+
title: params?.title ?? null,
|
|
85
|
+
hideTabBar: true,
|
|
86
|
+
});
|
|
80
87
|
} else {
|
|
81
|
-
navigation.navigate(
|
|
88
|
+
navigation.navigate(config.INBOX_MESSEGE_PATH as any, {
|
|
89
|
+
channelId: id,
|
|
90
|
+
title: title,
|
|
91
|
+
hideTabBar: true,
|
|
92
|
+
});
|
|
82
93
|
}
|
|
83
94
|
}, []);
|
|
84
|
-
|
|
95
|
+
|
|
85
96
|
//let cuc = userChannels?.channelsByUser?.filter((i:any)=>i.type=='DIRECT')?.map((k:any) => k?.members?.filter((e:any) => e?.user?.id != currentUser?.id))??[];
|
|
86
|
-
let cuc = userDirectChannel?.map((k:any) => k?.members?.filter((e:any) => e?.user?.id != currentUser?.id))??[];
|
|
87
|
-
cuc = cuc.filter((e:any) => e.length);
|
|
97
|
+
let cuc = userDirectChannel?.map((k: any) => k?.members?.filter((e: any) => e?.user?.id != currentUser?.id)) ?? [];
|
|
98
|
+
cuc = cuc.filter((e: any) => e.length);
|
|
88
99
|
return (
|
|
89
100
|
<Box p={2}>
|
|
90
101
|
{/* {!userChannels?.channelsByUser?.filter((i:any)=>i.type=='DIRECT')?.length || cuc && cuc.length == 0 ? ( */}
|
|
91
|
-
{!userDirectChannel || userDirectChannel?.length==0 || cuc && cuc.length == 0 ? (
|
|
102
|
+
{!userDirectChannel || userDirectChannel?.length == 0 || (cuc && cuc.length == 0) ? (
|
|
92
103
|
<Box p={5}>
|
|
93
104
|
<Heading>Chat</Heading>
|
|
94
105
|
<Input
|
|
@@ -127,4 +138,4 @@ export function Dialogs(props: InboxProps) {
|
|
|
127
138
|
)}
|
|
128
139
|
</Box>
|
|
129
140
|
);
|
|
130
|
-
}
|
|
141
|
+
}
|