diff --git a/frontend/src/components/EntriesView.jsx b/frontend/src/components/EntriesView.jsx
index ac189af..01c86b3 100644
--- a/frontend/src/components/EntriesView.jsx
+++ b/frontend/src/components/EntriesView.jsx
@@ -16,7 +16,7 @@ export default function EntriesView({ entries, selectedUids, onRowClick, archive
{pendingCaptures.filter(c => c.archiveId === archiveId).reverse().map(cap => (
-
+
))}
{entries.map((entry, idx) => (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
+const COLLECTION_MARKERS = [
+ 'list=',
+ '/playlist/',
+ '/channel/',
+ 'yt:playlist:',
+ 'yt:channel:',
+ 'ytm:playlist:',
+ 'spotify:playlist:',
+ 'spotify:album:',
+];
+
+function isCollectionLocator(locator) {
+ const normalized = locator.toLowerCase();
+ return COLLECTION_MARKERS.some(marker => normalized.includes(marker));
+}
+
+function truncateLocator(locator) {
+ return locator.length > 80 ? `${locator.slice(0, 79)}…` : locator;
+}
+
+export default function SkeletonEntryRow({ locator = '' }) {
+ const locatorText = String(locator);
+ const isCollection = isCollectionLocator(locatorText);
+
+ return (
+