diff --git a/src/components/Collection/SeriesTopPanel.tsx b/src/components/Collection/SeriesTopPanel.tsx
index 2d3b77c05..cae70559c 100644
--- a/src/components/Collection/SeriesTopPanel.tsx
+++ b/src/components/Collection/SeriesTopPanel.tsx
@@ -9,6 +9,7 @@ import BackgroundImagePlaceholderDiv from '@/components/BackgroundImagePlacehold
import AnidbDescription from '@/components/Collection/AnidbDescription';
import SeriesInfo from '@/components/Collection/SeriesInfo';
import SeriesUserStats from '@/components/Collection/SeriesUserStats';
+import ShokoPanel from '@/components/Panels/ShokoPanel';
import { useSeriesImagesQuery, useSeriesTagsQuery } from '@/core/react-query/series/queries';
import { useSettingsQuery } from '@/core/react-query/settings/queries';
@@ -52,6 +53,7 @@ const SeriesTopPanel = React.memo(({ series }: SeriesSidePanelProps) => {
setPoster(allPosters.find(art => art.Preferred) ?? allPosters[0]);
}, [imagesQuery.data, imagesQuery.isSuccess, showRandomPoster]);
+ // TODO: try to make this a grid for better responsiveness... but we'll have v3 soon so maybe not right now.
return (
{
)}
-
-
- Series Description
-
-
-
-
-
- Series Information
-
+
+
+
+
+
-
+
-
-
- Top 10 Tags
-
-
- {tags.slice(0, 10)
- .map(tag => )}
-
-
-
+
+ {tags.slice(0, 10)
+ .map(tag => )}
+
+
+
+
+
);
diff --git a/src/pages/collection/series/SeriesEpisodes.tsx b/src/pages/collection/series/SeriesEpisodes.tsx
index 75e904b2b..505e37759 100644
--- a/src/pages/collection/series/SeriesEpisodes.tsx
+++ b/src/pages/collection/series/SeriesEpisodes.tsx
@@ -85,6 +85,7 @@ const SeriesEpisodes = () => {
data,
fetchNextPage,
isFetchingNextPage,
+ isPending,
isSuccess,
} = seriesEpisodesQuery;
const [episodes, episodeCount] = useFlattenListResult(data);
@@ -116,8 +117,9 @@ const SeriesEpisodes = () => {
const rowVirtualizer = useVirtualizer({
count: episodeCount,
getScrollElement: () => scrollRef.current,
- estimateSize: () => 345, // 332px is the minimum height of a loaded row
+ estimateSize: () => 370, // 370px is the minimum height of a loaded row
overscan: 5,
+ gap: 16,
});
const virtualItems = rowVirtualizer.getVirtualItems();
@@ -199,44 +201,49 @@ const SeriesEpisodes = () => {
-
-
- {virtualItems.map((virtualItem) => {
- const page = Math.ceil((virtualItem.index + 1) / pageSize);
- const episode = episodes[virtualItem.index];
-
- if (!episode && !isFetchingNextPage) fetchNextPageDebounced();
-
- return (
-
- {episode
- ? (
-
onSelectionChange(episode.IDs.ID)}
- seriesId={toNumber(seriesId)}
- anidbSeriesId={anidbSeriesId}
- episode={episode}
- page={page}
- />
- )
- : (
-
-
-
- )}
-
- );
- })}
-
-
+ {isPending
+ ? (
+
+
+
+ )
+ : (
+
+ {virtualItems.map((virtualItem) => {
+ const page = Math.ceil((virtualItem.index + 1) / pageSize);
+ const episode = episodes[virtualItem.index];
+
+ if (!episode && !isFetchingNextPage) fetchNextPageDebounced();
+
+ return (
+
+ {episode
+ ? (
+
onSelectionChange(episode.IDs.ID)}
+ seriesId={toNumber(seriesId)}
+ anidbSeriesId={anidbSeriesId}
+ episode={episode}
+ page={page}
+ />
+ )
+ : (
+
+
+
+ )}
+
+ );
+ })}
+
+ )}