From 6f242aad278bb27b07cfd29cfcd73989128a50a9 Mon Sep 17 00:00:00 2001
From: Lim Chee Aun <cheeaun@gmail.com>
Date: Sun, 12 Feb 2023 22:58:36 +0800
Subject: [PATCH] Followed hashtags are paginated

Gotta fetch 'em all!
I don't know the limit, but let's fetch ALL for now instead of lazy loaded.
---
 src/pages/followed-hashtags.jsx | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/pages/followed-hashtags.jsx b/src/pages/followed-hashtags.jsx
index 414b1d8c..4c627583 100644
--- a/src/pages/followed-hashtags.jsx
+++ b/src/pages/followed-hashtags.jsx
@@ -7,6 +7,8 @@ import Menu from '../components/menu';
 import { api } from '../utils/api';
 import useTitle from '../utils/useTitle';
 
+const LIMIT = 200;
+
 function FollowedHashtags() {
   const { masto, instance } = api();
   useTitle(`Followed Hashtags`, `/ft`);
@@ -17,7 +19,15 @@ function FollowedHashtags() {
     setUiState('loading');
     (async () => {
       try {
-        const tags = await masto.v1.followedTags.list();
+        const iterator = masto.v1.followedTags.list({
+          limit: LIMIT,
+        });
+        const tags = [];
+        do {
+          const { value, done } = await iterator.next();
+          if (done || value?.length === 0) break;
+          tags.push(...value);
+        } while (true);
         console.log(tags);
         setFollowedHashtags(tags);
         setUiState('default');
@@ -60,7 +70,7 @@ function FollowedHashtags() {
             </ul>
           ) : uiState === 'loading' ? (
             <p class="ui-state">
-              <Loader />
+              <Loader abrupt />
             </p>
           ) : uiState === 'error' ? (
             <p class="ui-state">Unable to load followed hashtags.</p>