@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/CHANGELOG.md +8 -0
- package/lib/index.js +342 -658
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/screens/inbox/components/DialogsListItem.tsx +85 -27
- package/src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx +36 -12
- package/src/screens/inbox/config/config.ts +1 -1
- package/src/screens/inbox/containers/ConversationView.tsx +72 -561
- package/src/screens/inbox/containers/ThreadConversationView.tsx +222 -112
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
|
|
710
|
+
var _a, _b, _c;
|
|
711
711
|
const parentId = null;
|
|
712
|
-
const
|
|
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
|
-
|
|
719
|
-
|
|
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
|
-
|
|
739
|
-
|
|
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 (
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
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
|
-
}, [
|
|
758
|
+
}, [messagesQuery]);
|
|
762
759
|
const lastMessage = (0, react_1.useMemo)(() => {
|
|
763
|
-
var _a
|
|
764
|
-
if (!(
|
|
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
|
-
}, [
|
|
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(
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
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(
|
|
1209
|
-
|
|
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:
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
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
|
-
|
|
2547
|
-
// const
|
|
2548
|
-
//
|
|
2549
|
-
//
|
|
2550
|
-
// //
|
|
2551
|
-
//
|
|
2552
|
-
// //
|
|
2553
|
-
//
|
|
2554
|
-
//
|
|
2555
|
-
//
|
|
2556
|
-
//
|
|
2557
|
-
//
|
|
2558
|
-
//
|
|
2559
|
-
//
|
|
2560
|
-
//
|
|
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
|
-
|
|
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 }] =
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
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 (
|
|
2668
|
+
if (postParentId) {
|
|
3052
2669
|
refetchThreadMessages({
|
|
3053
|
-
channelId:
|
|
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:
|
|
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
|
-
|
|
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
|
-
}, [
|
|
3078
|
-
|
|
3079
|
-
|
|
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:
|
|
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
|
-
|
|
3093
|
-
var _a;
|
|
3094
|
-
if ((_a =
|
|
3095
|
-
const
|
|
3096
|
-
const
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
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
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
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
|
-
|
|
2871
|
+
fetchMoreMessages({
|
|
3231
2872
|
variables: {
|
|
3232
2873
|
channelId: channelId === null || channelId === void 0 ? void 0 : channelId.toString(),
|
|
3233
|
-
|
|
3234
|
-
|
|
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
|
-
})
|
|
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
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
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 &&
|
|
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);
|