@messenger-box/platform-mobile 0.0.1-alpha.190 → 0.0.1-alpha.197
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 +24 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +508 -203
- package/lib/index.js.map +1 -1
- package/lib/navigation/InboxNavigation.d.ts +3 -1
- package/lib/screens/inbox/DialogMessages.d.ts +3 -1
- package/lib/screens/inbox/Inbox.d.ts +2 -0
- package/lib/screens/inbox/components/CommonMessage.d.ts +9 -0
- package/lib/screens/inbox/components/DialogsListItem.d.ts +5 -4
- package/lib/screens/inbox/components/FilesList.d.ts +13 -0
- package/lib/screens/inbox/components/MessageInput.d.ts +6 -1
- package/lib/screens/inbox/components/MessageItem.d.ts +5 -8
- package/lib/screens/inbox/components/PlainMessage.d.ts +6 -0
- package/lib/screens/inbox/config/config.d.ts +4 -0
- package/lib/screens/inbox/config/index.d.ts +1 -0
- package/lib/screens/inbox/containers/Dialogs.d.ts +5 -1
- package/lib/screens/index.d.ts +1 -0
- package/package.json +4 -4
- package/src/index.ts +1 -0
- package/src/navigation/InboxNavigation.tsx +9 -20
- package/src/screens/inbox/DialogMessages.tsx +2 -7
- package/src/screens/inbox/{DialogsList.tsx → Inbox.tsx} +4 -4
- package/src/screens/inbox/components/CommonMessage.tsx +52 -0
- package/src/screens/inbox/components/DialogsListItem.tsx +63 -44
- package/src/screens/inbox/components/FilesList.tsx +41 -0
- package/src/screens/inbox/components/MessageInput.tsx +24 -22
- package/src/screens/inbox/components/MessageItem.tsx +34 -55
- package/src/screens/inbox/components/PlainMessage.tsx +16 -0
- package/src/screens/inbox/config/config.ts +6 -0
- package/src/screens/inbox/config/index.ts +1 -0
- package/src/screens/inbox/containers/ConversationView.tsx +158 -83
- package/src/screens/inbox/containers/Dialogs.tsx +93 -48
- package/src/screens/index.ts +1 -0
- package/lib/screens/inbox/DialogsList.d.ts +0 -2
- package/lib/screens/inbox/components/DialogsHeader.d.ts +0 -8
package/lib/index.js
CHANGED
|
@@ -114,6 +114,7 @@ const module_1 = __importDefault(__webpack_require__(/*! ./module */ "./src/modu
|
|
|
114
114
|
const client_react_1 = __webpack_require__(/*! @common-stack/client-react */ "@common-stack/client-react");
|
|
115
115
|
exports.default = new client_react_1.Feature(module_1.default);
|
|
116
116
|
__exportStar(__webpack_require__(/*! ./navigation */ "./src/navigation/index.ts"), exports);
|
|
117
|
+
__exportStar(__webpack_require__(/*! ./screens */ "./src/screens/index.ts"), exports);
|
|
117
118
|
|
|
118
119
|
|
|
119
120
|
/***/ }),
|
|
@@ -170,14 +171,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
170
171
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
171
172
|
exports.InboxNavigation = void 0;
|
|
172
173
|
const React = __importStar(__webpack_require__(/*! react */ "react"));
|
|
173
|
-
const
|
|
174
|
+
const stack_1 = __webpack_require__(/*! @react-navigation/stack */ "@react-navigation/stack");
|
|
174
175
|
const DialogMessages_1 = __webpack_require__(/*! ../screens/inbox/DialogMessages */ "./src/screens/inbox/DialogMessages.tsx");
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
React.createElement(InboxStack.Screen, { component: DialogsList_1.DialogsList, name: "Inbox.DialogsList", options: { header: () => null } }),
|
|
180
|
-
React.createElement(InboxStack.Screen, { name: "Inbox.DialogMessages", component: DialogMessages_1.DialogMessages, options: { header: () => null } })));
|
|
176
|
+
const InboxStack = stack_1.createStackNavigator();
|
|
177
|
+
function InboxNavigation({ route }) {
|
|
178
|
+
return (React.createElement(InboxStack.Navigator, { initialRouteName: "DialogMessages" },
|
|
179
|
+
React.createElement(InboxStack.Screen, { name: "DialogMessages", options: { header: () => null } }, (props) => { var _a; return React.createElement(DialogMessages_1.DialogMessages, { channelId: (_a = route === null || route === void 0 ? void 0 : route.params) === null || _a === void 0 ? void 0 : _a.channelId }); })));
|
|
181
180
|
}
|
|
182
181
|
exports.InboxNavigation = InboxNavigation;
|
|
183
182
|
|
|
@@ -240,24 +239,21 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
240
239
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
241
240
|
exports.DialogMessages = void 0;
|
|
242
241
|
const React = __importStar(__webpack_require__(/*! react */ "react"));
|
|
243
|
-
const native_1 = __webpack_require__(/*! @react-navigation/native */ "@react-navigation/native");
|
|
244
242
|
const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
245
243
|
const ConversationView_1 = __webpack_require__(/*! ./containers/ConversationView */ "./src/screens/inbox/containers/ConversationView.tsx");
|
|
246
|
-
function DialogMessages() {
|
|
247
|
-
const { params } = native_1.useRoute();
|
|
248
|
-
const navigation = native_1.useNavigation();
|
|
244
|
+
function DialogMessages({ channelId }) {
|
|
249
245
|
return (React.createElement(native_base_1.Box, { bg: 'white', flex: 1, p: 6 },
|
|
250
|
-
React.createElement(ConversationView_1.ConversationView, { channelId:
|
|
246
|
+
React.createElement(ConversationView_1.ConversationView, { channelId: channelId })));
|
|
251
247
|
}
|
|
252
248
|
exports.DialogMessages = DialogMessages;
|
|
253
249
|
|
|
254
250
|
|
|
255
251
|
/***/ }),
|
|
256
252
|
|
|
257
|
-
/***/ "./src/screens/inbox/
|
|
258
|
-
|
|
259
|
-
!*** ./src/screens/inbox/
|
|
260
|
-
|
|
253
|
+
/***/ "./src/screens/inbox/Inbox.tsx":
|
|
254
|
+
/*!*************************************!*\
|
|
255
|
+
!*** ./src/screens/inbox/Inbox.tsx ***!
|
|
256
|
+
\*************************************/
|
|
261
257
|
/*! no static exports found */
|
|
262
258
|
/***/ (function(module, exports, __webpack_require__) {
|
|
263
259
|
|
|
@@ -283,15 +279,78 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
283
279
|
return result;
|
|
284
280
|
};
|
|
285
281
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
286
|
-
exports.
|
|
282
|
+
exports.Inbox = void 0;
|
|
287
283
|
const React = __importStar(__webpack_require__(/*! react */ "react"));
|
|
288
284
|
const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
289
285
|
const Dialogs_1 = __webpack_require__(/*! ./containers/Dialogs */ "./src/screens/inbox/containers/Dialogs.tsx");
|
|
290
|
-
|
|
286
|
+
const Inbox = (props) => {
|
|
287
|
+
const { channelFilters, channelRole } = props;
|
|
291
288
|
return (React.createElement(native_base_1.Box, { bg: 'white', flex: 1 },
|
|
292
|
-
React.createElement(Dialogs_1.Dialogs,
|
|
293
|
-
}
|
|
294
|
-
exports.
|
|
289
|
+
React.createElement(Dialogs_1.Dialogs, { channelFilters: channelFilters, channelRole: channelRole })));
|
|
290
|
+
};
|
|
291
|
+
exports.Inbox = Inbox;
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
/***/ }),
|
|
295
|
+
|
|
296
|
+
/***/ "./src/screens/inbox/components/CommonMessage.tsx":
|
|
297
|
+
/*!********************************************************!*\
|
|
298
|
+
!*** ./src/screens/inbox/components/CommonMessage.tsx ***!
|
|
299
|
+
\********************************************************/
|
|
300
|
+
/*! no static exports found */
|
|
301
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
302
|
+
|
|
303
|
+
"use strict";
|
|
304
|
+
|
|
305
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
306
|
+
if (k2 === undefined) k2 = k;
|
|
307
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
308
|
+
}) : (function(o, m, k, k2) {
|
|
309
|
+
if (k2 === undefined) k2 = k;
|
|
310
|
+
o[k2] = m[k];
|
|
311
|
+
}));
|
|
312
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
313
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
314
|
+
}) : function(o, v) {
|
|
315
|
+
o["default"] = v;
|
|
316
|
+
});
|
|
317
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
318
|
+
if (mod && mod.__esModule) return mod;
|
|
319
|
+
var result = {};
|
|
320
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
321
|
+
__setModuleDefault(result, mod);
|
|
322
|
+
return result;
|
|
323
|
+
};
|
|
324
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
325
|
+
exports.CommonMessage = void 0;
|
|
326
|
+
const React = __importStar(__webpack_require__(/*! react */ "react"));
|
|
327
|
+
const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
328
|
+
const vector_icons_1 = __webpack_require__(/*! @expo/vector-icons */ "@expo/vector-icons");
|
|
329
|
+
const date_fns_1 = __webpack_require__(/*! date-fns */ "date-fns");
|
|
330
|
+
const FilesList_1 = __webpack_require__(/*! ./FilesList */ "./src/screens/inbox/components/FilesList.tsx");
|
|
331
|
+
const lodash_1 = __webpack_require__(/*! lodash */ "lodash");
|
|
332
|
+
const CommonMessage = (props) => {
|
|
333
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
334
|
+
const { message, currentUser } = props;
|
|
335
|
+
return (React.createElement(native_base_1.Box, { mb: "7" },
|
|
336
|
+
React.createElement(native_base_1.HStack, { space: 2 },
|
|
337
|
+
React.createElement(native_base_1.Avatar, { backgroundColor: "grey", source: { uri: ((_a = message === null || message === void 0 ? void 0 : message.author) === null || _a === void 0 ? void 0 : _a.picture) || undefined } }, lodash_1.startCase((_c = (_b = message === null || message === void 0 ? void 0 : message.author) === null || _b === void 0 ? void 0 : _b.username) === null || _c === void 0 ? void 0 : _c.charAt(0))),
|
|
338
|
+
React.createElement(native_base_1.Box, null,
|
|
339
|
+
React.createElement(native_base_1.HStack, { width: '80%', justifyContent: 'space-between', alignItems: 'center' },
|
|
340
|
+
React.createElement(native_base_1.HStack, { space: 2 },
|
|
341
|
+
React.createElement(native_base_1.Text, { fontSize: "14px", color: "gray.600", fontWeight: 'bold' }, ((_d = message === null || message === void 0 ? void 0 : message.author) === null || _d === void 0 ? void 0 : _d.familyName) && ((_e = message === null || message === void 0 ? void 0 : message.author) === null || _e === void 0 ? void 0 : _e.givenName)
|
|
342
|
+
? ((_f = message === null || message === void 0 ? void 0 : message.author) === null || _f === void 0 ? void 0 : _f.givenName) + ' ' + ((_g = message === null || message === void 0 ? void 0 : message.author) === null || _g === void 0 ? void 0 : _g.familyName)
|
|
343
|
+
: (_h = message === null || message === void 0 ? void 0 : message.author) === null || _h === void 0 ? void 0 : _h.username),
|
|
344
|
+
React.createElement(native_base_1.Text, { fontSize: "14px", color: "gray.500", ml: "10px" }, date_fns_1.formatDistance(new Date(message === null || message === void 0 ? void 0 : message.createdAt), new Date(), {
|
|
345
|
+
includeSeconds: true,
|
|
346
|
+
addSuffix: true,
|
|
347
|
+
}))),
|
|
348
|
+
(currentUser === null || currentUser === void 0 ? void 0 : currentUser.id) !== ((_j = message === null || message === void 0 ? void 0 : message.author) === null || _j === void 0 ? void 0 : _j.id) && (React.createElement(native_base_1.Box, { ml: "8px" },
|
|
349
|
+
React.createElement(native_base_1.Icon, { as: vector_icons_1.Ionicons, name: 'flag', color: "gray.600", size: "sm" })))),
|
|
350
|
+
React.createElement(native_base_1.Text, { fontSize: "14px", mt: "5px" }, message === null || message === void 0 ? void 0 : message.message),
|
|
351
|
+
((_k = message.files) === null || _k === void 0 ? void 0 : _k.totalCount) ? React.createElement(FilesList_1.FilesList, { uploaded: true, files: (_l = message === null || message === void 0 ? void 0 : message.files) === null || _l === void 0 ? void 0 : _l.data }) : null))));
|
|
352
|
+
};
|
|
353
|
+
exports.CommonMessage = CommonMessage;
|
|
295
354
|
|
|
296
355
|
|
|
297
356
|
/***/ }),
|
|
@@ -326,7 +385,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
326
385
|
};
|
|
327
386
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
328
387
|
exports.DialogsListItem = void 0;
|
|
329
|
-
const lodash_1 = __webpack_require__(/*! lodash */ "lodash");
|
|
330
388
|
const react_1 = __importStar(__webpack_require__(/*! react */ "react"));
|
|
331
389
|
const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
332
390
|
const date_fns_1 = __webpack_require__(/*! date-fns */ "date-fns");
|
|
@@ -346,36 +404,106 @@ const createdAtText = (value) => {
|
|
|
346
404
|
* - Get Reservation info: reservation date, status
|
|
347
405
|
* - Add ability to get property information: name, logo
|
|
348
406
|
*/
|
|
349
|
-
const DialogsListItem = function DialogsListItem({
|
|
350
|
-
var _a;
|
|
351
|
-
const
|
|
352
|
-
|
|
353
|
-
|
|
407
|
+
const DialogsListItem = function DialogsListItem({ currentUser, users, selectedChannelId, channel, onOpen, }) {
|
|
408
|
+
var _a, _b;
|
|
409
|
+
const { data: messagesQuery, loading: messageLoading } = platform_client_1.useMessagesQuery({
|
|
410
|
+
variables: {
|
|
411
|
+
channelId: (_a = channel === null || channel === void 0 ? void 0 : channel.id) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
412
|
+
limit: 1,
|
|
413
|
+
},
|
|
414
|
+
fetchPolicy: 'cache-and-network',
|
|
354
415
|
});
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
const
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
416
|
+
const chatUser = react_1.useMemo(() => users === null || users === void 0 ? void 0 : users.find(({ id }) => {
|
|
417
|
+
var _a;
|
|
418
|
+
const isNotCurrentUser = id !== (currentUser === null || currentUser === void 0 ? void 0 : currentUser.id);
|
|
419
|
+
if (isNotCurrentUser) {
|
|
420
|
+
return (_a = channel === null || channel === void 0 ? void 0 : channel.members) === null || _a === void 0 ? void 0 : _a.find(({ user }) => user.id === id);
|
|
421
|
+
}
|
|
422
|
+
return isNotCurrentUser;
|
|
423
|
+
}), [users, currentUser, channel]);
|
|
424
|
+
const { data: userQuery } = platform_client_1.useUserAccountQuery({
|
|
425
|
+
variables: {
|
|
426
|
+
userId: chatUser === null || chatUser === void 0 ? void 0 : chatUser.id,
|
|
427
|
+
},
|
|
428
|
+
skip: !(chatUser === null || chatUser === void 0 ? void 0 : chatUser.id),
|
|
429
|
+
});
|
|
430
|
+
const lastMessage = react_1.useMemo(() => {
|
|
431
|
+
var _a, _b;
|
|
432
|
+
if (!((_b = (_a = messagesQuery === null || messagesQuery === void 0 ? void 0 : messagesQuery.messages) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
433
|
+
return null;
|
|
434
|
+
}
|
|
435
|
+
const { data } = messagesQuery.messages;
|
|
436
|
+
return data[data.length - 1];
|
|
437
|
+
}, [messagesQuery]);
|
|
438
|
+
const channelType = react_1.useMemo(() => {
|
|
439
|
+
return channel === null || channel === void 0 ? void 0 : channel.type;
|
|
440
|
+
}, [channel]);
|
|
441
|
+
return (react_1.default.createElement(native_base_1.Pressable, { onPress: () => (channel === null || channel === void 0 ? void 0 : channel.id) !== selectedChannelId && onOpen(channel === null || channel === void 0 ? void 0 : channel.id), borderWidth: '1', borderRadius: 10, borderColor: 'gray.200', shadow: '6' },
|
|
442
|
+
react_1.default.createElement(native_base_1.HStack, { m: 3, space: 2 },
|
|
443
|
+
react_1.default.createElement(native_base_1.Image, { alt: 'image', width: 16, borderRadius: 10, height: 16, source: { uri: ((_b = userQuery === null || userQuery === void 0 ? void 0 : userQuery.getUserAccount) === null || _b === void 0 ? void 0 : _b.picture) || 'https://picsum.photos/220' } }),
|
|
444
|
+
react_1.default.createElement(native_base_1.Box, { width: '80%' },
|
|
369
445
|
react_1.default.createElement(native_base_1.HStack, { alignItems: "center", justifyContent: "space-between" },
|
|
370
|
-
react_1.default.createElement(native_base_1.Text, { fontSize: "xs", color: "red.500" },
|
|
371
|
-
react_1.default.createElement(native_base_1.Text, { color: "gray.500" },
|
|
372
|
-
|
|
373
|
-
react_1.default.createElement(native_base_1.Text, { color: "gray.600" },
|
|
374
|
-
react_1.default.createElement(native_base_1.Text, null, "Sep 12-16, 2019. Private room fully furnis...")))));
|
|
446
|
+
react_1.default.createElement(native_base_1.Text, { fontSize: "xs", color: "red.500" }, channelType),
|
|
447
|
+
react_1.default.createElement(native_base_1.Text, { color: "gray.500" }, lastMessage ? createdAtText(lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.createdAt) : '')),
|
|
448
|
+
react_1.default.createElement(native_base_1.Text, { color: "gray.600", fontSize: "lg", fontWeight: "semibold" }, (chatUser === null || chatUser === void 0 ? void 0 : chatUser.givenName) + ' ' + (chatUser === null || chatUser === void 0 ? void 0 : chatUser.familyName)),
|
|
449
|
+
react_1.default.createElement(native_base_1.Text, { color: "gray.600" }, lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.message)))));
|
|
375
450
|
};
|
|
376
451
|
exports.DialogsListItem = DialogsListItem;
|
|
377
452
|
|
|
378
453
|
|
|
454
|
+
/***/ }),
|
|
455
|
+
|
|
456
|
+
/***/ "./src/screens/inbox/components/FilesList.tsx":
|
|
457
|
+
/*!****************************************************!*\
|
|
458
|
+
!*** ./src/screens/inbox/components/FilesList.tsx ***!
|
|
459
|
+
\****************************************************/
|
|
460
|
+
/*! no static exports found */
|
|
461
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
462
|
+
|
|
463
|
+
"use strict";
|
|
464
|
+
|
|
465
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
466
|
+
if (k2 === undefined) k2 = k;
|
|
467
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
468
|
+
}) : (function(o, m, k, k2) {
|
|
469
|
+
if (k2 === undefined) k2 = k;
|
|
470
|
+
o[k2] = m[k];
|
|
471
|
+
}));
|
|
472
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
473
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
474
|
+
}) : function(o, v) {
|
|
475
|
+
o["default"] = v;
|
|
476
|
+
});
|
|
477
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
478
|
+
if (mod && mod.__esModule) return mod;
|
|
479
|
+
var result = {};
|
|
480
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
481
|
+
__setModuleDefault(result, mod);
|
|
482
|
+
return result;
|
|
483
|
+
};
|
|
484
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
485
|
+
exports.FilesList = void 0;
|
|
486
|
+
const react_1 = __importStar(__webpack_require__(/*! react */ "react"));
|
|
487
|
+
const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
488
|
+
function FilesList({ files, uploaded = false }) {
|
|
489
|
+
return (react_1.default.createElement(native_base_1.HStack, { space: 2, mt: 2 },
|
|
490
|
+
react_1.default.createElement(FilesList.FilesView, { files: files, uploaded: uploaded })));
|
|
491
|
+
}
|
|
492
|
+
exports.FilesList = FilesList;
|
|
493
|
+
FilesList.FilesView = function MessageItemFiles({ files = [], uploaded }) {
|
|
494
|
+
if (!files.length) {
|
|
495
|
+
return null;
|
|
496
|
+
}
|
|
497
|
+
return (react_1.default.createElement(native_base_1.Box, null, files.map((file) => {
|
|
498
|
+
const url = react_1.useMemo(() => (uploaded ? file.url : URL.createObjectURL(file)), [file, uploaded]);
|
|
499
|
+
return (react_1.default.createElement(native_base_1.Image, { alt: 'image', mr: 2, height: "16", width: "16", source: {
|
|
500
|
+
uri: url,
|
|
501
|
+
scale: 0.2,
|
|
502
|
+
} }));
|
|
503
|
+
})));
|
|
504
|
+
};
|
|
505
|
+
|
|
506
|
+
|
|
379
507
|
/***/ }),
|
|
380
508
|
|
|
381
509
|
/***/ "./src/screens/inbox/components/MessageInput.tsx":
|
|
@@ -412,18 +540,20 @@ const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
|
412
540
|
const vector_icons_1 = __webpack_require__(/*! @expo/vector-icons */ "@expo/vector-icons");
|
|
413
541
|
const ImagePicker = __importStar(__webpack_require__(/*! expo-image-picker */ "expo-image-picker"));
|
|
414
542
|
const react_1 = __importStar(__webpack_require__(/*! react */ "react"));
|
|
415
|
-
|
|
416
|
-
|
|
543
|
+
const FilesList_1 = __webpack_require__(/*! ./FilesList */ "./src/screens/inbox/components/FilesList.tsx");
|
|
544
|
+
exports.MessageInput = react_1.forwardRef(function MessageInput({ handleSend: handleSendProp }) {
|
|
545
|
+
const [message, setMessage] = react_1.useState('');
|
|
546
|
+
const [sending, setSending] = react_1.useState(false);
|
|
417
547
|
const [files, setFiles] = react_1.useState([]);
|
|
418
|
-
const
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
548
|
+
const handleSend = react_1.useCallback(() => {
|
|
549
|
+
setSending(true);
|
|
550
|
+
handleSendProp(message, files)
|
|
551
|
+
.then(() => {
|
|
552
|
+
setMessage('');
|
|
553
|
+
setFiles([]);
|
|
554
|
+
})
|
|
555
|
+
.finally(() => setSending(false));
|
|
556
|
+
}, [files, handleSendProp, message]);
|
|
427
557
|
const onSelectImages = async () => {
|
|
428
558
|
// No permissions request is necessary for launching the image library
|
|
429
559
|
await ImagePicker.requestMediaLibraryPermissionsAsync();
|
|
@@ -438,12 +568,12 @@ exports.MessageInput = react_1.forwardRef(function MessageInput({ onSend }, ref)
|
|
|
438
568
|
};
|
|
439
569
|
return (react_1.default.createElement(native_base_1.VStack, { marginTop: 3, alignContent: "center" },
|
|
440
570
|
react_1.default.createElement(native_base_1.View, null,
|
|
441
|
-
react_1.default.createElement(native_base_1.TextField, { placeholder: "Message...", borderColor: "gray.400", value:
|
|
442
|
-
files.length ? (react_1.default.createElement(native_base_1.View, { mb: 4, flexDirection: "row" },
|
|
443
|
-
react_1.default.createElement(
|
|
571
|
+
react_1.default.createElement(native_base_1.TextField, { placeholder: "Message...", borderColor: "gray.400", value: sending ? '' : message, onChange: (e) => setMessage(e.nativeEvent.text), fontSize: 14 })),
|
|
572
|
+
files.length ? (react_1.default.createElement(native_base_1.View, { mb: 4, flexDirection: "row" },
|
|
573
|
+
react_1.default.createElement(FilesList_1.FilesList, { files: files }))) : null,
|
|
444
574
|
react_1.default.createElement(native_base_1.HStack, { alignContent: "center", justifyContent: "space-between" },
|
|
445
575
|
react_1.default.createElement(vector_icons_1.FontAwesome, { onPress: onSelectImages, size: 20, style: { marginRight: 5 }, name: "file-image-o" }),
|
|
446
|
-
react_1.default.createElement(vector_icons_1.FontAwesome, { onPress:
|
|
576
|
+
react_1.default.createElement(vector_icons_1.FontAwesome, { onPress: handleSend, size: 20, name: "send" }))));
|
|
447
577
|
});
|
|
448
578
|
|
|
449
579
|
|
|
@@ -458,64 +588,95 @@ exports.MessageInput = react_1.forwardRef(function MessageInput({ onSend }, ref)
|
|
|
458
588
|
|
|
459
589
|
"use strict";
|
|
460
590
|
|
|
461
|
-
var
|
|
462
|
-
|
|
463
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
464
|
-
}) : (function(o, m, k, k2) {
|
|
465
|
-
if (k2 === undefined) k2 = k;
|
|
466
|
-
o[k2] = m[k];
|
|
467
|
-
}));
|
|
468
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
469
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
470
|
-
}) : function(o, v) {
|
|
471
|
-
o["default"] = v;
|
|
472
|
-
});
|
|
473
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
474
|
-
if (mod && mod.__esModule) return mod;
|
|
475
|
-
var result = {};
|
|
476
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
477
|
-
__setModuleDefault(result, mod);
|
|
478
|
-
return result;
|
|
591
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
592
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
479
593
|
};
|
|
480
594
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
481
595
|
exports.MessageItem = void 0;
|
|
482
|
-
const react_1 =
|
|
596
|
+
const react_1 = __importDefault(__webpack_require__(/*! react */ "react"));
|
|
483
597
|
const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
484
|
-
const
|
|
485
|
-
const
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
if (date_fns_1.isToday(date))
|
|
490
|
-
return 'Today';
|
|
491
|
-
if (date_fns_1.isYesterday(date))
|
|
492
|
-
return 'Yesterday';
|
|
493
|
-
return date_fns_1.format(new Date(value), 'MMM dd, yyyy');
|
|
494
|
-
};
|
|
495
|
-
function MessageItem({ message, userId }) {
|
|
598
|
+
const platform_client_1 = __webpack_require__(/*! @messenger-box/platform-client */ "@messenger-box/platform-client");
|
|
599
|
+
const PlainMessage_1 = __webpack_require__(/*! ./PlainMessage */ "./src/screens/inbox/components/PlainMessage.tsx");
|
|
600
|
+
const CommonMessage_1 = __webpack_require__(/*! ./CommonMessage */ "./src/screens/inbox/components/CommonMessage.tsx");
|
|
601
|
+
const components_pro_1 = __webpack_require__(/*! @common-stack/components-pro */ "@common-stack/components-pro");
|
|
602
|
+
function MessageItem({ message, channelId, currentUser, totalCount, }) {
|
|
496
603
|
var _a;
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
604
|
+
if (typeof message === 'string') {
|
|
605
|
+
return react_1.default.createElement(PlainMessage_1.PlainMessage, { message: message });
|
|
606
|
+
}
|
|
607
|
+
const { type } = message;
|
|
608
|
+
if (!type || type === platform_client_1.IPostTypeEnum.Simple) {
|
|
609
|
+
return react_1.default.createElement(CommonMessage_1.CommonMessage, { message: message, currentUser: currentUser });
|
|
610
|
+
}
|
|
611
|
+
return (react_1.default.createElement(components_pro_1.Slot, { name: (_a = type) === null || _a === void 0 ? void 0 : _a.toLowerCase(), fillProps: {
|
|
612
|
+
active: true,
|
|
613
|
+
message,
|
|
614
|
+
currentUser,
|
|
615
|
+
} }, (item) => react_1.default.createElement(native_base_1.Box, null, item)));
|
|
508
616
|
}
|
|
509
617
|
exports.MessageItem = MessageItem;
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
/***/ }),
|
|
621
|
+
|
|
622
|
+
/***/ "./src/screens/inbox/components/PlainMessage.tsx":
|
|
623
|
+
/*!*******************************************************!*\
|
|
624
|
+
!*** ./src/screens/inbox/components/PlainMessage.tsx ***!
|
|
625
|
+
\*******************************************************/
|
|
626
|
+
/*! no static exports found */
|
|
627
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
628
|
+
|
|
629
|
+
"use strict";
|
|
630
|
+
|
|
631
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
632
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
633
|
+
};
|
|
634
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
635
|
+
exports.PlainMessage = void 0;
|
|
636
|
+
const react_1 = __importDefault(__webpack_require__(/*! react */ "react"));
|
|
637
|
+
const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
638
|
+
const PlainMessage = ({ message }) => {
|
|
639
|
+
return (react_1.default.createElement(native_base_1.Flex, { w: "full", justifyContent: 'center', mb: "7" },
|
|
640
|
+
react_1.default.createElement(native_base_1.Text, { fontSize: "14px", fontWeight: 'bold' }, message)));
|
|
518
641
|
};
|
|
642
|
+
exports.PlainMessage = PlainMessage;
|
|
643
|
+
|
|
644
|
+
|
|
645
|
+
/***/ }),
|
|
646
|
+
|
|
647
|
+
/***/ "./src/screens/inbox/config/config.ts":
|
|
648
|
+
/*!********************************************!*\
|
|
649
|
+
!*** ./src/screens/inbox/config/config.ts ***!
|
|
650
|
+
\********************************************/
|
|
651
|
+
/*! no static exports found */
|
|
652
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
653
|
+
|
|
654
|
+
"use strict";
|
|
655
|
+
|
|
656
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
657
|
+
exports.config = void 0;
|
|
658
|
+
const envalid_1 = __webpack_require__(/*! envalid */ "envalid");
|
|
659
|
+
exports.config = envalid_1.cleanEnv(process.env, {
|
|
660
|
+
MESSAGES_PER_PAGE: envalid_1.num({ devDefault: 20, default: 50 }),
|
|
661
|
+
FILES_PER_MESSAGE: envalid_1.num({ default: 10 }),
|
|
662
|
+
});
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
/***/ }),
|
|
666
|
+
|
|
667
|
+
/***/ "./src/screens/inbox/config/index.ts":
|
|
668
|
+
/*!*******************************************!*\
|
|
669
|
+
!*** ./src/screens/inbox/config/index.ts ***!
|
|
670
|
+
\*******************************************/
|
|
671
|
+
/*! no static exports found */
|
|
672
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
673
|
+
|
|
674
|
+
"use strict";
|
|
675
|
+
|
|
676
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
677
|
+
exports.config = void 0;
|
|
678
|
+
var config_1 = __webpack_require__(/*! ./config */ "./src/screens/inbox/config/config.ts");
|
|
679
|
+
Object.defineProperty(exports, "config", { enumerable: true, get: function () { return config_1.config; } });
|
|
519
680
|
|
|
520
681
|
|
|
521
682
|
/***/ }),
|
|
@@ -550,101 +711,153 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
550
711
|
};
|
|
551
712
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
552
713
|
exports.ConversationView = void 0;
|
|
553
|
-
const platform_client_1 = __webpack_require__(/*! @messenger-box/platform-client */ "@messenger-box/platform-client");
|
|
554
714
|
const react_1 = __importStar(__webpack_require__(/*! react */ "react"));
|
|
715
|
+
const date_fns_1 = __webpack_require__(/*! date-fns */ "date-fns");
|
|
555
716
|
const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
556
717
|
const react_redux_1 = __webpack_require__(/*! react-redux */ "react-redux");
|
|
718
|
+
const lodash_1 = __webpack_require__(/*! lodash */ "lodash");
|
|
719
|
+
const platform_client_1 = __webpack_require__(/*! @messenger-box/platform-client */ "@messenger-box/platform-client");
|
|
557
720
|
const MessageItem_1 = __webpack_require__(/*! ../components/MessageItem */ "./src/screens/inbox/components/MessageItem.tsx");
|
|
558
721
|
const MessageInput_1 = __webpack_require__(/*! ../components/MessageInput */ "./src/screens/inbox/components/MessageInput.tsx");
|
|
559
|
-
const
|
|
722
|
+
const config_1 = __webpack_require__(/*! ../config */ "./src/screens/inbox/config/index.ts");
|
|
723
|
+
const user_auth0_client_1 = __webpack_require__(/*! @adminide-stack/user-auth0-client */ "@adminide-stack/user-auth0-client");
|
|
724
|
+
const { MESSAGES_PER_PAGE } = config_1.config;
|
|
560
725
|
function ConversationView({ channelId }) {
|
|
561
|
-
const
|
|
562
|
-
const [
|
|
563
|
-
const [
|
|
564
|
-
const
|
|
565
|
-
const [
|
|
566
|
-
|
|
567
|
-
});
|
|
568
|
-
const [edit, edit$] = platform_client_1.useEditMessageMutation({
|
|
569
|
-
context: {},
|
|
570
|
-
});
|
|
726
|
+
const messageListRef = react_1.useRef(null);
|
|
727
|
+
const [channelToTop, setChannelToTop] = react_1.useState(0);
|
|
728
|
+
const [channelMessages, setChannelMessages] = react_1.useState([]);
|
|
729
|
+
const auth = react_redux_1.useSelector(user_auth0_client_1.userSelector);
|
|
730
|
+
const [totalCount, setTotalCount] = react_1.useState(0);
|
|
731
|
+
const [loadingOldMessages, setLoadingOldMessages] = react_1.useState(false);
|
|
571
732
|
const { startUpload } = platform_client_1.useUploadFiles();
|
|
572
|
-
const
|
|
733
|
+
const [sendMsg] = platform_client_1.useSendMessagesMutation();
|
|
734
|
+
const { data, loading: messageLoading, refetch, } = platform_client_1.useMessagesQuery({
|
|
735
|
+
variables: {
|
|
736
|
+
channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
|
|
737
|
+
limit: MESSAGES_PER_PAGE,
|
|
738
|
+
},
|
|
739
|
+
skip: !channelId,
|
|
740
|
+
fetchPolicy: 'cache-and-network',
|
|
741
|
+
});
|
|
742
|
+
debugger;
|
|
743
|
+
const { data: users } = platform_client_1.useGetAllUsersQuery();
|
|
744
|
+
const currentUser = 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.includes(auth === null || auth === void 0 ? void 0 : auth.auth0UserId)); }, [users, auth]);
|
|
745
|
+
const { data: checkForMessages } = platform_client_1.useCheckForNewMessagesQuery({
|
|
573
746
|
variables: {
|
|
574
|
-
|
|
575
|
-
channelId,
|
|
576
|
-
limit: MESSAGES_LIMIT,
|
|
747
|
+
channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
|
|
577
748
|
},
|
|
578
749
|
skip: !channelId,
|
|
579
750
|
fetchPolicy: 'network-only',
|
|
751
|
+
pollInterval: 5000,
|
|
580
752
|
});
|
|
581
753
|
react_1.useEffect(() => {
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
// const added = list.filter((data) => !data.author.alias.includes(userId));
|
|
591
|
-
// messages.concat(...added);
|
|
592
|
-
// return prev;
|
|
593
|
-
// },
|
|
594
|
-
// });
|
|
595
|
-
// }, [channelId, userId]);
|
|
596
|
-
react_1.useEffect(() => {
|
|
754
|
+
var _a;
|
|
755
|
+
if (((_a = data === null || data === void 0 ? void 0 : data.messages) === null || _a === void 0 ? void 0 : _a.data) && (loadingOldMessages || channelMessages.length === 0)) {
|
|
756
|
+
const { data: messages, totalCount } = data.messages;
|
|
757
|
+
setChannelMessages((oldMessages) => lodash_1.uniqBy([...[...messages].reverse(), ...oldMessages], ({ id }) => id));
|
|
758
|
+
setTotalCount(totalCount);
|
|
759
|
+
}
|
|
760
|
+
}, [data, loadingOldMessages, channelMessages]);
|
|
761
|
+
react_1.useLayoutEffect(() => {
|
|
597
762
|
var _a, _b;
|
|
598
|
-
if ((
|
|
599
|
-
|
|
763
|
+
if (((_a = checkForMessages === null || checkForMessages === void 0 ? void 0 : checkForMessages.messages) === null || _a === void 0 ? void 0 : _a.totalCount) > totalCount) {
|
|
764
|
+
const numberOfNewMessages = ((_b = checkForMessages === null || checkForMessages === void 0 ? void 0 : checkForMessages.messages) === null || _b === void 0 ? void 0 : _b.totalCount) - totalCount;
|
|
765
|
+
refetch({
|
|
766
|
+
limit: numberOfNewMessages,
|
|
767
|
+
}).then(({ data }) => {
|
|
768
|
+
if (!(data === null || data === void 0 ? void 0 : data.messages)) {
|
|
769
|
+
return;
|
|
770
|
+
}
|
|
771
|
+
const { data: messages, totalCount } = data.messages;
|
|
772
|
+
setTotalCount(totalCount);
|
|
773
|
+
setChannelMessages((oldMessages) => lodash_1.uniqBy([...oldMessages, ...messages], ({ id }) => id));
|
|
774
|
+
});
|
|
775
|
+
}
|
|
776
|
+
}, [checkForMessages, totalCount, refetch]);
|
|
777
|
+
const onFetchOld = react_1.useCallback(() => {
|
|
778
|
+
var _a;
|
|
779
|
+
if (((_a = data === null || data === void 0 ? void 0 : data.messages) === null || _a === void 0 ? void 0 : _a.totalCount) > channelMessages.length) {
|
|
780
|
+
setLoadingOldMessages(true);
|
|
781
|
+
refetch({ skip: channelMessages.length });
|
|
782
|
+
}
|
|
783
|
+
}, [data, channelMessages]);
|
|
784
|
+
const onMessagesScroll = react_1.useCallback((e) => {
|
|
785
|
+
if (messageListRef.current) {
|
|
786
|
+
const { scrollTop, scrollHeight, clientHeight } = messageListRef.current;
|
|
787
|
+
if (clientHeight - scrollTop > scrollHeight - 50 && !messageLoading) {
|
|
788
|
+
onFetchOld();
|
|
789
|
+
}
|
|
600
790
|
}
|
|
601
|
-
}, [
|
|
602
|
-
const
|
|
603
|
-
const onSendMessage = async (text, files) => {
|
|
791
|
+
}, [onFetchOld]);
|
|
792
|
+
const handleSend = react_1.useCallback(async (message, files) => {
|
|
604
793
|
var _a;
|
|
605
|
-
(
|
|
606
|
-
|
|
794
|
+
if (!(message && channelId)) {
|
|
795
|
+
return;
|
|
796
|
+
}
|
|
797
|
+
const { data } = await sendMsg({
|
|
607
798
|
variables: {
|
|
608
799
|
channelId,
|
|
609
|
-
content:
|
|
610
|
-
// files: [], // files: uploadedFiles.map(i => i.data.id)
|
|
800
|
+
content: message,
|
|
611
801
|
},
|
|
612
802
|
update: (cache, { data, errors }) => {
|
|
613
803
|
if (!data || errors) {
|
|
614
804
|
return;
|
|
615
805
|
}
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
806
|
+
setChannelMessages((messages) => [...messages, data === null || data === void 0 ? void 0 : data.sendMessage]);
|
|
807
|
+
setTotalCount((t) => t + 1);
|
|
808
|
+
setChannelToTop(channelToTop + 1);
|
|
619
809
|
},
|
|
620
810
|
});
|
|
621
|
-
if (files.
|
|
622
|
-
const {
|
|
811
|
+
if (files && ((_a = data === null || data === void 0 ? void 0 : data.sendMessage) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
812
|
+
const { id: postId } = data.sendMessage;
|
|
813
|
+
const uploadResponse = await startUpload({
|
|
623
814
|
file: files,
|
|
624
815
|
saveUploadedFile: {
|
|
625
816
|
variables: {
|
|
626
|
-
postId
|
|
817
|
+
postId,
|
|
627
818
|
},
|
|
628
819
|
},
|
|
629
820
|
createUploadLink: {
|
|
630
821
|
variables: {
|
|
631
|
-
postId
|
|
822
|
+
postId,
|
|
632
823
|
},
|
|
633
824
|
},
|
|
634
825
|
});
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
826
|
+
const uploadedFiles = uploadResponse.data;
|
|
827
|
+
setChannelMessages((messages) => messages.map((message) => {
|
|
828
|
+
if (message.id === postId) {
|
|
829
|
+
return Object.assign(Object.assign({}, message), { files: {
|
|
830
|
+
totalCount: uploadedFiles.length,
|
|
831
|
+
data: uploadedFiles,
|
|
832
|
+
} });
|
|
833
|
+
}
|
|
834
|
+
return message;
|
|
835
|
+
}));
|
|
643
836
|
}
|
|
644
|
-
};
|
|
837
|
+
}, [setChannelMessages, currentUser, channelId]);
|
|
838
|
+
const messageList = react_1.useMemo(() => {
|
|
839
|
+
let currentDate = '';
|
|
840
|
+
let res = [];
|
|
841
|
+
lodash_1.orderBy(channelMessages, ['createdAt'], ['asc']).map((msg) => {
|
|
842
|
+
const date = new Date(msg.createdAt);
|
|
843
|
+
let msgDate;
|
|
844
|
+
if (date_fns_1.isToday(date))
|
|
845
|
+
msgDate = 'Today';
|
|
846
|
+
else if (date_fns_1.isYesterday(date))
|
|
847
|
+
msgDate = 'Yesterday';
|
|
848
|
+
else
|
|
849
|
+
msgDate = date_fns_1.format(new Date(msg.createdAt), 'eee, do MMMM');
|
|
850
|
+
if (msgDate !== currentDate) {
|
|
851
|
+
res.push(msgDate);
|
|
852
|
+
currentDate = msgDate;
|
|
853
|
+
}
|
|
854
|
+
res.push(msg);
|
|
855
|
+
});
|
|
856
|
+
return res;
|
|
857
|
+
}, [channelMessages]);
|
|
645
858
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
646
|
-
react_1.default.createElement(native_base_1.FlatList, { inverted: true, data:
|
|
647
|
-
react_1.default.createElement(MessageInput_1.MessageInput, {
|
|
859
|
+
react_1.default.createElement(native_base_1.FlatList, { inverted: true, ref: messageListRef, data: messageList, onEndReached: onMessagesScroll, flex: 1, renderItem: ({ item }) => (react_1.default.createElement(MessageItem_1.MessageItem, { channelId: channelId, currentUser: currentUser, message: item, totalCount: totalCount })) }),
|
|
860
|
+
react_1.default.createElement(MessageInput_1.MessageInput, { channelId: channelId, handleSend: handleSend })));
|
|
648
861
|
}
|
|
649
862
|
exports.ConversationView = ConversationView;
|
|
650
863
|
|
|
@@ -681,44 +894,114 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
681
894
|
};
|
|
682
895
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
683
896
|
exports.Dialogs = void 0;
|
|
897
|
+
const react_1 = __importStar(__webpack_require__(/*! react */ "react"));
|
|
684
898
|
const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
|
|
685
|
-
const
|
|
899
|
+
const vector_icons_1 = __webpack_require__(/*! @expo/vector-icons */ "@expo/vector-icons");
|
|
686
900
|
const react_redux_1 = __webpack_require__(/*! react-redux */ "react-redux");
|
|
687
|
-
const react_1 = __importStar(__webpack_require__(/*! react */ "react"));
|
|
688
|
-
const lodash_1 = __webpack_require__(/*! lodash */ "lodash");
|
|
689
901
|
const native_1 = __webpack_require__(/*! @react-navigation/native */ "@react-navigation/native");
|
|
690
902
|
const DialogsListItem_1 = __webpack_require__(/*! ../components/DialogsListItem */ "./src/screens/inbox/components/DialogsListItem.tsx");
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
903
|
+
const platform_client_1 = __webpack_require__(/*! @messenger-box/platform-client */ "@messenger-box/platform-client");
|
|
904
|
+
const user_auth0_client_1 = __webpack_require__(/*! @adminide-stack/user-auth0-client */ "@adminide-stack/user-auth0-client");
|
|
905
|
+
const client_1 = __webpack_require__(/*! @admin-layout/client */ "@admin-layout/client");
|
|
906
|
+
function Dialogs(props) {
|
|
907
|
+
var _a;
|
|
908
|
+
const { channelFilters, channelRole } = props;
|
|
909
|
+
const { params } = native_1.useRoute();
|
|
910
|
+
const auth = react_redux_1.useSelector(user_auth0_client_1.userSelector);
|
|
911
|
+
const dispatch = react_redux_1.useDispatch();
|
|
694
912
|
const navigation = native_1.useNavigation();
|
|
695
|
-
const
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
return
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
913
|
+
const { data: userChannels, loading: userChannelsLoading, refetch: getChannelsRefetch, } = platform_client_1.useGetChannelsByUserQuery({
|
|
914
|
+
variables: {
|
|
915
|
+
role: channelRole,
|
|
916
|
+
criteria: channelFilters,
|
|
917
|
+
},
|
|
918
|
+
});
|
|
919
|
+
const { data: users } = platform_client_1.useGetAllUsersQuery();
|
|
920
|
+
const currentUser = 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.includes(auth === null || auth === void 0 ? void 0 : auth.auth0UserId)); }, [users, auth]);
|
|
921
|
+
react_1.useEffect(() => {
|
|
922
|
+
setTimeout(() => {
|
|
923
|
+
dispatch({
|
|
924
|
+
type: client_1.CHANGE_SETTINGS_ACTION,
|
|
925
|
+
payload: {
|
|
926
|
+
footerRender: false,
|
|
927
|
+
},
|
|
928
|
+
});
|
|
929
|
+
}, 0);
|
|
930
|
+
return () => {
|
|
931
|
+
dispatch({
|
|
932
|
+
type: client_1.CHANGE_SETTINGS_ACTION,
|
|
933
|
+
payload: {
|
|
934
|
+
footerRender: true,
|
|
935
|
+
},
|
|
936
|
+
});
|
|
937
|
+
};
|
|
938
|
+
}, []);
|
|
939
|
+
const handleSelectChannel = react_1.useCallback((id) => {
|
|
940
|
+
if (params === null || params === void 0 ? void 0 : params.channelId) {
|
|
941
|
+
navigation.navigate('Inbox.DialogMessages', { channelId: params === null || params === void 0 ? void 0 : params.channelId, hideTabBar: true });
|
|
942
|
+
}
|
|
943
|
+
else {
|
|
944
|
+
navigation.navigate('Inbox.DialogMessages', { channelId: id, hideTabBar: true });
|
|
945
|
+
}
|
|
946
|
+
}, []);
|
|
947
|
+
return (react_1.default.createElement(native_base_1.Box, { p: 2 }, !((_a = userChannels === null || userChannels === void 0 ? void 0 : userChannels.channelsByUser) === null || _a === void 0 ? void 0 : _a.length) ? (react_1.default.createElement(native_base_1.Box, { p: 5 },
|
|
948
|
+
react_1.default.createElement(native_base_1.Heading, null, "Chat"),
|
|
949
|
+
react_1.default.createElement(native_base_1.Input, { height: 50, mt: 3, placeholder: "Search", borderRadius: 50, borderColor: 'gray.200', borderWidth: 2 }),
|
|
950
|
+
react_1.default.createElement(native_base_1.Center, { mt: 6 },
|
|
951
|
+
react_1.default.createElement(native_base_1.Icon, { as: vector_icons_1.Ionicons, name: "chatbubbles", size: 'xl' }),
|
|
952
|
+
react_1.default.createElement(native_base_1.Text, null, "You don't have any messages yet!")))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
953
|
+
react_1.default.createElement(native_base_1.FlatList, { data: userChannels === null || userChannels === void 0 ? void 0 : userChannels.channelsByUser, onRefresh: getChannelsRefetch, refreshing: userChannelsLoading, contentContainerStyle: { minHeight: '100%' }, ItemSeparatorComponent: () => react_1.default.createElement(native_base_1.Box, { height: "0.5", backgroundColor: "gray.200" }), renderItem: ({ item: channel }) => (react_1.default.createElement(DialogsListItem_1.DialogsListItem, { users: users === null || users === void 0 ? void 0 : users.getUsers, onOpen: handleSelectChannel, currentUser: currentUser, channel: channel, selectedChannelId: params === null || params === void 0 ? void 0 : params.channelId })) })))));
|
|
718
954
|
}
|
|
719
955
|
exports.Dialogs = Dialogs;
|
|
720
956
|
|
|
721
957
|
|
|
958
|
+
/***/ }),
|
|
959
|
+
|
|
960
|
+
/***/ "./src/screens/index.ts":
|
|
961
|
+
/*!******************************!*\
|
|
962
|
+
!*** ./src/screens/index.ts ***!
|
|
963
|
+
\******************************/
|
|
964
|
+
/*! no static exports found */
|
|
965
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
966
|
+
|
|
967
|
+
"use strict";
|
|
968
|
+
|
|
969
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
970
|
+
if (k2 === undefined) k2 = k;
|
|
971
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
972
|
+
}) : (function(o, m, k, k2) {
|
|
973
|
+
if (k2 === undefined) k2 = k;
|
|
974
|
+
o[k2] = m[k];
|
|
975
|
+
}));
|
|
976
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
977
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
978
|
+
};
|
|
979
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
980
|
+
__exportStar(__webpack_require__(/*! ./inbox/Inbox */ "./src/screens/inbox/Inbox.tsx"), exports);
|
|
981
|
+
|
|
982
|
+
|
|
983
|
+
/***/ }),
|
|
984
|
+
|
|
985
|
+
/***/ "@admin-layout/client":
|
|
986
|
+
/*!***************************************!*\
|
|
987
|
+
!*** external "@admin-layout/client" ***!
|
|
988
|
+
\***************************************/
|
|
989
|
+
/*! no static exports found */
|
|
990
|
+
/***/ (function(module, exports) {
|
|
991
|
+
|
|
992
|
+
module.exports = require("@admin-layout/client");
|
|
993
|
+
|
|
994
|
+
/***/ }),
|
|
995
|
+
|
|
996
|
+
/***/ "@adminide-stack/user-auth0-client":
|
|
997
|
+
/*!****************************************************!*\
|
|
998
|
+
!*** external "@adminide-stack/user-auth0-client" ***!
|
|
999
|
+
\****************************************************/
|
|
1000
|
+
/*! no static exports found */
|
|
1001
|
+
/***/ (function(module, exports) {
|
|
1002
|
+
|
|
1003
|
+
module.exports = require("@adminide-stack/user-auth0-client");
|
|
1004
|
+
|
|
722
1005
|
/***/ }),
|
|
723
1006
|
|
|
724
1007
|
/***/ "@common-stack/client-react":
|
|
@@ -732,6 +1015,17 @@ module.exports = require("@common-stack/client-react");
|
|
|
732
1015
|
|
|
733
1016
|
/***/ }),
|
|
734
1017
|
|
|
1018
|
+
/***/ "@common-stack/components-pro":
|
|
1019
|
+
/*!***********************************************!*\
|
|
1020
|
+
!*** external "@common-stack/components-pro" ***!
|
|
1021
|
+
\***********************************************/
|
|
1022
|
+
/*! no static exports found */
|
|
1023
|
+
/***/ (function(module, exports) {
|
|
1024
|
+
|
|
1025
|
+
module.exports = require("@common-stack/components-pro");
|
|
1026
|
+
|
|
1027
|
+
/***/ }),
|
|
1028
|
+
|
|
735
1029
|
/***/ "@expo/vector-icons":
|
|
736
1030
|
/*!*************************************!*\
|
|
737
1031
|
!*** external "@expo/vector-icons" ***!
|
|
@@ -765,14 +1059,14 @@ module.exports = require("@react-navigation/native");
|
|
|
765
1059
|
|
|
766
1060
|
/***/ }),
|
|
767
1061
|
|
|
768
|
-
/***/ "@react-navigation/
|
|
769
|
-
|
|
770
|
-
!*** external "@react-navigation/
|
|
771
|
-
|
|
1062
|
+
/***/ "@react-navigation/stack":
|
|
1063
|
+
/*!******************************************!*\
|
|
1064
|
+
!*** external "@react-navigation/stack" ***!
|
|
1065
|
+
\******************************************/
|
|
772
1066
|
/*! no static exports found */
|
|
773
1067
|
/***/ (function(module, exports) {
|
|
774
1068
|
|
|
775
|
-
module.exports = require("@react-navigation/
|
|
1069
|
+
module.exports = require("@react-navigation/stack");
|
|
776
1070
|
|
|
777
1071
|
/***/ }),
|
|
778
1072
|
|
|
@@ -787,6 +1081,17 @@ module.exports = require("date-fns");
|
|
|
787
1081
|
|
|
788
1082
|
/***/ }),
|
|
789
1083
|
|
|
1084
|
+
/***/ "envalid":
|
|
1085
|
+
/*!**************************!*\
|
|
1086
|
+
!*** external "envalid" ***!
|
|
1087
|
+
\**************************/
|
|
1088
|
+
/*! no static exports found */
|
|
1089
|
+
/***/ (function(module, exports) {
|
|
1090
|
+
|
|
1091
|
+
module.exports = require("envalid");
|
|
1092
|
+
|
|
1093
|
+
/***/ }),
|
|
1094
|
+
|
|
790
1095
|
/***/ "expo-image-picker":
|
|
791
1096
|
/*!************************************!*\
|
|
792
1097
|
!*** external "expo-image-picker" ***!
|