@messenger-box/platform-mobile 10.0.2-alpha.5 → 10.0.3-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/compute.js +14 -14
  3. package/lib/compute.js.map +1 -1
  4. package/lib/index.js.map +1 -1
  5. package/lib/module.js +1 -2
  6. package/lib/module.js.map +1 -1
  7. package/lib/screens/inbox/DialogMessages.js +44 -20
  8. package/lib/screens/inbox/DialogMessages.js.map +1 -1
  9. package/lib/screens/inbox/DialogThreadMessages.js +13 -48
  10. package/lib/screens/inbox/DialogThreadMessages.js.map +1 -1
  11. package/lib/screens/inbox/DialogThreads.js +13 -70
  12. package/lib/screens/inbox/DialogThreads.js.map +1 -1
  13. package/lib/screens/inbox/Inbox.js +18 -9
  14. package/lib/screens/inbox/Inbox.js.map +1 -1
  15. package/lib/screens/inbox/components/CachedImage/consts.js.map +1 -1
  16. package/lib/screens/inbox/components/CachedImage/index.js +41 -27
  17. package/lib/screens/inbox/components/CachedImage/index.js.map +1 -1
  18. package/lib/screens/inbox/components/DialogsListItem.js +96 -146
  19. package/lib/screens/inbox/components/DialogsListItem.js.map +1 -1
  20. package/lib/screens/inbox/components/ServiceDialogsListItem.js +95 -148
  21. package/lib/screens/inbox/components/ServiceDialogsListItem.js.map +1 -1
  22. package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.js +37 -51
  23. package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.js.map +1 -1
  24. package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.js +113 -97
  25. package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.js.map +1 -1
  26. package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.js +50 -42
  27. package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.js.map +1 -1
  28. package/lib/screens/inbox/components/ThreadsViewItem.js +41 -149
  29. package/lib/screens/inbox/components/ThreadsViewItem.js.map +1 -1
  30. package/lib/screens/inbox/config/config.js +8 -10
  31. package/lib/screens/inbox/config/config.js.map +1 -1
  32. package/lib/screens/inbox/containers/ConversationView.js +357 -501
  33. package/lib/screens/inbox/containers/ConversationView.js.map +1 -1
  34. package/lib/screens/inbox/containers/Dialogs.js +49 -140
  35. package/lib/screens/inbox/containers/Dialogs.js.map +1 -1
  36. package/lib/screens/inbox/containers/ThreadConversationView.js +297 -400
  37. package/lib/screens/inbox/containers/ThreadConversationView.js.map +1 -1
  38. package/lib/screens/inbox/containers/ThreadsView.js +83 -190
  39. package/lib/screens/inbox/containers/ThreadsView.js.map +1 -1
  40. package/package.json +4 -4
  41. package/rollup.config.mjs +5 -1
  42. package/lib/compute.d.ts +0 -5
  43. package/lib/index.d.ts +0 -4
  44. package/lib/module.d.ts +0 -3
  45. package/lib/navigation/InboxNavigation.d.ts +0 -2
  46. package/lib/navigation/index.d.ts +0 -1
  47. package/lib/screens/inbox/DialogMessages.d.ts +0 -8
  48. package/lib/screens/inbox/DialogThreadMessages.d.ts +0 -8
  49. package/lib/screens/inbox/DialogThreads.d.ts +0 -7
  50. package/lib/screens/inbox/Inbox.d.ts +0 -2
  51. package/lib/screens/inbox/components/CachedImage/consts.d.ts +0 -2
  52. package/lib/screens/inbox/components/CachedImage/index.d.ts +0 -8
  53. package/lib/screens/inbox/components/DialogsHeader.d.ts +0 -8
  54. package/lib/screens/inbox/components/DialogsListItem.d.ts +0 -19
  55. package/lib/screens/inbox/components/ServiceDialogsListItem.d.ts +0 -21
  56. package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.d.ts +0 -3
  57. package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.d.ts +0 -34
  58. package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.d.ts +0 -25
  59. package/lib/screens/inbox/components/SlackMessageContainer/index.d.ts +0 -3
  60. package/lib/screens/inbox/components/SupportServiceDialogsListItem.d.ts +0 -21
  61. package/lib/screens/inbox/components/ThreadsViewItem.d.ts +0 -20
  62. package/lib/screens/inbox/config/config.d.ts +0 -11
  63. package/lib/screens/inbox/config/index.d.ts +0 -1
  64. package/lib/screens/inbox/containers/ConversationView.d.ts +0 -11
  65. package/lib/screens/inbox/containers/Dialogs.d.ts +0 -7
  66. package/lib/screens/inbox/containers/SupportServiceDialogs.d.ts +0 -6
  67. package/lib/screens/inbox/containers/ThreadConversationView.d.ts +0 -11
  68. package/lib/screens/inbox/containers/ThreadsView.d.ts +0 -13
  69. package/lib/screens/index.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/screens/inbox/components/CachedImage/index.tsx"],"sourcesContent":[null],"names":["CONST.IMAGE_CACHE_FOLDER","React"],"mappings":"qNAOA,MAAM,WAAW,GAAG,KAAC,IAAc;QACzB;IACN,MAAM;IACN,QAAM;IAEN;AAEA,GAAA,GAAA;AACA,EAAA,MAAA;AAEA,IAAA,GAAA;AACI,IAAA,OAAA;AACI,IAAA;AACA,GAAA,GAAA,MAAA;QACJ,OAAC,GAAA,CAAA,EAAAA,kBAAA,CAAA,EAAA,QAAA,CAAA,CAAA;AACL,EAAA,MAAE,CAAA,MAAA,EAAA,SAAA,CAAA,GAAA,QAAA,CAAA,OAAA,CAAA;AAEF,EAAA,MAAA,2BAA6B,CAAA,IAAO,CAAA;QAE3B,aAAM,GAAA,OAAA,GAAA;AACX,IAAA;AACA,GAAA,GAAA,EAAA;AACI,EAAA,MAAA,SAAA,GAAA,gBAAmB,IAAU;AACjC,IAAA,IAAA,kBAAE,CAAA,OAAA,KAAA,KAAA,EAAA;AACN,MAAG,oBAAuD,CAAA,OAAA,CAAA,UAAA,EAAA;MAEpD,UAAA,CAAA,WAAuB,CAAA,OAAA,EAAA;AACzB,QAAA,UAAK,EAAA;;;;4BAImC,GAAA,MAAA,CAAA,UAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,OAAA,EAAA,aAAA,EAAA,SAAA,CAAA,CAAA;YAEpC,MAAuG;aAC7E,EAAA;AAC1B,IAAA,OAAA,MAAK;AACD,MAAA,kBAAsB,CAAA,OAAA,GAAA,KAAQ;;;AAItB,EAAA,MAAA,SAAA,GAAA,MAAA,SAAgB,CAAA,KAAC,CAAW,EAAA,KAAA,CAAA,EAAA,KAAQ,CAAA,EAAA,aAAI;;;oBAG5C,GAAS,MAAA,UAAO,CAAA,YAAA,CAAA,OAAA,CAAA;sBAEV,SAAA,QAAsB,IAAA,EAAA,CAAA,OAAA,EAAA,GAAA,IAAA,IAA4B,QAAc,KAAA,IAAA,IAAE,QAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,SAAA;;AAErE;;AAEJ,MAAA,IAAA,CAAA,QAAA,CAAA,mBAAmB,KAAK,QAAM,QAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,IAAA,MAAA,CAAA,IAAA,OAAA,EAAA;AAC1B,QAAA,IAAA,kBAAA,CAAA,OAAW,EAAA;oBACf,IAAC,CAAA;qBACJ,EAAA;YACL,MAAC,UAAA,CAAA,WAAA,CAAA,OAAA,EAAA;cACJ,UAAA,EAAA;aAAQ,CAAA;;;AAGb,UAAE,SAAA,CAAA,IAAA,CAAA;UACkC,MAAA,QAAA,GAAA,MAAA,oBAAA,CAAA,OAAA,CAAA,aAAA,EAAA;AACpC,UAAW,IAAA,kBAAA,CAAA,OAAA,IAAA,QAAA,CAAA,MAAA,KAAA,GAAA,EAAA;YAAS,SAAA,CAAA,CAAA,EAAA,OAAA,CAAkB,CAAI,CAAA,CAAA,CAAA;;UAIsB,IAAA,QAAA,CAAA,MAAA,KAAA,GAAA,EAAA;kCAElD,CAAA,OAAA,EAAA;AAMlB,cAAE,UAAA,EAAA;AAEF,aAAa,CAAA,CAAA;;;AAGD;AACA,KAAA,CAAA,OAAA,GAAI,EAAG;AACV;;;;AAID,EAAA,IAAA,CAAA,MAAA,EAAO,OAAI,kBAAA,IAAA,IAAA;AACf,EAAA,OAACC,cAAA,CAAA,aAAA,CAAA;AAED;AACI,IAAA,MAAA,CAAA,MAAS,CAAA,EAAG,EAAM,KAAA,EAAA;AAClB,IAAA,MAAA,EAAA,MAAU,CAAC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAA,CAAA,EAAA;AACf,MAAC,GAAA,EAAA;KAEY;AACT,GAAA,CAAA,CAAA;AACJ"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/screens/inbox/components/CachedImage/index.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\nimport { Image } from 'react-native';\n// import { Image } from \"react-native\"\nimport * as FileSystem from 'expo-file-system';\n\nimport * as CONST from './consts';\n\nconst CachedImage = (props: any) => {\n const { source, cacheKey, placeholderContent } = props;\n const { uri, headers, expiresIn } = source;\n const fileURI = `${CONST.IMAGE_CACHE_FOLDER}${cacheKey}`;\n\n const [imgUri, setImgUri] = useState<any>(fileURI);\n\n const componentIsMounted = useRef(true);\n const requestOption = headers ? { headers } : {};\n\n const _callback = (downloadProgress: any) => {\n if (componentIsMounted.current === false) {\n downloadResumableRef.current.pauseAsync();\n FileSystem.deleteAsync(fileURI, { idempotent: true }); // delete file locally if it was not downloaded properly\n }\n };\n\n const downloadResumableRef = useRef(FileSystem.createDownloadResumable(uri, fileURI, requestOption, _callback));\n\n useEffect(() => {\n loadImage();\n return () => {\n componentIsMounted.current = false;\n };\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const loadImage = async () => {\n try {\n // Use the cached image if it exists\n const metadata: any = await FileSystem.getInfoAsync(fileURI);\n const expired = expiresIn && new Date().getTime() / 1000 - metadata?.modificationTime > expiresIn;\n // console.log({expiresIn, expired})\n\n // console.log({modificationTime: metadata.modificationTime, currentTime: new Date().getTime() / 1000})\n // console.log({metadata})\n if (!metadata.exists || metadata?.size === 0 || expired) {\n if (componentIsMounted.current) {\n setImgUri(null);\n\n if (expired) {\n await FileSystem.deleteAsync(fileURI, { idempotent: true });\n }\n // download to cache\n setImgUri(null);\n\n const response: any = await downloadResumableRef.current.downloadAsync();\n if (componentIsMounted.current && response.status === 200) {\n setImgUri(`${fileURI}?`); // deep clone to force re-render\n }\n if (response.status !== 200) {\n FileSystem.deleteAsync(fileURI, { idempotent: true }); // delete file locally if it was not downloaded properly\n }\n }\n }\n } catch (err) {\n // console.log({ err })\n }\n };\n // console.log({placeholderContent})\n if (!imgUri) return placeholderContent || null;\n\n return (\n <Image\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n source={{\n ...source,\n uri: imgUri,\n }}\n />\n );\n};\n\nexport const CacheManager = {\n addToCache: async ({ file, key }: any) => {\n await FileSystem.copyAsync({\n from: file,\n to: `${CONST.IMAGE_CACHE_FOLDER}${key}`,\n });\n // const uri = await FileSystem.getContentUriAsync(`${CONST.IMAGE_CACHE_FOLDER}${key}`)\n // return uri\n const uri = await CacheManager.getCachedUri({ key });\n return uri;\n },\n\n getCachedUri: async ({ key }: any) => {\n const uri = await FileSystem.getContentUriAsync(`${CONST.IMAGE_CACHE_FOLDER}${key}`);\n return uri;\n },\n\n downloadAsync: async ({ uri, key, options }: any) => {\n return await FileSystem.downloadAsync(uri, `${CONST.IMAGE_CACHE_FOLDER}${key}`, options);\n },\n};\n\nexport default CachedImage;\n"],"names":["CONST.IMAGE_CACHE_FOLDER","React"],"mappings":"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"}
