diff --git a/src/components/explore/CollectionExplorer.tsx b/src/components/explore/CollectionExplorer.tsx
index 34a0fc9..642b18a 100644
--- a/src/components/explore/CollectionExplorer.tsx
+++ b/src/components/explore/CollectionExplorer.tsx
@@ -3,7 +3,7 @@
import { useCallback, useEffect, useMemo, useRef, useState, type CSSProperties } from 'react';
import Link from 'next/link';
import { useRouter } from 'next/navigation';
-import { Pause, Play, FilePenLine, Trash2, X, Plus } from 'lucide-react';
+import { Pause, Play, FilePenLine, Trash2, X, Plus, Loader2 } from 'lucide-react';
import { listRecordsPage, type AtRecord } from '@/utils/atproto/pdsClient';
import {
msUntilBudget,
@@ -669,8 +669,15 @@ function CollectionList({
}}
title={`Fetch the next ${RECORDS_PER_PAGE} records`}
>
-
- {loading ? 'Fetching…' : 'Fetch'}
+ {/* Keep the label fixed at "Fetch" and only swap the icon for a
+ spinner while loading — both icons are 12px, so the button
+ never changes width when tapped. */}
+ {loading ? (
+
+ ) : (
+
+ )}
+ Fetch
)}