@messenger-box/platform-mobile 0.0.1-alpha.392 → 0.0.1-alpha.394

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -707,20 +707,22 @@ const createdAtText = (value) => {
707
707
  const DialogsListItemComponent = function DialogsListItem({ currentUser,
708
708
  // users,
709
709
  selectedChannelId, channel, onOpen, }) {
710
- var _a, _b, _c, _d;
710
+ var _a, _b, _c;
711
711
  const parentId = null;
712
- const { data: messagesQuery, loading: messageLoading, refetch: refetchMessages, } = (0, platform_client_1.useMessagesQuery)({
712
+ const [messages, setMessages] = (0, react_1.useState)([]);
713
+ const { data: messagesQuery, loading: messageLoading, refetch: refetchMessages, subscribeToMore, } = (0, platform_client_1.useMessagesQuery)({
713
714
  variables: {
714
715
  channelId: (_a = channel === null || channel === void 0 ? void 0 : channel.id) === null || _a === void 0 ? void 0 : _a.toString(),
715
716
  parentId: parentId,
716
717
  limit: 10,
717
- sort: {
718
- key: 'updatedAt',
719
- value: platform_client_1.ISortEnum.Desc,
720
- },
718
+ // sort: {
719
+ // key: 'updatedAt',
720
+ // value: ISortEnum.Desc,
721
+ // },
721
722
  //limit: 25,
722
723
  },
723
724
  fetchPolicy: 'cache-and-network',
725
+ refetchWritePolicy: 'merge',
724
726
  });
725
727
  const { data: newMessage, loading: newMsgLoading, error: newMsgError, } = (0, platform_client_1.useOnChatMessageAddedSubscription)({
726
728
  variables: {
@@ -734,10 +736,10 @@ selectedChannelId, channel, onOpen, }) {
734
736
  channelId: (_a = channel === null || channel === void 0 ? void 0 : channel.id) === null || _a === void 0 ? void 0 : _a.toString(),
735
737
  parentId: parentId,
736
738
  limit: 10,
737
- sort: {
738
- key: 'updatedAt',
739
- value: platform_client_1.ISortEnum.Desc,
740
- },
739
+ // sort: {
740
+ // key: 'updatedAt',
741
+ // value: ISortEnum.Desc,
742
+ // },
741
743
  //limit: 25
742
744
  });
743
745
  return () => {
@@ -746,29 +748,31 @@ selectedChannelId, channel, onOpen, }) {
746
748
  };
747
749
  }, []));
748
750
  react_1.default.useEffect(() => {
749
- var _a;
750
- if (newMessage) {
751
- refetchMessages({
752
- channelId: (_a = channel === null || channel === void 0 ? void 0 : channel.id) === null || _a === void 0 ? void 0 : _a.toString(),
753
- parentId: parentId,
754
- limit: 10,
755
- sort: {
756
- key: 'updatedAt',
757
- value: platform_client_1.ISortEnum.Desc,
758
- },
759
- });
751
+ var _a, _b, _c;
752
+ if (messagesQuery) {
753
+ 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) {
754
+ const msg = (_c = messagesQuery === null || messagesQuery === void 0 ? void 0 : messagesQuery.messages) === null || _c === void 0 ? void 0 : _c.data;
755
+ setMessages((pre) => [...pre, ...msg]);
756
+ }
760
757
  }
761
- }, [newMessage]);
758
+ }, [messagesQuery]);
762
759
  const lastMessage = (0, react_1.useMemo)(() => {
763
- var _a, _b;
764
- 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)) {
760
+ var _a;
761
+ if (!(messages === null || messages === void 0 ? void 0 : messages.length)) {
765
762
  return null;
766
763
  }
767
- const { data } = messagesQuery.messages;
764
+ // const { data } = messagesQuery.messages;
765
+ const data = messages;
768
766
  const filteredData = data === null || data === void 0 ? void 0 : data.filter((p) => (p === null || p === void 0 ? void 0 : p.message) !== '');
769
- return filteredData[0];
767
+ // return filteredData[0];
768
+ let filteredLastMessage = filteredData && (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length)
769
+ ? (_a = filteredData === null || filteredData === void 0 ? void 0 : filteredData.reduce((a, b) => {
770
+ 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;
771
+ }, [])) !== null && _a !== void 0 ? _a : null
772
+ : null;
773
+ return filteredLastMessage;
770
774
  //return data[data.length - 1];
771
- }, [messagesQuery]);
775
+ }, [messages]);
772
776
  const channelMembers = (0, react_1.useMemo)(() => {
773
777
  var _a, _b, _c;
774
778
  return (_c = (_b = (_a = channel === null || channel === void 0 ? void 0 : channel.members) === null || _a === void 0 ? void 0 : _a.filter((ch) => { var _a, _b; 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'; })) === null || _b === void 0 ? void 0 : _b.map((m) => m === null || m === void 0 ? void 0 : m.user)) !== null && _c !== void 0 ? _c : null;
@@ -808,14 +812,40 @@ selectedChannelId, channel, onOpen, }) {
808
812
  (channelMembers === null || channelMembers === void 0 ? void 0 : channelMembers.length) == 1 && (react_1.default.createElement(native_base_1.Avatar.Badge, { bg: "green.800", bottom: -4, right: -4 }))));
809
813
  })))),
810
814
  react_1.default.createElement(native_base_1.Box, { flex: 0.9 },
811
- react_1.default.createElement(native_base_1.HStack, { space: 1, flex: 1, direction: 'row', justifyContent: 'center', alignItems: 'center' },
812
- react_1.default.createElement(native_base_1.Box, { flex: 0.8 },
813
- react_1.default.createElement(native_base_1.Text, { color: "gray.600", fontSize: "lg", flexWrap: 'wrap', fontWeight: "semibold" }, title),
814
- react_1.default.createElement(native_base_1.Text, { color: "gray.600", noOfLines: 1 }, (_d = lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.message) !== null && _d !== void 0 ? _d : '')),
815
- react_1.default.createElement(native_base_1.Box, { flex: 0.2 },
816
- react_1.default.createElement(native_base_1.Text, { color: "gray.500" }, lastMessage ? createdAtText(lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.createdAt) : '')))))));
815
+ react_1.default.createElement(LastMessageComponent, { title: title, lastMessage: lastMessage, channelId: channel === null || channel === void 0 ? void 0 : channel.id, subscribeToNewMessages: () => {
816
+ var _a;
817
+ return subscribeToMore({
818
+ document: platform_client_1.OnChatMessageAddedDocument,
819
+ variables: {
820
+ channelId: (_a = channel.id) === null || _a === void 0 ? void 0 : _a.toString(),
821
+ },
822
+ updateQuery: (prev, { subscriptionData }) => {
823
+ var _a;
824
+ if (!subscriptionData.data)
825
+ return prev;
826
+ const newMessage = (_a = subscriptionData === null || subscriptionData === void 0 ? void 0 : subscriptionData.data) === null || _a === void 0 ? void 0 : _a.chatMessageAdded;
827
+ const existingMessages = prev === null || prev === void 0 ? void 0 : prev.messages;
828
+ const previousData = (existingMessages === null || existingMessages === void 0 ? void 0 : existingMessages.data)
829
+ ? [...existingMessages.data, newMessage]
830
+ : [];
831
+ const totalMsgCount = (existingMessages === null || existingMessages === void 0 ? void 0 : existingMessages.totalCount) + 1;
832
+ const merged = Object.assign(Object.assign({}, prev), { messages: Object.assign(Object.assign({}, existingMessages), { data: previousData, totalCount: totalMsgCount }) });
833
+ return merged;
834
+ },
835
+ });
836
+ } })))));
817
837
  };
818
838
  exports.DialogsListItemComponent = DialogsListItemComponent;
839
+ const LastMessageComponent = ({ subscribeToNewMessages, title, lastMessage, channelId }) => {
840
+ var _a;
841
+ react_1.default.useEffect(() => subscribeToNewMessages(), [channelId]);
842
+ return (react_1.default.createElement(native_base_1.HStack, { space: 1, flex: 1, direction: 'row', justifyContent: 'center', alignItems: 'center' },
843
+ react_1.default.createElement(native_base_1.Box, { flex: 0.8 },
844
+ react_1.default.createElement(native_base_1.Text, { color: "gray.600", fontSize: "lg", flexWrap: 'wrap', fontWeight: "semibold" }, title),
845
+ react_1.default.createElement(native_base_1.Text, { color: "gray.600", noOfLines: 1 }, (_a = lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.message) !== null && _a !== void 0 ? _a : '')),
846
+ react_1.default.createElement(native_base_1.Box, { flex: 0.2 },
847
+ react_1.default.createElement(native_base_1.Text, { color: "gray.500" }, lastMessage ? createdAtText(lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.createdAt) : ''))));
848
+ };
819
849
  exports.DialogsListItem = react_1.default.memo(exports.DialogsListItemComponent);
820
850
 
821
851
 
@@ -1172,6 +1202,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1172
1202
  const react_1 = __importDefault(__webpack_require__(/*! react */ "react"));
1173
1203
  const react_native_1 = __webpack_require__(/*! react-native */ "react-native");
1174
1204
  const react_native_gifted_chat_1 = __webpack_require__(/*! react-native-gifted-chat */ "react-native-gifted-chat");
