So, I followed the code here → RunQuery Pattern - Amity Docs however, not receiving the next set of messages, instead just receiving the same messages again and again.
export const useMessages = channelId => {
const [messages, setMessages] = useState([]);
const [options, setOptions] = useState();
const {loading, nextPage, error} = options ?? {};
const onQueryMessages = useCallback(
({reset = false, page = {limit: 5}}) => {
const query = createQuery(queryMessages, {page, channelId});
runQuery(query, ({data, ...rest}) => {
if (data) {
// setMessages(prevPosts => (reset ? constructMessageObj(data) : [...prevPosts, ...constructMessageObj(data)]));
setMessages(prevMessages => {
let messageArray = [];
for (let messageData of data) {
messageArray.push(constructMessageObj(messageData));
}
return reset ? messageArray.reverse() : [...prevMessages, ...messageArray].reverse();
});
}
setOptions(rest);
});
},
[channelId],
);
useEffect(() => onQueryMessages({reset: true}), [onQueryMessages]);
const loadMore = () => {
if (nextPage) {
onQueryMessages({page: nextPage});
}
};
return [messages, loadMore];
};