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];
};