@@ -1,18 +1,34 @@
1
- import React__default,{useState,useMemo}from'react';import {Pressable,HStack,Box,AvatarGroup,Avatar,AvatarFallbackText,AvatarImage,AvatarBadge,Text}from'@admin-layout/gluestack-ui-mobile';import {isToday,isYesterday,format}from'date-fns';import {useFocusEffect}from'@react-navigation/native';import {useMessagesQuery,useOnChatMessageAddedSubscription,OnChatMessageAddedDocument}from'common/lib/generated/generated.js';import {startCase}from'lodash-es';const createdAtText = value => {
2
- if (!value) return '';
1
+ import React__default,{useState,useMemo}from'react';import {Pressable,HStack,Box,AvatarGroup,Avatar,AvatarFallbackText,AvatarImage,AvatarBadge,Text}from'@admin-layout/gluestack-ui-mobile';import {isToday,isYesterday,format}from'date-fns';import {useFocusEffect}from'@react-navigation/native';import {useMessagesQuery,useOnChatMessageAddedSubscription,OnChatMessageAddedDocument}from'common/lib/generated/generated.js';import {startCase}from'lodash-es';var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ const createdAtText = (value) => {
21
+ if (!value)
22
+ return "";
3
23
  let date = new Date(value);
4
- if (isToday(date)) return 'Today';
5
- if (isYesterday(date)) return 'Yesterday';
6
- return format(new Date(value), 'MMM dd, yyyy');
24
+ if (isToday(date))
25
+ return "Today";
26
+ if (isYesterday(date))
27
+ return "Yesterday";
28
+ return format(new Date(value), "MMM dd, yyyy");
7
29
  };
8
- /**
9
- * TODO:
10
- * - Get Reservation info: reservation date, status
11
- * - Add ability to get property information: name, logo
12
- */
13
- const DialogsListItemComponent = function DialogsListItem({
30
+ const DialogsListItemComponent = function DialogsListItem2({
14
31
  currentUser,
15
- // users,
16
32
  selectedChannelId,
17
33
  channel,
18
34
  onOpen
@@ -27,158 +43,111 @@ const DialogsListItemComponent = function DialogsListItem({
27
43
  subscribeToMore
28
44
  } = useMessagesQuery({
29
45
  variables: {
30
- channelId: (_a = channel === null || channel === void 0 ? void 0 : channel.id) === null || _a === void 0 ? void 0 : _a.toString(),
31
- parentId: parentId,
46
+ channelId: (_a = channel == null ? void 0 : channel.id) == null ? void 0 : _a.toString(),
47
+ parentId,
32
48
  limit: 10
33
- // sort: {
34
- // key: 'updatedAt',
35
- // value: SortEnum.Desc,
36
- // },
37
- //limit: 25,
38
49
  },
39
- fetchPolicy: 'cache-and-network',
40
- refetchWritePolicy: 'merge'
50
+ fetchPolicy: "cache-and-network",
51
+ refetchWritePolicy: "merge"
41
52
  });
42
- useOnChatMessageAddedSubscription({
53
+ const {
54
+ data: newMessage,
55
+ loading: newMsgLoading,
56
+ error: newMsgError
57
+ } = useOnChatMessageAddedSubscription({
43
58
  variables: {
44
- channelId: (_b = channel === null || channel === void 0 ? void 0 : channel.id) === null || _b === void 0 ? void 0 : _b.toString()
59
+ channelId: (_b = channel == null ? void 0 : channel.id) == null ? void 0 : _b.toString()
45
60
  }
46
61
  });
47
62
  useFocusEffect(React__default.useCallback(() => {
48
- var _a;
49
- // Do something when the screen is focused
63
+ var _a2;
50
64
  refetchMessages({
51
- channelId: (_a = channel === null || channel === void 0 ? void 0 : channel.id) === null || _a === void 0 ? void 0 : _a.toString(),
52
- parentId: parentId,
65
+ channelId: (_a2 = channel == null ? void 0 : channel.id) == null ? void 0 : _a2.toString(),
66
+ parentId,
53
67
  limit: 10
54
- // sort: {
55
- // key: 'updatedAt',
56
- // value: SortEnum.Desc,
57
- // },
58
- //limit: 25
59
68
  });
60
69
  return () => {
61
- // Do something when the screen is unfocused
62
- // Useful for cleanup functions
63
70
  };
64
71
  }, []));
65
72
  React__default.useEffect(() => {
66
- var _a, _b, _c;
73
+ var _a2, _b2, _c2;
67
74
  if (messagesQuery) {
68
- 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) {
69
- const msg = (_c = messagesQuery === null || messagesQuery === void 0 ? void 0 : messagesQuery.messages) === null || _c === void 0 ? void 0 : _c.data;
70
- setMessages(pre => [...pre, ...msg]);
75
+ if ((_b2 = (_a2 = messagesQuery == null ? void 0 : messagesQuery.messages) == null ? void 0 : _a2.data) == null ? void 0 : _b2.length) {
76
+ const msg = (_c2 = messagesQuery == null ? void 0 : messagesQuery.messages) == null ? void 0 : _c2.data;
77
+ setMessages((pre) => [...pre, ...msg]);
71
78
  }
72
79
  }
73
80
  }, [messagesQuery]);
74
81
  const lastMessage = useMemo(() => {
75
- var _a;
76
- if (!(messages === null || messages === void 0 ? void 0 : messages.length)) {
82
+ var _a2;
83
+ if (!(messages == null ? void 0 : messages.length)) {
77
84
  return null;
78
85
  }
79
- // const { data } = messagesQuery.messages;
80
86
  const data = messages;
81
- const filteredData = data === null || data === void 0 ? void 0 : data.filter(p => (p === null || p === void 0 ? void 0 : p.message) !== '');
82
- // return filteredData[0];
83
- let filteredLastMessage = filteredData && (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) ? (_a = filteredData === null || filteredData === void 0 ? void 0 : filteredData.reduce((a, b) => {
84
- return new Date(a === null || a === void 0 ? void 0 : a.updatedAt) > new Date(b === null || b === void 0 ? void 0 : b.updatedAt) ? a : b;
85
- }, [])) !== null && _a !== void 0 ? _a : null : null;
87
+ const filteredData = data == null ? void 0 : data.filter((p) => (p == null ? void 0 : p.message) !== "");
88
+ let filteredLastMessage = filteredData && (filteredData == null ? void 0 : filteredData.length) ? (_a2 = filteredData == null ? void 0 : filteredData.reduce((a, b) => {
89
+ return new Date(a == null ? void 0 : a.updatedAt) > new Date(b == null ? void 0 : b.updatedAt) ? a : b;
90
+ }, [])) != null ? _a2 : null : null;
86
91
  return filteredLastMessage;
87
- //return data[data.length - 1];
88
92
  }, [messages]);
89
93
  const channelMembers = useMemo(() => {
90
- var _a, _b, _c;
91
- return (_c = (_b = (_a = channel === null || channel === void 0 ? void 0 : channel.members) === null || _a === void 0 ? void 0 : _a.filter(ch => {
92
- var _a, _b;
93
- return ((_a = ch === null || ch === void 0 ? void 0 : ch.user) === null || _a === void 0 ? void 0 : _a.id) != (currentUser === null || currentUser === void 0 ? void 0 : currentUser.id) && ((_b = ch === null || ch === void 0 ? void 0 : ch.user) === null || _b === void 0 ? void 0 : _b.__typename) == 'UserAccount';
94
- })) === null || _b === void 0 ? void 0 : _b.map(m => m === null || m === void 0 ? void 0 : m.user)) !== null && _c !== void 0 ? _c : null;
94
+ var _a2, _b2, _c2;
95
+ return (_c2 = (_b2 = (_a2 = channel == null ? void 0 : channel.members) == null ? void 0 : _a2.filter((ch) => {
96
+ var _a3, _b3;
97
+ return ((_a3 = ch == null ? void 0 : ch.user) == null ? void 0 : _a3.id) != (currentUser == null ? void 0 : currentUser.id) && ((_b3 = ch == null ? void 0 : ch.user) == null ? void 0 : _b3.__typename) == "UserAccount";
98
+ })) == null ? void 0 : _b2.map((m) => m == null ? void 0 : m.user)) != null ? _c2 : null;
95
99
  }, [currentUser, channel]);
96
100
  const title = useMemo(() => {
97
- var _a, _b, _c;
98
- const titleString = (_c = (_b = (_a = channelMembers === null || channelMembers === void 0 ? void 0 : channelMembers.map(u => {
99
- var _a;
100
- return (u === null || u === void 0 ? void 0 : u.givenName) + ' ' + ((_a = u === null || u === void 0 ? void 0 : u.familyName) !== null && _a !== void 0 ? _a : '');
101
- })) === null || _a === void 0 ? void 0 : _a.filter(mu => mu)) === null || _b === void 0 ? void 0 : _b.join(', ')) !== null && _c !== void 0 ? _c : '';
101
+ var _a2, _b2, _c2;
102
+ const titleString = (_c2 = (_b2 = (_a2 = channelMembers == null ? void 0 : channelMembers.map((u) => {
103
+ var _a3;
104
+ return (u == null ? void 0 : u.givenName) + " " + ((_a3 = u == null ? void 0 : u.familyName) != null ? _a3 : "");
105
+ })) == null ? void 0 : _a2.filter((mu) => mu)) == null ? void 0 : _b2.join(", ")) != null ? _c2 : "";
102
106
  const length = 30;
103
- return titleString.length > length ? titleString.substring(0, length - 3) + '...' : titleString;
107
+ return titleString.length > length ? titleString.substring(0, length - 3) + "..." : titleString;
104
108
  }, [channelMembers]);
105
- return React__default.createElement(Pressable, {
106
- onPress: () => (channel === null || channel === void 0 ? void 0 : channel.id) !== selectedChannelId && onOpen(channel === null || channel === void 0 ? void 0 : channel.id, title),
107
- borderWidth: '$1',
108
- borderRadius: '$md',
109
- borderColor: '$trueGray200',
110
- flex: 1,
111
- "$dark-borderColor": "$coolGray600",
112
- "$dark-backgroundColor": "$trueGray700",
113
- "$light-backgroundColor": "$trueGray50",
114
- "$light-borderColor": "$trueGray200"
115
- }, React__default.createElement(HStack
116
- // px={2}
117
- // pl={3}
118
- , {
119
- // px={2}
120
- // pl={3}
121
- py: '$3',
122
- space: 'sm',
123
- w: '100%',
124
- flex: 1,
125
- // direction={'row'}
126
- justifyContent: 'space-between',
127
- alignItems: 'center'
128
- }, React__default.createElement(Box, {
129
- flex: 0.1,
130
- alignItems: 'flex-start',
131
- pl: '$3'
132
- }, React__default.createElement(AvatarGroup, null, channelMembers && (channelMembers === null || channelMembers === void 0 ? void 0 : channelMembers.length) > 0 && ((_c = channelMembers === null || channelMembers === void 0 ? void 0 : channelMembers.slice(0, 2)) === null || _c === void 0 ? void 0 : _c.map((ch, i) => {
133
- var _a;
134
- return React__default.createElement(Avatar, {
135
- key: 'dialogs-list-' + i,
136
- bg: 'transparent',
137
- size: 'sm',
138
- top: i == 1 ? '$4' : '$0',
139
- right: i == 1 ? '-$2' : '$0',
140
- zIndex: i == 1 ? 5 : 1
141
- }, React__default.createElement(AvatarFallbackText, null, startCase((_a = ch === null || ch === void 0 ? void 0 : ch.username) === null || _a === void 0 ? void 0 : _a.charAt(0))), React__default.createElement(AvatarImage, {
142
- alt: "user image",
143
- style: {
109
+ return /* @__PURE__ */ React__default.createElement(Pressable, { onPress: () => (channel == null ? void 0 : channel.id) !== selectedChannelId && onOpen(channel == null ? void 0 : channel.id, title), borderWidth: "$1", borderRadius: "$md", borderColor: "$trueGray200", flex: 1, "$dark-borderColor": "$coolGray600", "$dark-backgroundColor": "$trueGray700", "$light-backgroundColor": "$trueGray50", "$light-borderColor": "$trueGray200" }, /* @__PURE__ */ React__default.createElement(
110
+ HStack,
111
+ {
112
+ py: "$3",
113
+ space: "sm",
114
+ w: "100%",
115
+ flex: 1,
116
+ justifyContent: "space-between",
117
+ alignItems: "center"
118
+ },
119
+ /* @__PURE__ */ React__default.createElement(Box, { flex: 0.1, alignItems: "flex-start", pl: "$3" }, /* @__PURE__ */ React__default.createElement(AvatarGroup, null, channelMembers && (channelMembers == null ? void 0 : channelMembers.length) > 0 && ((_c = channelMembers == null ? void 0 : channelMembers.slice(0, 2)) == null ? void 0 : _c.map((ch, i) => {
120
+ var _a2;
121
+ return /* @__PURE__ */ React__default.createElement(Avatar, { key: "dialogs-list-" + i, bg: "transparent", size: "sm", top: i == 1 ? "$4" : "$0", right: i == 1 ? "-$2" : "$0", zIndex: i == 1 ? 5 : 1 }, /* @__PURE__ */ React__default.createElement(AvatarFallbackText, null, startCase((_a2 = ch == null ? void 0 : ch.username) == null ? void 0 : _a2.charAt(0))), /* @__PURE__ */ React__default.createElement(AvatarImage, { alt: "user image", style: {
144
122
  borderRadius: 6,
145
123
  borderWidth: 2,
146
- borderColor: '#fff'
147
- },
148
- source: {
149
- uri: ch === null || ch === void 0 ? void 0 : ch.picture
150
- }
151
- }), (channelMembers === null || channelMembers === void 0 ? void 0 : channelMembers.length) == 1 && React__default.createElement(AvatarBadge, {
152
- style: {
124
+ borderColor: "#fff"
125
+ }, source: {
126
+ uri: ch == null ? void 0 : ch.picture
127
+ } }), (channelMembers == null ? void 0 : channelMembers.length) == 1 && /* @__PURE__ */ React__default.createElement(AvatarBadge, { style: {
153
128
  width: 10,
154
129
  height: 10
155
- },
156
- bg: "$green800"
157
- }));
158
- })))), React__default.createElement(Box, {
159
- flex: 0.9
160
- }, React__default.createElement(LastMessageComponent, {
161
- title: title,
162
- lastMessage: lastMessage,
163
- channelId: channel === null || channel === void 0 ? void 0 : channel.id,
164
- subscribeToNewMessages: () => {
165
- var _a;
130
+ }, bg: "$green800" }));
131
+ })))),
132
+ /* @__PURE__ */ React__default.createElement(Box, { flex: 0.9 }, /* @__PURE__ */ React__default.createElement(LastMessageComponent, { title, lastMessage, channelId: channel == null ? void 0 : channel.id, subscribeToNewMessages: () => {
133
+ var _a2;
166
134
  return subscribeToMore({
167
135
  document: OnChatMessageAddedDocument,
168
136
  variables: {
169
- channelId: (_a = channel.id) === null || _a === void 0 ? void 0 : _a.toString()
137
+ channelId: (_a2 = channel.id) == null ? void 0 : _a2.toString()
170
138
  },
171
139
  updateQuery: (prev, {
172
140
  subscriptionData
173
141
  }) => {
174
- var _a;
175
- if (!subscriptionData.data) return prev;
176
- const newMessage = (_a = subscriptionData === null || subscriptionData === void 0 ? void 0 : subscriptionData.data) === null || _a === void 0 ? void 0 : _a.chatMessageAdded;
177
- const existingMessages = prev === null || prev === void 0 ? void 0 : prev.messages;
178
- const previousData = (existingMessages === null || existingMessages === void 0 ? void 0 : existingMessages.data) ? [...existingMessages.data, newMessage] : [];
179
- const totalMsgCount = (existingMessages === null || existingMessages === void 0 ? void 0 : existingMessages.totalCount) + 1;
180
- const merged = Object.assign(Object.assign({}, prev), {
181
- messages: Object.assign(Object.assign({}, existingMessages), {
142
+ var _a3;
143
+ if (!subscriptionData.data)
144
+ return prev;
145
+ const newMessage2 = (_a3 = subscriptionData == null ? void 0 : subscriptionData.data) == null ? void 0 : _a3.chatMessageAdded;
146
+ const existingMessages = prev == null ? void 0 : prev.messages;
147
+ const previousData = (existingMessages == null ? void 0 : existingMessages.data) ? [...existingMessages.data, newMessage2] : [];
148
+ const totalMsgCount = (existingMessages == null ? void 0 : existingMessages.totalCount) + 1;
149
+ const merged = __spreadProps(__spreadValues({}, prev), {
150
+ messages: __spreadProps(__spreadValues({}, existingMessages), {
182
151
  data: previousData,
183
152
  totalCount: totalMsgCount
184
153
  })
@@ -186,8 +155,8 @@ const DialogsListItemComponent = function DialogsListItem({
186
155
  return merged;
187
156
  }
188
157
  });
189
- }
190
- }))));
158
+ } }))
159
+ ));
191
160
  };
192
161
  const LastMessageComponent = ({
193
162
  subscribeToNewMessages,
@@ -197,25 +166,6 @@ const LastMessageComponent = ({
197
166
  }) => {
198
167
  var _a;
199
168
  React__default.useEffect(() => subscribeToNewMessages(), [channelId]);
200
- return React__default.createElement(HStack, {
201
- space: 'sm',
202
- flex: 1,
203
- justifyContent: 'center',
204
- alignItems: 'center'
205
- }, React__default.createElement(Box, {
206
- flex: 0.8
207
- }, React__default.createElement(Text, {
208
- color: "$trueGray600",
209
- fontSize: "$lg",
210
- flexWrap: 'wrap',
211
- fontWeight: "$semibold"
212
- }, title), React__default.createElement(Text, {
213
- color: "$trueGray600",
214
- numberOfLines: 1
215
- }, (_a = lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.message) !== null && _a !== void 0 ? _a : '')), React__default.createElement(Box, {
216
- flex: 0.2
217
- }, React__default.createElement(Text, {
218
- color: "$trueGray500"
219
- }, lastMessage ? createdAtText(lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.createdAt) : '')));
169
+ return /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", flex: 1, justifyContent: "center", alignItems: "center" }, /* @__PURE__ */ React__default.createElement(Box, { flex: 0.8 }, /* @__PURE__ */ React__default.createElement(Text, { color: "$trueGray600", fontSize: "$lg", flexWrap: "wrap", fontWeight: "$semibold" }, title), /* @__PURE__ */ React__default.createElement(Text, { color: "$trueGray600", numberOfLines: 1 }, (_a = lastMessage == null ? void 0 : lastMessage.message) != null ? _a : "")), /* @__PURE__ */ React__default.createElement(Box, { flex: 0.2 }, /* @__PURE__ */ React__default.createElement(Text, { color: "$trueGray500" }, lastMessage ? createdAtText(lastMessage == null ? void 0 : lastMessage.createdAt) : "")));
220
170
  };
221
171
  const DialogsListItem = React__default.memo(DialogsListItemComponent);export{DialogsListItem,DialogsListItemComponent};//# sourceMappingURL=DialogsListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DialogsListItem.js","sources":["../../../../src/screens/inbox/components/DialogsListItem.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"DialogsListItem.js","sources":["../../../../src/screens/inbox/components/DialogsListItem.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n Text,\n Image,\n Pressable,\n HStack,\n Box,\n AvatarGroup,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n View,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { IChannel, SortEnum, IUserAccount } from 'common';\nimport {\n useMessagesQuery,\n useOnChatMessageAddedSubscription,\n OnChatMessageAddedDocument as CHAT_MESSAGE_ADDED,\n useUserAccountQuery,\n} from 'common/lib/generated/generated.js';\nimport { startCase } from 'lodash-es';\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 DialogsListItemComponent: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n selectedChannelId,\n channel,\n onOpen,\n}) {\n const parentId: any = null;\n const [messages, setMessages] = useState<any>([]);\n const {\n data: messagesQuery,\n loading: messageLoading,\n refetch: refetchMessages,\n subscribeToMore,\n } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n parentId: parentId,\n limit: 10,\n // sort: {\n // key: 'updatedAt',\n // value: SortEnum.Desc,\n // },\n //limit: 25,\n },\n fetchPolicy: 'cache-and-network',\n refetchWritePolicy: 'merge',\n });\n\n const {\n data: newMessage,\n loading: newMsgLoading,\n error: newMsgError,\n }: any = useOnChatMessageAddedSubscription({\n variables: {\n channelId: channel?.id?.toString(),\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchMessages({\n channelId: channel?.id?.toString(),\n parentId: parentId,\n limit: 10,\n // sort: {\n // key: 'updatedAt',\n // value: SortEnum.Desc,\n // },\n //limit: 25\n });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n React.useEffect(() => {\n if (messagesQuery) {\n if (messagesQuery?.messages?.data?.length) {\n const msg = messagesQuery?.messages?.data;\n setMessages((pre: any[]) => [...pre, ...msg]);\n }\n }\n }, [messagesQuery]);\n\n const lastMessage = useMemo(() => {\n if (!messages?.length) {\n return null;\n }\n // const { data } = messagesQuery.messages;\n const data = messages;\n const filteredData: any = data?.filter((p: any) => p?.message !== '');\n // return filteredData[0];\n let filteredLastMessage =\n filteredData && filteredData?.length\n ? filteredData?.reduce((a, b) => {\n return new Date(a?.updatedAt) > new Date(b?.updatedAt) ? a : b;\n }, []) ?? null\n : null;\n return filteredLastMessage;\n //return data[data.length - 1];\n }, [messages]);\n\n const channelMembers = useMemo(\n () =>\n channel?.members\n ?.filter((ch: any) => ch?.user?.id != currentUser?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null,\n [currentUser, channel],\n );\n\n const title = useMemo(() => {\n const titleString =\n channelMembers\n ?.map((u: any) => u?.givenName + ' ' + (u?.familyName ?? ''))\n ?.filter((mu: any) => mu)\n ?.join(', ') ?? '';\n\n const length = 30;\n return titleString.length > length ? titleString.substring(0, length - 3) + '...' : titleString;\n }, [channelMembers]);\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id, title)}\n borderWidth={'$1'}\n borderRadius={'$md'}\n borderColor={'$trueGray200'}\n flex={1}\n $dark-borderColor=\"$coolGray600\"\n $dark-backgroundColor=\"$trueGray700\"\n $light-backgroundColor=\"$trueGray50\"\n $light-borderColor=\"$trueGray200\"\n >\n <HStack\n // px={2}\n // pl={3}\n py={'$3'}\n space={'sm'}\n w={'100%'}\n flex={1}\n // direction={'row'}\n justifyContent={'space-between'}\n alignItems={'center'}\n >\n <Box flex={0.1} alignItems={'flex-start'} pl={'$3'}>\n <AvatarGroup>\n {channelMembers &&\n channelMembers?.length > 0 &&\n channelMembers?.slice(0, 2)?.map((ch: any, i: Number) => (\n <Avatar\n key={'dialogs-list-' + i}\n bg={'transparent'}\n size={'sm'}\n top={i == 1 ? '$4' : '$0'}\n right={i == 1 ? '-$2' : '$0'}\n zIndex={i == 1 ? 5 : 1}\n >\n <AvatarFallbackText>{startCase(ch?.username?.charAt(0))}</AvatarFallbackText>\n <AvatarImage\n alt=\"user image\"\n style={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: ch?.picture,\n }}\n />\n {channelMembers?.length == 1 && (\n <AvatarBadge style={{ width: 10, height: 10 }} bg=\"$green800\" />\n )}\n </Avatar>\n ))}\n </AvatarGroup>\n </Box>\n <Box flex={0.9}>\n {/* <HStack space={1} flex={1} direction={'row'} justifyContent={'center'} alignItems={'center'}>\n <Box flex={0.8}>\n <Text color=\"gray.600\" fontSize=\"lg\" flexWrap={'wrap'} fontWeight=\"semibold\">\n {title}\n </Text>\n <Text color=\"gray.600\" noOfLines={1}>\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </Box>\n </HStack> */}\n <LastMessageComponent\n title={title}\n lastMessage={lastMessage}\n channelId={channel?.id}\n subscribeToNewMessages={() =>\n subscribeToMore({\n document: CHAT_MESSAGE_ADDED,\n variables: {\n channelId: channel.id?.toString(),\n },\n updateQuery: (prev, { subscriptionData }: any) => {\n if (!subscriptionData.data) return prev;\n const newMessage: any = subscriptionData?.data?.chatMessageAdded;\n const existingMessages: any = prev?.messages;\n const previousData = existingMessages?.data\n ? [...existingMessages.data, newMessage]\n : [];\n const totalMsgCount = existingMessages?.totalCount + 1;\n const merged = {\n ...prev,\n messages: {\n ...existingMessages,\n data: previousData,\n totalCount: totalMsgCount,\n },\n };\n return merged;\n },\n })\n }\n />\n {/* <Text\n flex={1}\n color=\"gray.600\"\n p={0}\n m={0}\n w={'100%'}\n justifyContent={''}\n fontSize=\"lg\"\n fontWeight=\"semibold\"\n >\n {title}\n </Text> */}\n {/* <Text flex={0.1} color=\"gray.600\">\n {lastMessage?.message ?? ''}\n </Text> */}\n </Box>\n {/* <Text flex={0.2} color=\"gray.500\">\n {lastMessage ? createdAtText(lastMessage?.createdAt) : ''}\n </Text> */}\n </HStack>\n </Pressable>\n );\n};\n\nconst LastMessageComponent = ({ subscribeToNewMessages, title, lastMessage, channelId }) => {\n React.useEffect(() => subscribeToNewMessages(), [channelId]);\n return (\n <HStack space={'sm'} flex={1} justifyContent={'center'} alignItems={'center'}>\n <Box flex={0.8}>\n <Text color=\"$trueGray600\" fontSize=\"$lg\" flexWrap={'wrap'} fontWeight=\"$semibold\">\n {title}\n </Text>\n <Text color=\"$trueGray600\" numberOfLines={1}>\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n <Text color=\"$trueGray500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </Box>\n </HStack>\n );\n};\n\nexport const DialogsListItem = React.memo(DialogsListItemComponent);\n"],"names":["DialogsListItem","React","_a","_b","_c","CHAT_MESSAGE_ADDED","newMessage"],"mappings":"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"}