1205
+ const native_base_1 = __webpack_require__(/*! native-base */ "native-base");
1175
1206
  const SlackBubble_1 = __importDefault(__webpack_require__(/*! ./SlackBubble */ "./src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx"));
1176
1207
  const { isSameUser, isSameDay } = react_native_gifted_chat_1.utils;
1177
1208
  class Message extends react_1.default.Component {
@@ -1195,19 +1226,31 @@ class Message extends react_1.default.Component {
1195
1226
  if (this.props.renderBubble) {
1196
1227
  return this.props.renderBubble(bubbleProps);
1197
1228
  }
1198
- return react_1.default.createElement(SlackBubble_1.default, Object.assign({}, bubbleProps, { isShowImageViewer: this.props.isShowImageViewer, setImageViewer: this.props.setImageViewer }));
1229
+ return (react_1.default.createElement(SlackBubble_1.default, Object.assign({}, bubbleProps, { isShowImageViewer: this.props.isShowImageViewer, setImageViewer: this.props.setImageViewer })));
1199
1230
  }
1200
1231
  renderAvatar() {
1232
+ var _a, _b, _c, _d;
1201
1233
  let extraStyle;
1234
+ //new param added
1235
+ let isSameUserAndSameDay = false;
1202
1236
  if (isSameUser(this.props.currentMessage, this.props.previousMessage) &&
1203
1237
  isSameDay(this.props.currentMessage, this.props.previousMessage)) {
1204
1238
  // Set the invisible avatar height to 0, but keep the width, padding, etc.
1205
1239
  extraStyle = { height: 0 };
1240
+ isSameUserAndSameDay = true;
1206
1241
  }
1207
1242
  const avatarProps = this.getInnerComponentProps();
1208
- return (react_1.default.createElement(react_native_gifted_chat_1.Avatar, Object.assign({}, avatarProps, { showAvatarForEveryMessage: true, imageStyle: {
1209
- left: [styles.slackAvatar, avatarProps.imageStyle, extraStyle],
1210
- } })));
1243
+ return (react_1.default.createElement(native_base_1.Avatar, { size: 'sm', bg: 'transparent', borderRadius: 0, source: {
1244
+ uri: isSameUserAndSameDay ? null : (_b = (_a = avatarProps === null || avatarProps === void 0 ? void 0 : avatarProps.currentMessage) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.avatar,
1245
+ }, marginRight: 2, _image: Object.assign(Object.assign({}, styles.slackAvatar), avatarProps.imageStyle) }, isSameUserAndSameDay ? '' : (_d = (_c = avatarProps === null || avatarProps === void 0 ? void 0 : avatarProps.currentMessage) === null || _c === void 0 ? void 0 : _c.user) === null || _d === void 0 ? void 0 : _d.name[0])
1246
+ // <Avatar
1247
+ // {...avatarProps}
1248
+ // showAvatarForEveryMessage={true}
1249
+ // imageStyle={{
1250
+ // left: [styles.slackAvatar, avatarProps.imageStyle, extraStyle],
1251
+ // }}
1252
+ // />
1253
+ );
1211
1254
  }
1212
1255
  render() {
1213
1256
  const marginBottom = isSameUser(this.props.currentMessage, this.props.nextMessage) ? 2 : 10;
@@ -1232,7 +1275,8 @@ const styles = react_native_1.StyleSheet.create({
1232
1275
  height: 40,
1233
1276
  width: 40,
1234
1277
  borderRadius: 3,
1235
- marginTop: 0,
1278
+ // marginTop: 0,
1279
+ marginTop: 1,
1236
1280
  },
1237
1281
  });
1238
1282
  Message.defaultProps = {
@@ -1597,7 +1641,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1597
1641
  exports.config = void 0;
1598
1642
  const envalid_1 = __webpack_require__(/*! envalid */ "envalid");
1599
1643
  exports.config = (0, envalid_1.cleanEnv)(process['APP_ENV'] || process.env, {
1600
- MESSAGES_PER_PAGE: (0, envalid_1.num)({ devDefault: 10, default: 10 }),
1644
+ MESSAGES_PER_PAGE: (0, envalid_1.num)({ devDefault: 20, default: 20 }),
1601
1645
  FILES_PER_MESSAGE: (0, envalid_1.num)({ default: 10 }),
1602
1646
  INBOX_MESSEGE_PATH: (0, envalid_1.str)({ default: 'MainStack.Message' }),
1603
1647
  // THREAD_MESSEGE_PATH: str({ default: 'MainStack.Thread' }),
@@ -1714,17 +1758,7 @@ const ConversationViewComponent = ({ channelId, role }) => {
1714
1758
  const isFocused = (0, native_1.useIsFocused)();
1715
1759
  const { data: mongooseObjectId, refetch: refetchNewPostId } = (0, platform_client_1.useGetNewMongooseObjectIdQuery)({
1716
1760
  fetchPolicy: 'network-only',
1717
- //pollInterval: 5000,
1718
1761
  });
1719
- // const {
1720
- // data: newMessage,
1721
- // loading: newMsgLoading,
1722
- // error: newMsgError,
1723
- // }: any = useOnChatMessageAddedSubscription({
1724
- // variables: {
1725
- // channelId: channelId?.toString(),
1726
- // },
1727
- // });
1728
1762
  const { startUpload } = (0, platform_client_1.useUploadFilesNative)();
1729
1763
  const [sendMsg] = (0, platform_client_1.useSendMessagesMutation)();
1730
1764
  const [sendExpoNotificationOnPostMutation] = (0, platform_client_1.useSendExpoNotificationOnPostMutation)();
@@ -1737,9 +1771,8 @@ const ConversationViewComponent = ({ channelId, role }) => {
1737
1771
  },
1738
1772
  skip: !channelId,
1739
1773
  fetchPolicy: 'cache-and-network',
1774
+ nextFetchPolicy: 'cache-first',
1740
1775
  refetchWritePolicy: 'merge',
1741
- // fetchPolicy: 'cache-and-network',
1742
- // nextFetchPolicy: 'cache-first',
1743
1776
  });
1744
1777
  const { data: channelsDetail, loading: channelLoading, refetch: refetchChannelDetail, } = (0, platform_client_1.useViewChannelDetailQuery)({
1745
1778
  variables: {
@@ -1747,14 +1780,6 @@ const ConversationViewComponent = ({ channelId, role }) => {
1747
1780
  },
1748
1781
  });
1749
1782
  // const { data: users } = useGetAllUsersQuery();
1750
- // const { data: checkForMessages }: any = useCheckForNewMessagesQuery({
1751
- // variables: {
1752
- // channelId: channelId?.toString(),
1753
- // },
1754
- // skip: !channelId,
1755
- // fetchPolicy: 'network-only',
1756
- // pollInterval: 5000,
1757
- // });
1758
1783
  (0, native_1.useFocusEffect)(react_1.default.useCallback(() => {
1759
1784
  // Do something when the screen is focused
1760
1785
  setSkip(0);
@@ -1770,83 +1795,20 @@ const ConversationViewComponent = ({ channelId, role }) => {
1770
1795
  }
1771
1796
  const { data: messages, totalCount } = data.messages;
1772
1797
  setTotalCount(totalCount);
1773
- setChannelMessages((oldMessages) => (0, lodash_1.uniqBy)([...oldMessages, ...messages], ({ id }) => id));
1798
+ setChannelMessages(messages);
1774
1799
  });
1775
1800
  return () => {
1776
1801
  // Do something when the screen is unfocused
1777
1802
  // Useful for cleanup functions
1778
1803
  setTotalCount(0);
1779
1804
  setChannelMessages([]);
1805
+ setSkip(0);
1780
1806
  };
1781
1807
  }, [isFocused]));
1782
1808
  react_1.default.useEffect(() => {
1783
1809
  if (selectedImage)
1784
1810
  setImageLoading(false);
1785
1811
  }, [selectedImage]);
1786
- // const currentUser = useMemo(
1787
- // () => users?.getUsers?.find(({ alias }: any) => alias?.includes(auth?.auth0UserId)),
1788
- // [users, auth],
1789
- // );
1790
- // useEffect(() => {
1791
- // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {
1792
- // const { data: messages, totalCount: messeageTotalCount } = data.messages;
1793
- // if (messages && messages.length > 0) {
1794
- // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));
1795
- // }
1796
- // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);
1797
- // }
1798
- // }, [data, loadingOldMessages, channelMessages]);
1799
- // useEffect(() => {
1800
- // if (data?.messages?.data) {
1801
- // const { data: messages, totalCount: messeageTotalCount } = data.messages;
1802
- // if (
1803
- // messages &&
1804
- // messages.length > 0 &&
1805
- // totalCount !== messeageTotalCount &&
1806
- // (loadingOldMessages || channelMessages.length === 0)
1807
- // ) {
1808
- // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));
1809
- // setLoadingOldMessages(false);
1810
- // setTotalCount(messeageTotalCount);
1811
- // }
1812
- // // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);
1813
- // }
1814
- // }, [data, loadingOldMessages, channelMessages]);///
1815
- ////......... initiate messages ......................////
1816
- // useEffect(() => {
1817
- // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {
1818
- // console.log('loading msg')
1819
- // const { data: messages, totalCount: messeageTotalCount } = data.messages;
1820
- // if (messages && messages.length > 0) {
1821
- // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));
1822
- // setLoadingOldMessages(false);
1823
- // }
1824
- // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);
1825
- // }
1826
- // }, [data, loadingOldMessages, channelMessages, totalCount]);
1827
- ////.... initiate messages end................................////
1828
- // useEffect(() => {
1829
- // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {
1830
- // console.log('initiate msg')
1831
- // const { data: messages, totalCount: messeageTotalCount } = data.messages;
1832
- // if (messages && messages.length > 0) {
1833
- // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));
1834
- // setTotalCount(messeageTotalCount);
1835
- // }
1836
- // if(loadingOldMessages) setLoadingOldMessages(false);
1837
- // }
1838
- // }, [data, channelMessages,loadingOldMessages]);
1839
- // useEffect(() => {
1840
- // if ((data?.messages?.data && channelMessages.length === 0) || (data?.messages?.data && loadingOldMessages)) {
1841
- // const { data: messages, totalCount: messeageTotalCount } = data.messages;
1842
- // if (messages && messages.length > 0) {
1843
- // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));
1844
- // setTotalCount(messeageTotalCount);
1845
- // }
1846
- // setLoadEarlierMsg(false);
1847
- // if (loadingOldMessages) setLoadingOldMessages(false);
1848
- // }
1849
- // }, [data, loadingOldMessages, channelMessages]);
1850
1812
  (0, react_1.useEffect)(() => {
1851
1813
  var _a;
1852
1814
  if ((_a = data === null || data === void 0 ? void 0 : data.messages) === null || _a === void 0 ? void 0 : _a.data) {
@@ -1855,127 +1817,36 @@ const ConversationViewComponent = ({ channelId, role }) => {
1855
1817
  (messages && messages.length > 0 && (loadingOldMessages || channelMessages.length === 0))) {
1856
1818
  setChannelMessages((oldMessages) => (0, lodash_1.uniqBy)([...messages, ...oldMessages], ({ id }) => id));
1857
1819
  setTotalCount(messeageTotalCount);
1858
- setLoadEarlierMsg(false);
1859
1820
  }
1860
1821
  if (loadingOldMessages && channelMessages)
1861
1822
  setLoadingOldMessages(false);
1862
- if (channelMessages &&
1863
- (channelMessages === null || channelMessages === void 0 ? void 0 : channelMessages.length) == MESSAGES_PER_PAGE &&
1864
- totalCount > (channelMessages === null || channelMessages === void 0 ? void 0 : channelMessages.length)) {
1865
- onFetchOld();
1866
- }
1867
1823
  }
1868
1824
  }, [data, loadingOldMessages, channelMessages, totalCount]);
1869
- // React.useEffect(() => {
1870
- // if (newMessage) {
1871
- // const msg = newMessage?.chatMessageAdded;
1872
- // setTotalCount((preCount: any) => preCount + 1);
1873
- // setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, msg], ({ id }) => id));
1874
- // }
1875
- // }, [newMessage]);
1876
- // useEffect(() => {
1877
- // if (data?.messages?.data) {
1878
- // const { data: messages, totalCount: messeageTotalCount } = data.messages;
1879
- // console.log('messeageTotalCount',messeageTotalCount)
1880
- // console.log('totalCount',totalCount)
1881
- // if (messages && messages.length > 0) {
1882
- // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));
1883
- // }
1884
- // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);
1885
- // }
1886
- // }, [data]);
1887
- // useEffect(() => {
1888
- // if (checkForMessages?.messages?.totalCount > totalCount) {
1889
- // const numberOfNewMessages = checkForMessages?.messages?.totalCount - totalCount;
1890
- // refetch({
1891
- // limit: numberOfNewMessages,
1892
- // }).then(({ data }) => {
1893
- // if (!data?.messages) {
1894
- // return;
1895
- // }
1896
- // const { data: messages, totalCount }:any = data.messages;
1897
- // setTotalCount(totalCount);
1898
- // setChannelMessages((oldMessages:any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));
1899
- // });
1900
- // }
1901
- // }, [checkForMessages, totalCount]);
1902
- ////////...............New msg check...........////
1903
- // useEffect(() => {
1904
- // if (
1905
- // !messageLoading &&
1906
- // checkForMessages?.messages?.totalCount &&
1907
- // checkForMessages?.messages?.totalCount > totalCount
1908
- // ) {
1909
- // const numberOfNewMessages = checkForMessages?.messages?.totalCount - totalCount;
1910
- // console.log('new msg check');
1911
- // refetch({
1912
- // channelId: channelId?.toString(),
1913
- // parentId: null,
1914
- // limit: numberOfNewMessages,
1915
- // }).then(({ data }) => {
1916
- // if (!data?.messages) {
1917
- // return;
1918
- // }
1919
- // const { data: messages, totalCount }: any = data.messages;
1920
- // setTotalCount(totalCount);
1921
- // setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));
1922
- // });
1923
- // }
1924
- // }, [checkForMessages, totalCount]);
1925
- ////////////....new msg check end.........//
1926
- // const onFetchOld = useCallback(() => {
1927
- // // if (data?.messages?.totalCount > channelMessages.length) {
1928
- // //if(channelMessages.length !== data?.messages?.totalCount){
1929
- // if(totalCount > channelMessages.length){
1930
- // setLoadingOldMessages(true);
1931
- // refetch({ skip: channelMessages.length });
1932
- // }
1933
- // }, [data, channelMessages]);
1934
- // const onFetchOld = () => {
1935
- // // if (data?.messages?.totalCount > channelMessages.length) {
1936
- // //if(channelMessages.length !== data?.messages?.totalCount){
1937
- // if(totalCount > channelMessages.length){
1938
- // setLoadingOldMessages(true);
1939
- // refetch({ skip: channelMessages.length });
1940
- // }
1941
- // };
1942
- // const onFetchOld = useCallback(() => {
1943
- // if (data?.messages?.totalCount > channelMessages.length) {
1944
- // console.log('fetchmore')
1945
- // refetch({ channelId: channelId?.toString(), parentId: null, skip: channelMessages.length })?.then((res:any)=>{
1946
- // setLoadingOldMessages(true);
1947
- // });
1948
- // }
1949
- // }, [data, channelMessages]);
1950
- const onFetchOld = (0, react_1.useCallback)(() => {
1951
- var _a;
1825
+ const onFetchOld = (0, react_1.useCallback)(async () => {
1952
1826
  if (totalCount > channelMessages.length && !loadingOldMessages) {
1953
- setSkip(channelMessages.length);
1954
1827
  setLoadEarlierMsg(true);
1955
- (_a = fetchMoreMessages({
1956
- variables: {
1957
- channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
1958
- parentId: null,
1959
- skip: channelMessages.length,
1960
- },
1961
- })) === null || _a === void 0 ? void 0 : _a.then((res) => {
1962
- setLoadingOldMessages(true);
1963
- });
1964
- // refetch({ channelId: channelId?.toString(), parentId: null, skip: channelMessages.length })?.then(
1965
- // (res: any) => setLoadingOldMessages(true),
1966
- // );
1828
+ try {
1829
+ const response = await fetchMoreMessages({
1830
+ variables: {
1831
+ channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
1832
+ parentId: null,
1833
+ skip: channelMessages.length,
1834
+ },
1835
+ });
1836
+ if (response === null || response === void 0 ? void 0 : response.data) {
1837
+ setSkip(channelMessages.length);
1838
+ setLoadEarlierMsg(false);
1839
+ setLoadingOldMessages(true);
1840
+ }
1841
+ }
1842
+ catch (error) {
1843
+ setLoadEarlierMsg(false);
1844
+ }
1845
+ // ?.then((res: any) => {
1846
+ // setLoadingOldMessages(true);
1847
+ // });
1967
1848
  }
1968
1849
  }, [totalCount, channelMessages]);
1969
- // const onFetchOld = () => {
1970
- // if(totalCount > channelMessages.length){
1971
- // console.log('totalCount',totalCount)
1972
- // console.log('channelMessages.length',channelMessages.length)
1973
- // setLoadingOldMessages(true);
1974
- // refetch({
1975
- // skip: channelMessages.length
1976
- // });
1977
- // }
1978
- // };
1979
1850
  // const isCloseToTop = ({ layoutMeasurement, contentOffset, contentSize }) => {
1980
1851
  // return contentOffset.y <= 100; // 100px from top
1981
1852
  // };
@@ -2009,123 +1880,6 @@ const ConversationViewComponent = ({ channelId, role }) => {
2009
1880
  if (imageSource.cancelled)
2010
1881
  setLoading(false);
2011
1882
  };
2012
- // const sendPushNotification = async (title: String, body: String, data: any, to: any) => {
2013
- // try {
2014
- // const response = await fetch('https://exp.host/--/api/v2/push/send/', {
2015
- // method: 'POST',
2016
- // headers: {
2017
- // Accept: 'application/json',
2018
- // 'Accept-Encoding': 'gzip, deflate',
2019
- // 'Content-Type': 'application/json',
2020
- // },
2021
- // body: JSON.stringify({
2022
- // to: to,
2023
- // data: data,
2024
- // title: title,
2025
- // body: body,
2026
- // sound: Platform.OS === 'android' ? undefined || null : 'default',
2027
- // }),
2028
- // });
2029
- // const result: any = await response.json();
2030
- // console.log('expo api response', result);
2031
- // } catch (error) {
2032
- // console.error('Error:', error);
2033
- // }
2034
- // // fetch('https://exp.host/--/api/v2/push/send/', {
2035
- // // method: 'POST',
2036
- // // headers: {
2037
- // // Accept: 'application/json',
2038
- // // 'Accept-Encoding': 'gzip, deflate',
2039
- // // 'Content-Type': 'application/json',
2040
- // // },
2041
- // // body: JSON.stringify({
2042
- // // to: to,
2043
- // // data: data,
2044
- // // title: title,
2045
- // // body: body,
2046
- // // sound: Platform.OS === 'android' ? null : 'default',
2047
- // // }),
2048
- // // });
2049
- // };
2050
- // const handleSend = useCallback(
2051
- // async (message: string) => {
2052
- // // if (!(message && channelId)) {
2053
- // // return;
2054
- // // }
2055
- // if (!channelId) return;
2056
- // if (!message && message != ' ' && images.length == 0) return;
2057
- // setLoading(true);
2058
- // const { data } = await sendMsg({
2059
- // variables: {
2060
- // channelId,
2061
- // content: message,
2062
- // },
2063
- // update: (cache, { data, errors }) => {
2064
- // if (!data || errors) {
2065
- // setLoading(false);
2066
- // return;
2067
- // }
2068
- // setChannelMessages((messages) => [...messages, data?.sendMessage]);
2069
- // setTotalCount((t) => t + 1);
2070
- // setChannelToTop(channelToTop + 1);
2071
- // setLoading(false);
2072
- // const title: String = currentUser?.givenName+' '+currentUser?.familyName+' in Followup Chat';
2073
- // const body: String = message;
2074
- // const notificationData: any = {
2075
- // url: config.INBOX_MESSEGE_PATH,
2076
- // params: { channelId, hideTabBar: true },
2077
- // screen: 'DialogMessages',
2078
- // };
2079
- // console.log('expo to',JSON.stringify(expoTokens));
2080
- // if (expoTokens?.length > 0) {
2081
- // const to: any = expoTokens?.length > 0 ? expoTokens : [];
2082
- // sendPushNotification(title, body, notificationData, to);
2083
- // }
2084
- // setMsg('');
2085
- // },
2086
- // });
2087
- // if (images && images.length > 0 && data?.sendMessage?.id) {
2088
- // const { id: postId } = data.sendMessage;
2089
- // setLoading(true);
2090
- // const uploadResponse = await startUpload({
2091
- // file: images,
2092
- // saveUploadedFile: {
2093
- // variables: {
2094
- // postId,
2095
- // },
2096
- // },
2097
- // createUploadLink: {
2098
- // variables: {
2099
- // postId,
2100
- // },
2101
- // },
2102
- // });
2103
- // if (uploadResponse?.error) setLoading(false);
2104
- // const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];
2105
- // if (uploadResponse.data) {
2106
- // setImage('');
2107
- // setFiles([]);
2108
- // setImages([]);
2109
- // setLoading(false);
2110
- // }
2111
- // setChannelMessages((messages) =>
2112
- // messages.map((message) => {
2113
- // if (message.id === postId) {
2114
- // return {
2115
- // ...message,
2116
- // files: {
2117
- // totalCount: uploadedFiles.length,
2118
- // data: uploadedFiles,
2119
- // },
2120
- // };
2121
- // }
2122
- // return message;
2123
- // }),
2124
- // );
2125
- // }
2126
- // },
2127
- // [setChannelMessages, currentUser, channelId, images,expoTokens],
2128
- // );
2129
1883
  const handleSend = (0, react_1.useCallback)(async (message) => {
2130
1884
  var _a, _b, _c;
2131
1885
  if (!channelId)
@@ -2141,7 +1895,6 @@ const ConversationViewComponent = ({ channelId, role }) => {
2141
1895
  if (images && images.length > 0) {
2142
1896
  const newPostId = await refetchNewPostId();
2143
1897
  const postId = (_b = (_a = newPostId === null || newPostId === void 0 ? void 0 : newPostId.data) === null || _a === void 0 ? void 0 : _a.getNewMongooseObjectId) === null || _b === void 0 ? void 0 : _b.toString();
2144
- // const postId: any = mongooseObjectId?.getNewMongooseObjectId;
2145
1898
  setLoading(true);
2146
1899
  const uploadResponse = await startUpload({
2147
1900
  file: images,
@@ -2178,22 +1931,9 @@ const ConversationViewComponent = ({ channelId, role }) => {
2178
1931
  setLoading(false);
2179
1932
  return;
2180
1933
  }
2181
- // setChannelMessages((messages: any) => [
2182
- // ...messages,
2183
- // {
2184
- // ...data?.sendMessage,
2185
- // files: {
2186
- // totalCount: uploadedFiles.length,
2187
- // data: uploadedFiles,
2188
- // },
2189
- // },
2190
- // ]);
2191
- // setTotalCount((t: any) => t + 1);
2192
1934
  setChannelToTop(channelToTop + 1);
2193
1935
  setLoading(false);
2194
1936
  setMsg('');
2195
- const msg = message == '' ? 'Send a file' : message;
2196
- //sendPushNotification(data?.sendMessage, channelId);
2197
1937
  },
2198
1938
  });
2199
1939
  }
@@ -2211,157 +1951,13 @@ const ConversationViewComponent = ({ channelId, role }) => {
2211
1951
  setLoading(false);
2212
1952
  return;
2213
1953
  }
2214
- // setChannelMessages((messages: any) => [...messages, data?.sendMessage]);
2215
- // setTotalCount((t: any) => t + 1);
2216
1954
  setChannelToTop(channelToTop + 1);
2217
1955
  setLoading(false);
2218
1956
  setMsg('');
2219
- // sendPushNotification(data?.sendMessage, channelId);
2220
1957
  },
2221
1958
  });
2222
1959
  }
2223
1960
  }, [mongooseObjectId, setChannelMessages, channelId, images, channelToTop, expoTokens]);
2224
- // const sendPushNotification = async (post: IPost, channelId: string) => {
2225
- // const notificationData: IExpoNotificationData = {
2226
- // url: config.INBOX_MESSEGE_PATH,
2227
- // params: { channelId, hideTabBar: true },
2228
- // screen: 'DialogMessages',
2229
- // other: { sound: Platform.OS === 'android' ? undefined || null : 'default' },
2230
- // };
2231
- // await sendExpoNotificationOnPostMutation({
2232
- // variables: {
2233
- // postId: post?.id?.toString(),
2234
- // notificationData,
2235
- // },
2236
- // });
2237
- // };
2238
- // const fetchTokenAndSendPushNotification = (message: any, channelId: any) => {
2239
- // const givenName = auth?.profile?.given_name ?? '';
2240
- // const familyName = auth?.profile?.family_name ?? '';
2241
- // const fullName = givenName ? givenName + ' ' + familyName : '';
2242
- // const title: String = fullName ? fullName : 'Message';
2243
- // const body: String = message;
2244
- // const notificationData: any = {
2245
- // url: config.INBOX_MESSEGE_PATH,
2246
- // params: { channelId, hideTabBar: true },
2247
- // screen: 'DialogMessages',
2248
- // };
2249
- // refetchChannelDetail({ id: channelId?.toString() })?.then((res: any) => {
2250
- // if (res?.data?.viewChannelDetail?.members?.length) {
2251
- // const channelData: any =
2252
- // res?.data?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != auth?.id) ?? [];
2253
- // const tokens: any =
2254
- // channelData
2255
- // ?.map(
2256
- // (u: any) =>
2257
- // u?.user?.tokens
2258
- // ?.filter((t: any) => t?.type == 'EXPO_NOTIFICATION_TOKEN')
2259
- // ?.map((et: any) => et?.token) ?? [],
2260
- // )
2261
- // ?.flat(1)
2262
- // ?.filter((t: any) => t)
2263
- // ?.filter((value: any, index: any, array: any) => array.indexOf(value) === index) ?? [];
2264
- // console.log('expo to', JSON.stringify(tokens));
2265
- // if (tokens?.length > 0) {
2266
- // const to: any = tokens?.length > 0 ? tokens : [];
2267
- // sendPushNotification(title, body, notificationData, to);
2268
- // }
2269
- // }
2270
- // });
2271
- // };
2272
- // const handleSend1 = async (message: string) => {
2273
- // if (!channelId) return;
2274
- // if (!message && message != ' ' && images.length == 0) return;
2275
- // setLoading(true);
2276
- // const { data } = await sendMsg({
2277
- // variables: {
2278
- // channelId,
2279
- // content: message,
2280
- // },
2281
- // update: (cache, { data, errors }: any) => {
2282
- // if (!data || errors) {
2283
- // setLoading(false);
2284
- // return;
2285
- // }
2286
- // setChannelMessages((messages: any) => [...messages, data?.sendMessage]);
2287
- // setTotalCount((t: any) => t + 1);
2288
- // setChannelToTop(channelToTop + 1);
2289
- // setLoading(false);
2290
- // setMsg('');
2291
- // const givenName = auth?.profile?.given_name ?? '';
2292
- // const familyName = auth?.profile?.family_name ?? '';
2293
- // const fullName = givenName ? givenName + ' ' + familyName : '';
2294
- // const title: String = fullName ? fullName : 'Message';
2295
- // const body: String = message;
2296
- // const notificationData: any = {
2297
- // url: config.INBOX_MESSEGE_PATH,
2298
- // params: { channelId, hideTabBar: true },
2299
- // screen: 'DialogMessages',
2300
- // };
2301
- // refetchChannelDetail({ id: channelId?.toString() })?.then((res: any) => {
2302
- // if (res?.data?.viewChannelDetail?.members?.length) {
2303
- // const channelData: any =
2304
- // res?.data?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != auth?.id) ?? [];
2305
- // const tokens: any =
2306
- // channelData
2307
- // ?.map(
2308
- // (u: any) =>
2309
- // u?.user?.tokens
2310
- // ?.filter((t: any) => t?.type == 'EXPO_NOTIFICATION_TOKEN')
2311
- // ?.map((et: any) => et?.token) ?? [],
2312
- // )
2313
- // ?.flat(1)
2314
- // ?.filter((t: any) => t)
2315
- // ?.filter((value: any, index: any, array: any) => array.indexOf(value) === index) ?? [];
2316
- // console.log('expo to', JSON.stringify(tokens));
2317
- // if (tokens?.length > 0) {
2318
- // const to: any = tokens?.length > 0 ? tokens : [];
2319
- // sendPushNotification(title, body, notificationData, to);
2320
- // }
2321
- // }
2322
- // });
2323
- // },
2324
- // });
2325
- // if (images && images.length > 0 && data?.sendMessage?.id) {
2326
- // const { id: postId } = data.sendMessage;
2327
- // setLoading(true);
2328
- // const uploadResponse = await startUpload({
2329
- // file: images,
2330
- // saveUploadedFile: {
2331
- // variables: {
2332
- // postId,
2333
- // },
2334
- // },
2335
- // createUploadLink: {
2336
- // variables: {
2337
- // postId,
2338
- // },
2339
- // },
2340
- // });
2341
- // if (uploadResponse?.error) setLoading(false);
2342
- // const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];
2343
- // if (uploadResponse.data) {
2344
- // setImage('');
2345
- // setFiles([]);
2346
- // setImages([]);
2347
- // setLoading(false);
2348
- // }
2349
- // setChannelMessages((messages: any) =>
2350
- // messages.map((message: any) => {
2351
- // if (message.id === postId) {
2352
- // return {
2353
- // ...message,
2354
- // files: {
2355
- // totalCount: uploadedFiles.length,
2356
- // data: uploadedFiles,
2357
- // },
2358
- // };
2359
- // }
2360
- // return message;
2361
- // }),
2362
- // );
2363
- // }
2364
- // };
2365
1961
  const messageList = (0, react_1.useMemo)(() => {
2366
1962
  let currentDate = '';
2367
1963
  let res = [];
@@ -2527,7 +2123,7 @@ const ConversationViewComponent = ({ channelId, role }) => {
2527
2123
  expiresIn: 86400,
2528
2124
  }, alt: 'image' }));
2529
2125
  }, [imageObject]);
2530
- const renderMessage = (props) => {
2126
+ const renderMessage = (0, react_1.useCallback)((props) => {
2531
2127
  // const {
2532
2128
  // currentMessage: { text: currText },
2533
2129
  // } = props;
@@ -2541,44 +2137,30 @@ const ConversationViewComponent = ({ channelId, role }) => {
2541
2137
  // }
2542
2138
  // }
2543
2139
  // return <SlackMessage {...props} messageTextStyle={messageTextStyle} />;
2544
- return react_1.default.createElement(SlackMessageContainer_1.SlackMessage, Object.assign({}, props, { isShowImageViewer: isShowImageViewer, setImageViewer: setImageViewerObject }));
2545
- };
2546
- let onScroll = false;
2547
- // const onEndReached = () => {
2548
- // console.log('on end reached');
2549
- // if (!onScroll) return;
2550
- // // load messages, show ActivityIndicator
2551
- // onScroll = false;
2552
- // // setLoadingOldMessages(true);
2553
- // };
2554
- // const onMomentumScrollBegin = useCallback(
2555
- // ({ nativeEvent }: any) => {
2556
- // onScroll = true;
2557
- // console.log('scroll top');
2558
- // if (!loadingOldMessages && channelMessages?.length <= 10 && channelMessages?.length != totalCount) {
2559
- // onFetchOld();
2560
- // } else if (!loadingOldMessages && isCloseToTop(nativeEvent) && channelMessages?.length != totalCount) {
2561
- // onFetchOld();
2562
- // }
2563
- // },
2564
- // [loadingOldMessages, channelMessages],
2565
- // );
2566
- // const onMomentumScrollBegin = ({ nativeEvent }: any) => {
2567
- // onScroll = true;
2568
- // console.log('scroll top');
2569
- // if (
2570
- // !loadingOldMessages &&
2571
- // (channelMessages?.length <= 10 || isCloseToTop(nativeEvent)) &&
2572
- // channelMessages?.length != totalCount
2573
- // ) {
2574
- // onFetchOld();
2575
- // }
2140
+ return (react_1.default.createElement(SlackMessageContainer_1.SlackMessage, Object.assign({}, props, { isShowImageViewer: isShowImageViewer, setImageViewer: setImageViewerObject })));
2141
+ }, [isShowImageViewer]);
2142
+ // const renderMessage = (props: any) => {
2143
+ // // const {
2144
+ // // currentMessage: { text: currText },
2145
+ // // } = props;
2146
+ // //let messageTextStyle: any;
2147
+ // // Make "pure emoji" messages much bigger than plain text.
2148
+ // // if (currText && emojiUtils.isPureEmojiString(currText)) {
2149
+ // // messageTextStyle = {
2150
+ // // fontSize: 28,
2151
+ // // // Emoji get clipped if lineHeight isn't increased; make it consistent across platforms.
2152
+ // // lineHeight: Platform.OS === 'android' ? 34 : 30,
2153
+ // // }
2154
+ // // }
2155
+ // // return <SlackMessage {...props} messageTextStyle={messageTextStyle} />;
2156
+ // return <SlackMessage {...props} isShowImageViewer={isShowImageViewer} setImageViewer={setImageViewerObject} />;
2576
2157
  // };
2577
- const onMomentumScrollBegin = ({ nativeEvent }) => {
2158
+ let onScroll = false;
2159
+ const onMomentumScrollBegin = async ({ nativeEvent }) => {
2578
2160
  onScroll = true;
2579
2161
  console.log('scroll top');
2580
2162
  if (!loadingOldMessages && isCloseToTop(nativeEvent) && totalCount > (channelMessages === null || channelMessages === void 0 ? void 0 : channelMessages.length)) {
2581
- onFetchOld();
2163
+ await onFetchOld();
2582
2164
  }
2583
2165
  };
2584
2166
  const onEndReached = () => {
@@ -2629,7 +2211,7 @@ const ConversationViewComponent = ({ channelId, role }) => {
2629
2211
  // }
2630
2212
  renderMessageText: renderMessageText, minInputToolbarHeight: 50, renderActions: renderActions, renderAccessory: renderAccessory, renderMessage: renderMessage, renderChatFooter: () => (react_1.default.createElement(react_1.default.Fragment, null,
2631
2213
  react_1.default.createElement(SlackMessageContainer_1.ImageViewerModal, { isVisible: isShowImageViewer, setVisible: setImageViewer, modalContent: modalContent }),
2632
- react_1.default.createElement(SubscriptionHandler, { subscribeToNewMessages: () => subscribeToMore({
2214
+ react_1.default.createElement(SubscriptionHandler, { channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(), subscribeToNewMessages: () => subscribeToMore({
2633
2215
  document: platform_client_1.OnChatMessageAddedDocument,
2634
2216
  variables: {
2635
2217
  channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
@@ -2638,16 +2220,12 @@ const ConversationViewComponent = ({ channelId, role }) => {
2638
2220
  var _a, _b, _c;
2639
2221
  if (!subscriptionData.data)
2640
2222
  return prev;
2223
+ setSkip(0);
2641
2224
  const newMessage = (_a = subscriptionData === null || subscriptionData === void 0 ? void 0 : subscriptionData.data) === null || _a === void 0 ? void 0 : _a.chatMessageAdded;
2642
2225
  const previousData = ((_b = prev === null || prev === void 0 ? void 0 : prev.messages) === null || _b === void 0 ? void 0 : _b.data)
2643
2226
  ? [...prev.messages.data, newMessage]
2644
2227
  : [];
2645
2228
  const totalMsgCount = ((_c = prev === null || prev === void 0 ? void 0 : prev.messages) === null || _c === void 0 ? void 0 : _c.totalCount) + 1;
2646
- // const merged = {
2647
- // ...prev,
2648
- // data: previousData,
2649
- // totalCount: totalMsgCount,
2650
- // };
2651
2229
  const merged = Object.assign(Object.assign({}, prev), { messages: Object.assign(Object.assign({}, prev === null || prev === void 0 ? void 0 : prev.messages), { data: previousData, totalCount: totalMsgCount }) });
2652
2230
  return merged;
2653
2231
  // return Object.assign({}, prev, {
@@ -2663,8 +2241,8 @@ const ConversationViewComponent = ({ channelId, role }) => {
2663
2241
  disabled: true,
2664
2242
  } })));
2665
2243
  };
2666
- const SubscriptionHandler = ({ subscribeToNewMessages }) => {
2667
- (0, react_1.useEffect)(() => subscribeToNewMessages(), []);
2244
+ const SubscriptionHandler = ({ subscribeToNewMessages, channelId }) => {
2245
+ (0, react_1.useEffect)(() => subscribeToNewMessages(), [channelId]);
2668
2246
  return react_1.default.createElement(react_1.default.Fragment, null);
2669
2247
  };
2670
2248
  exports.ConversationView = react_1.default.memo(ConversationViewComponent);
@@ -3026,84 +2604,146 @@ const ThreadConversationViewComponent = ({ channelId, postParentId, isPostParent
3026
2604
  });
3027
2605
  const [sendThreadMessage] = (0, platform_client_1.useSendThreadMessageMutation)();
3028
2606
  const [sendExpoNotificationOnPostMutation] = (0, platform_client_1.useSendExpoNotificationOnPostMutation)();
3029
- const [getThreadMessages, { data: threadMessagesData, loading: threadLoading, refetch: refetchThreadMessages }] = (0, platform_client_1.useThreadMessagesLazyQuery)({
3030
- variables: {
3031
- channelId: !parentId || parentId == 0 ? null : channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
3032
- role: role === null || role === void 0 ? void 0 : role.toString(),
3033
- postParentId: !parentId || parentId == 0 ? null : parentId === null || parentId === void 0 ? void 0 : parentId.toString(),
3034
- },
3035
- fetchPolicy: 'cache-and-network',
3036
- });
3037
- const { data, loading: messageLoading, refetch, fetchMore: fetchMoreMessages, subscribeToMore, } = (0, platform_client_1.usePostThreadMessagesQuery)({
3038
- variables: {
3039
- channelId: !parentId || parentId == 0 ? null : channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
3040
- parentId: !parentId || parentId == 0 ? null : parentId === null || parentId === void 0 ? void 0 : parentId.toString(),
3041
- limit: MESSAGES_PER_PAGE,
3042
- skip: skip,
3043
- },
3044
- skip: !channelId,
3045
- fetchPolicy: 'cache-and-network',
3046
- refetchWritePolicy: 'merge',
3047
- });
2607
+ // const [getThreadMessages, { data: threadMessagesData, loading: threadLoading, refetch: refetchThreadMessages }] =
2608
+ // useThreadMessagesLazyQuery({
2609
+ // variables: {
2610
+ // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),
2611
+ // role: role?.toString(),
2612
+ // postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),
2613
+ // },
2614
+ // fetchPolicy: 'cache-and-network',
2615
+ // });
2616
+ const [getThreadMessages, { data, loading: threadLoading, fetchMore: fetchMoreMessages, refetch: refetchThreadMessages, subscribeToMore },] = (0, platform_client_1.useThreadMessagesLazyQuery)();
2617
+ // const {
2618
+ // data,
2619
+ // loading: messageLoading,
2620
+ // refetch,
2621
+ // fetchMore: fetchMoreMessages,
2622
+ // subscribeToMore,
2623
+ // }: any = usePostThreadMessagesQuery({
2624
+ // variables: {
2625
+ // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),
2626
+ // parentId: !parentId || parentId == 0 ? null : parentId?.toString(),
2627
+ // limit: MESSAGES_PER_PAGE,
2628
+ // skip: skip,
2629
+ // },
2630
+ // skip: !channelId,
2631
+ // fetchPolicy: 'cache-and-network',
2632
+ // refetchWritePolicy: 'merge',
2633
+ // });
2634
+ // useFocusEffect(
2635
+ // React.useCallback(() => {
2636
+ // navigation?.setOptions({ title: params?.title ?? 'Thread' });
2637
+ // if (parentId || parentId == 0) {
2638
+ // refetchThreadMessages({
2639
+ // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),
2640
+ // role: role?.toString(),
2641
+ // postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),
2642
+ // });
2643
+ // }
2644
+ // refetch({
2645
+ // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),
2646
+ // parentId: !parentId || parentId == 0 ? null : parentId?.toString(),
2647
+ // limit: MESSAGES_PER_PAGE,
2648
+ // skip: 0,
2649
+ // }).then(({ data }) => {
2650
+ // if (!data?.messages) {
2651
+ // return;
2652
+ // }
2653
+ // const { data: messages, totalCount }: any = data.messages;
2654
+ // setTotalCount(totalCount);
2655
+ // setChannelMessages(messages);
2656
+ // //setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));
2657
+ // });
2658
+ // return () => {
2659
+ // setTotalCount(0);
2660
+ // setChannelMessages([]);
2661
+ // setThreadPost([]);
2662
+ // };
2663
+ // }, [channelId, parentId]),
2664
+ // );
3048
2665
  (0, native_1.useFocusEffect)(react_1.default.useCallback(() => {
3049
2666
  var _a;
3050
2667
  navigation === null || navigation === void 0 ? void 0 : navigation.setOptions({ title: (_a = params === null || params === void 0 ? void 0 : params.title) !== null && _a !== void 0 ? _a : 'Thread' });
3051
- if (parentId || parentId == 0) {
2668
+ if (postParentId) {
3052
2669
  refetchThreadMessages({
3053
- channelId: !parentId || parentId == 0 ? null : channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
2670
+ channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
3054
2671
  role: role === null || role === void 0 ? void 0 : role.toString(),
3055
- postParentId: !parentId || parentId == 0 ? null : parentId === null || parentId === void 0 ? void 0 : parentId.toString(),
2672
+ postParentId: postParentId === null || postParentId === void 0 ? void 0 : postParentId.toString(),
2673
+ selectedFields: 'id channel post replies replyCount lastReplyAt createdAt updatedAt',
2674
+ repliesLimit2: MESSAGES_PER_PAGE,
2675
+ repliesSkip2: 0,
2676
+ skip: 0,
2677
+ limit: 1,
3056
2678
  });
3057
2679
  }
3058
- refetch({
3059
- channelId: !parentId || parentId == 0 ? null : channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
3060
- parentId: !parentId || parentId == 0 ? null : parentId === null || parentId === void 0 ? void 0 : parentId.toString(),
3061
- limit: MESSAGES_PER_PAGE,
3062
- skip: 0,
3063
- }).then(({ data }) => {
3064
- if (!(data === null || data === void 0 ? void 0 : data.messages)) {
3065
- return;
3066
- }
3067
- const { data: messages, totalCount } = data.messages;
3068
- setTotalCount(totalCount);
3069
- setChannelMessages(messages);
3070
- //setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));
3071
- });
2680
+ setParentId(postParentId);
3072
2681
  return () => {
3073
2682
  setTotalCount(0);
3074
2683
  setChannelMessages([]);
3075
2684
  setThreadPost([]);
3076
2685
  };
3077
- }, [channelId, parentId]));
3078
- (0, react_1.useEffect)(() => {
3079
- setParentId(postParentId);
3080
- }, [postParentId]);
2686
+ }, [postParentId]));
2687
+ // useEffect(() => {
2688
+ // setParentId(postParentId);
2689
+ // }, [postParentId]);
3081
2690
  (0, react_1.useEffect)(() => {
3082
- if (parentId && parentId == 0) {
2691
+ //if (parentId && parentId == 0) {
2692
+ if (channelId && parentId) {
3083
2693
  getThreadMessages({
3084
2694
  variables: {
3085
- channelId: !parentId || parentId == 0 ? null : channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
2695
+ channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
3086
2696
  role: role === null || role === void 0 ? void 0 : role.toString(),
3087
2697
  postParentId: !parentId || parentId == 0 ? null : parentId === null || parentId === void 0 ? void 0 : parentId.toString(),
2698
+ selectedFields: 'id channel post replies replyCount lastReplyAt createdAt updatedAt',
2699
+ repliesLimit2: MESSAGES_PER_PAGE,
2700
+ repliesSkip2: 0,
2701
+ skip: 0,
2702
+ limit: 1,
3088
2703
  },
3089
2704
  });
3090
2705
  }
3091
2706
  }, [parentId]);
3092
- (0, react_1.useEffect)(() => {
3093
- var _a;
3094
- if ((_a = threadMessagesData === null || threadMessagesData === void 0 ? void 0 : threadMessagesData.threadMessages) === null || _a === void 0 ? void 0 : _a.data) {
3095
- const { data: threads, totalCount: threadTotalCount } = threadMessagesData === null || threadMessagesData === void 0 ? void 0 : threadMessagesData.threadMessages;
3096
- const threadMessage = threads === null || threads === void 0 ? void 0 : threads.map((t) => t === null || t === void 0 ? void 0 : t.post);
3097
- if ((threadPost === null || threadPost === void 0 ? void 0 : threadPost.length) == 0) {
3098
- setThreadPost(threadMessage);
3099
- setChannelMessages((oldMessages) => (0, lodash_1.uniqBy)([...threadMessage, ...oldMessages], ({ id }) => id));
2707
+ react_1.default.useEffect(() => {
2708
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
2709
+ if ((_a = data === null || data === void 0 ? void 0 : data.threadMessages) === null || _a === void 0 ? void 0 : _a.data) {
2710
+ const threads = data.threadMessages;
2711
+ const threadPost = (_c = (_b = threads === null || threads === void 0 ? void 0 : threads.data) === null || _b === void 0 ? void 0 : _b.map((t) => t === null || t === void 0 ? void 0 : t.post)) !== null && _c !== void 0 ? _c : [];
2712
+ const threadReplies = (_f = (_e = (_d = threads === null || threads === void 0 ? void 0 : threads.data) === null || _d === void 0 ? void 0 : _d.map((t) => t === null || t === void 0 ? void 0 : t.replies)) === null || _e === void 0 ? void 0 : _e.flat(1)) !== null && _f !== void 0 ? _f : [];
2713
+ const messeageTotalCount = (_j = (_h = (_g = threads === null || threads === void 0 ? void 0 : threads.data) === null || _g === void 0 ? void 0 : _g.map((t) => t === null || t === void 0 ? void 0 : t.replyCount)) === null || _h === void 0 ? void 0 : _h[0]) !== null && _j !== void 0 ? _j : 0;
2714
+ const messages = [...threadPost, ...threadReplies];
2715
+ if ((messages && messages.length > 0 && messeageTotalCount > totalCount) ||
2716
+ (messages && messages.length > 0 && channelMessages.length === 0)) {
2717
+ setThreadMessages(messages, messeageTotalCount);
3100
2718
  }
3101
- // if (!isPostParentIdThread) {
3102
- // // setTotalCount((pc: any) => pc + threadTotalCount);
3103
- // setChannelMessages((oldMessages: any) => uniqBy([...threadMessage, ...oldMessages], ({ id }) => id));
3104
- // }
3105
2719
  }
3106
- }, [threadMessagesData, threadPost, isPostParentIdThread]);
2720
+ if (isScrollToBottom && channelMessages)
2721
+ scrollToBottom();
2722
+ // scrollToBottom();
2723
+ // if (!isPostParentIdThread) {
2724
+ // // setTotalCount((pc: any) => pc + threadTotalCount);
2725
+ // setChannelMessages((oldMessages: any) => uniqBy([...threadMessage, ...oldMessages], ({ id }) => id));
2726
+ // }
2727
+ }, [data, channelMessages, loadingOldMessages, totalCount, isPostParentIdThread, isScrollToBottom]);
2728
+ const setThreadMessages = (messages, messagesTotalCount) => {
2729
+ setChannelMessages((oldMessages) => (0, lodash_1.uniqBy)([...messages, ...oldMessages], ({ id }) => id));
2730
+ setTotalCount(messagesTotalCount);
2731
+ };
2732
+ // useEffect(() => {
2733
+ // //if (threadMessagesData?.threadMessages?.data) {
2734
+ // // console.log('threadMessagesData?.threadMessages', JSON.stringify(threadMessagesData?.threadMessages));
2735
+ // const threads: any = threadMessagesData?.threadMessages;
2736
+ // if (threadPost?.length == 0 && threads?.data?.length > 0) {
2737
+ // const threadMessage = threads?.data?.map((t: any) => t?.post);
2738
+ // setThreadPost(threadMessage);
2739
+ // setChannelMessages((oldMessages: any) => uniqBy([...threadMessage, ...oldMessages], ({ id }) => id));
2740
+ // }
2741
+ // // if (!isPostParentIdThread) {
2742
+ // // // setTotalCount((pc: any) => pc + threadTotalCount);
2743
+ // // setChannelMessages((oldMessages: any) => uniqBy([...threadMessage, ...oldMessages], ({ id }) => id));
2744
+ // // }
2745
+ // // }
2746
+ // }, [threadMessagesData, threadPost, isPostParentIdThread]);
3107
2747
  // React.useEffect(() => {
3108
2748
  // if (newThreadMsg) {
3109
2749
  // console.log('newThreadMsg');
@@ -3112,17 +2752,17 @@ const ThreadConversationViewComponent = ({ channelId, postParentId, isPostParent
3112
2752
  // setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, msg], ({ id }) => id));
3113
2753
  // }
3114
2754
  // }, [newThreadMsg]);
3115
- react_1.default.useEffect(() => {
3116
- if (newThreadMsg) {
3117
- console.log('newThreadMsg');
3118
- refetch({
3119
- channelId: !parentId || parentId == 0 ? null : channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
3120
- parentId: !parentId || parentId == 0 ? null : parentId === null || parentId === void 0 ? void 0 : parentId.toString(),
3121
- limit: MESSAGES_PER_PAGE,
3122
- skip: 0,
3123
- });
3124
- }
3125
- }, [newThreadMsg, skip, parentId]);
2755
+ // React.useEffect(() => {
2756
+ // if (newThreadMsg) {
2757
+ // console.log('newThreadMsg');
2758
+ // refetch({
2759
+ // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),
2760
+ // parentId: !parentId || parentId == 0 ? null : parentId?.toString(),
2761
+ // limit: MESSAGES_PER_PAGE,
2762
+ // skip: 0,
2763
+ // });
2764
+ // }
2765
+ // }, [newThreadMsg, skip, parentId]);
3126
2766
  // useEffect(() => {
3127
2767
  // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {
3128
2768
  // const { data: messages, totalCount: messeageTotalCount } = data.messages;
@@ -3148,28 +2788,30 @@ const ThreadConversationViewComponent = ({ channelId, postParentId, isPostParent
3148
2788
  // setChannelMessages((oldMessages: any) => uniqBy([...threadPost, ...oldMessages], ({ id }) => id));
3149
2789
  // }
3150
2790
  // }, [data, loadingOldMessages, channelMessages, threadPost]);
3151
- react_1.default.useEffect(() => {
3152
- var _a;
3153
- if ((_a = data === null || data === void 0 ? void 0 : data.messages) === null || _a === void 0 ? void 0 : _a.data) {
3154
- const { data: messages, totalCount: messeageTotalCount } = data.messages;
3155
- if ((messages && messages.length > 0 && messeageTotalCount > totalCount) ||
3156
- (messages && messages.length > 0 && (loadingOldMessages || channelMessages.length === 0))) {
3157
- setChannelMessages((oldMessages) => (0, lodash_1.uniqBy)([...messages, ...oldMessages], ({ id }) => id));
3158
- setTotalCount(messeageTotalCount);
3159
- setLoadEarlierMsg(false);
3160
- }
3161
- if (loadingOldMessages && channelMessages)
3162
- setLoadingOldMessages(false);
3163
- if (channelMessages &&
3164
- (channelMessages === null || channelMessages === void 0 ? void 0 : channelMessages.length) == MESSAGES_PER_PAGE &&
3165
- totalCount > (channelMessages === null || channelMessages === void 0 ? void 0 : channelMessages.length)) {
3166
- onFetchOld();
3167
- }
3168
- }
3169
- // if (threadPost?.length > 0 && channelMessages.length == (0 || MESSAGES_PER_PAGE)) {
3170
- // setChannelMessages((oldMessages: any) => uniqBy([...threadPost, ...oldMessages], ({ id }) => id));
3171
- // }
3172
- }, [data, loadingOldMessages, totalCount, channelMessages, isScrollToBottom]);
2791
+ // React.useEffect(() => {
2792
+ // if (data?.messages?.data) {
2793
+ // const { data: messages, totalCount: messeageTotalCount } = data.messages;
2794
+ // if (
2795
+ // (messages && messages.length > 0 && messeageTotalCount > totalCount) ||
2796
+ // (messages && messages.length > 0 && (loadingOldMessages || channelMessages.length === 0))
2797
+ // ) {
2798
+ // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));
2799
+ // setTotalCount(messeageTotalCount);
2800
+ // setLoadEarlierMsg(false);
2801
+ // }
2802
+ // if (loadingOldMessages && channelMessages) setLoadingOldMessages(false);
2803
+ // // if (
2804
+ // // channelMessages &&
2805
+ // // channelMessages?.length == MESSAGES_PER_PAGE &&
2806
+ // // totalCount > channelMessages?.length
2807
+ // // ) {
2808
+ // // onFetchOld();
2809
+ // // }
2810
+ // }
2811
+ // // if (threadPost?.length > 0 && channelMessages.length == (0 || MESSAGES_PER_PAGE)) {
2812
+ // // setChannelMessages((oldMessages: any) => uniqBy([...threadPost, ...oldMessages], ({ id }) => id));
2813
+ // // }
2814
+ // }, [data, loadingOldMessages, totalCount, channelMessages, isScrollToBottom]);
3173
2815
  // useEffect(() => {
3174
2816
  // if (
3175
2817
  // !messageLoading &&
@@ -3223,22 +2865,46 @@ const ThreadConversationViewComponent = ({ channelId, postParentId, isPostParent
3223
2865
  // }
3224
2866
  // }, []);
3225
2867
  const onFetchOld = (0, react_1.useCallback)(() => {
3226
- var _a;
3227
2868
  if (totalCount > channelMessages.length && !loadingOldMessages) {
3228
2869
  setSkip(channelMessages.length);
3229
2870
  setLoadEarlierMsg(true);
3230
- (_a = fetchMoreMessages({
2871
+ fetchMoreMessages({
3231
2872
  variables: {
3232
2873
  channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
3233
- parentId: null,
3234
- skip: channelMessages.length,
2874
+ role: role === null || role === void 0 ? void 0 : role.toString(),
2875
+ postParentId: parentId === null || parentId === void 0 ? void 0 : parentId.toString(),
2876
+ selectedFields: 'id channel post replies replyCount lastReplyAt createdAt updatedAt',
2877
+ repliesLimit2: MESSAGES_PER_PAGE,
2878
+ repliesSkip2: channelMessages.length - 1,
2879
+ skip: 0,
2880
+ limit: 1,
2881
+ // channelId: channelId?.toString(),
2882
+ // parentId: null,
2883
+ // skip: channelMessages.length,
3235
2884
  },
3236
- })) === null || _a === void 0 ? void 0 : _a.then((res) => setLoadingOldMessages(true));
2885
+ })
2886
+ .then((res) => {
2887
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
2888
+ if ((_b = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.threadMessages) === null || _b === void 0 ? void 0 : _b.data) {
2889
+ const threadReplies = (_g = (_f = (_e = (_d = (_c = res === null || res === void 0 ? void 0 : res.data) === null || _c === void 0 ? void 0 : _c.threadMessages) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.map((t) => t === null || t === void 0 ? void 0 : t.replies)) === null || _f === void 0 ? void 0 : _f.flat(1)) !== null && _g !== void 0 ? _g : [];
2890
+ const messeageTotalCount = (_m = (_l = (_k = (_j = (_h = res === null || res === void 0 ? void 0 : res.data) === null || _h === void 0 ? void 0 : _h.threadMessages) === null || _j === void 0 ? void 0 : _j.data) === null || _k === void 0 ? void 0 : _k.map((t) => t === null || t === void 0 ? void 0 : t.replyCount)) === null || _l === void 0 ? void 0 : _l[0]) !== null && _m !== void 0 ? _m : 0;
2891
+ setThreadMessages(threadReplies, messeageTotalCount);
2892
+ }
2893
+ })
2894
+ .finally(() => {
2895
+ setLoadEarlierMsg(false);
2896
+ setLoadingOldMessages(false);
2897
+ })
2898
+ .catch((error) => {
2899
+ setLoadEarlierMsg(false);
2900
+ setLoadingOldMessages(false);
2901
+ });
2902
+ //?.then((res: any) => setLoadingOldMessages(true));
3237
2903
  // refetch({ channelId: channelId?.toString(), parentId: null, skip: channelMessages.length })?.then(
3238
2904
  // (res: any) => setLoadingOldMessages(true),
3239
2905
  // );
3240
2906
  }
3241
- }, [totalCount, channelMessages]);
2907
+ }, [parentId, channelId, totalCount, channelMessages]);
3242
2908
  // const isCloseToTop = ({ layoutMeasurement, contentOffset, contentSize }) => {
3243
2909
  // return contentOffset.y <= 100; // 100px from top
3244
2910
  // };
@@ -3653,23 +3319,41 @@ const ThreadConversationViewComponent = ({ channelId, postParentId, isPostParent
3653
3319
  // }
3654
3320
  renderMessageText: renderMessageText, minInputToolbarHeight: 50, renderActions: renderActions, renderAccessory: renderAccessory, renderMessage: renderMessage, renderChatFooter: () => (react_1.default.createElement(react_1.default.Fragment, null,
3655
3321
  react_1.default.createElement(SlackMessageContainer_1.ImageViewerModal, { isVisible: isShowImageViewer, setVisible: setImageViewer, modalContent: modalContent }),
3656
- react_1.default.createElement(SubscriptionHandler, { subscribeToNewMessages: () => subscribeToMore({
3322
+ react_1.default.createElement(SubscriptionHandler, { channelId: channelId, subscribeToNewMessages: () => subscribeToMore({
3657
3323
  document: platform_client_1.OnThreadChatMessageAddedDocument,
3658
3324
  variables: {
3659
3325
  channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
3660
3326
  postParentId: !parentId || parentId == 0 ? null : parentId === null || parentId === void 0 ? void 0 : parentId.toString(),
3661
3327
  },
3662
3328
  updateQuery: (prev, { subscriptionData }) => {
3663
- var _a, _b, _c;
3329
+ var _a, _b, _c, _d, _e, _f, _g;
3664
3330
  if (!subscriptionData.data)
3665
3331
  return prev;
3666
3332
  const newMessage = (_a = subscriptionData === null || subscriptionData === void 0 ? void 0 : subscriptionData.data) === null || _a === void 0 ? void 0 : _a.threadChatMessageAdded;
3667
- const mergedData = ((_b = prev === null || prev === void 0 ? void 0 : prev.messages) === null || _b === void 0 ? void 0 : _b.data)
3668
- ? [...prev.messages.data, newMessage]
3669
- : [];
3670
- const totalMsgCount = ((_c = prev === null || prev === void 0 ? void 0 : prev.messages) === null || _c === void 0 ? void 0 : _c.totalCount) + 1;
3671
- const merged = Object.assign(Object.assign({}, prev), { messages: Object.assign(Object.assign({}, prev === null || prev === void 0 ? void 0 : prev.messages), { data: mergedData, totalCount: totalMsgCount }) });
3333
+ const threadReplies = (_e = (_d = (_c = (_b = prev === null || prev === void 0 ? void 0 : prev.threadMessages) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.map((t) => t === null || t === void 0 ? void 0 : t.replies)) === null || _d === void 0 ? void 0 : _d.flat(1)) !== null && _e !== void 0 ? _e : [];
3334
+ const replies = [...threadReplies, newMessage];
3335
+ const previousData = (_g = (_f = prev === null || prev === void 0 ? void 0 : prev.threadMessages) === null || _f === void 0 ? void 0 : _f.data) === null || _g === void 0 ? void 0 : _g.map((t) => {
3336
+ let thread = Object.assign({}, t);
3337
+ thread.replies = replies;
3338
+ return thread;
3339
+ });
3340
+ // const previousData = prev?.threadMessages?.data ? [...prev.threadMessages.data, newMessage] : [];
3341
+ // const totalMsgCount = prev?.threadMessages?.totalCount + 1;
3342
+ const merged = Object.assign(Object.assign({}, prev), { threadMessages: Object.assign(Object.assign({}, prev === null || prev === void 0 ? void 0 : prev.threadMessages), { data: previousData }) });
3672
3343
  return merged;
3344
+ // const mergedData = prev?.messages?.data
3345
+ // ? [...prev.messages.data, newMessage]
3346
+ // : [];
3347
+ // const totalMsgCount = prev?.messages?.totalCount + 1;
3348
+ // const merged = {
3349
+ // ...prev?.messages,
3350
+ // messages: {
3351
+ // ...prev?.messages,
3352
+ // data: mergedData,
3353
+ // totalCount: totalMsgCount,
3354
+ // },
3355
+ // };
3356
+ // return merged;
3673
3357
  // return Object.assign({}, prev, {
3674
3358
  // messages: {
3675
3359
  // data: [...prev.messages.data, newMessage],
@@ -3677,7 +3361,7 @@ const ThreadConversationViewComponent = ({ channelId, postParentId, isPostParent
3677
3361
  // },
3678
3362
  // });
3679
3363
  },
3680
- }) }))), messagesContainerStyle: (messageList === null || messageList === void 0 ? void 0 : messageList.length) == 0 && { transform: [{ scaleY: -1 }] }, renderChatEmpty: () => (react_1.default.createElement(react_1.default.Fragment, null, !threadLoading && !messageLoading && messageList && (messageList === null || messageList === void 0 ? void 0 : messageList.length) == 0 && (react_1.default.createElement(native_base_1.Box, { p: 5 },
3364
+ }) }))), messagesContainerStyle: (messageList === null || messageList === void 0 ? void 0 : messageList.length) == 0 && { transform: [{ scaleY: -1 }] }, renderChatEmpty: () => (react_1.default.createElement(react_1.default.Fragment, null, !threadLoading && messageList && (messageList === null || messageList === void 0 ? void 0 : messageList.length) == 0 && (react_1.default.createElement(native_base_1.Box, { p: 5 },
3681
3365
  react_1.default.createElement(native_base_1.Center, { mt: 6 },
3682
3366
  react_1.default.createElement(native_base_1.Icon, { as: vector_icons_1.Ionicons, name: "chatbubbles", size: 'xl' }),
3683
3367
  react_1.default.createElement(native_base_1.Text, null, "You don't have any message yet!")))))), lightboxProps: {
@@ -3686,8 +3370,8 @@ const ThreadConversationViewComponent = ({ channelId, postParentId, isPostParent
3686
3370
  disabled: true,
3687
3371
  } })));
3688
3372
  };
3689
- const SubscriptionHandler = ({ subscribeToNewMessages }) => {
3690
- (0, react_1.useEffect)(() => subscribeToNewMessages(), []);
3373
+ const SubscriptionHandler = ({ subscribeToNewMessages, channelId }) => {
3374
+ (0, react_1.useEffect)(() => subscribeToNewMessages(), [channelId]);
3691
3375
  return react_1.default.createElement(react_1.default.Fragment, null);
3692
3376
  };
3693
3377
  exports.ThreadConversationView = react_1.default.memo(ThreadConversationViewComponent);