mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-15 23:59:08 +00:00
fix: season episode scroll list snapping and scrolling
This commit is contained in:
@@ -40,7 +40,7 @@ export const SeasonEpisodesCarousel: React.FC<Props> = ({
|
|||||||
const scrollRef = useRef<HorizontalScrollRef>(null);
|
const scrollRef = useRef<HorizontalScrollRef>(null);
|
||||||
|
|
||||||
const scrollToIndex = (index: number) => {
|
const scrollToIndex = (index: number) => {
|
||||||
scrollRef.current?.scrollToIndex(index, 16);
|
scrollRef.current?.scrollToIndex(index, -16);
|
||||||
};
|
};
|
||||||
|
|
||||||
const seasonId = useMemo(() => {
|
const seasonId = useMemo(() => {
|
||||||
@@ -87,6 +87,11 @@ export const SeasonEpisodesCarousel: React.FC<Props> = ({
|
|||||||
}
|
}
|
||||||
}, [episodes, item]);
|
}, [episodes, item]);
|
||||||
|
|
||||||
|
const snapOffsets = useMemo(() => {
|
||||||
|
const itemWidth = 184; // w-44 (176px) + mr-2 (8px)
|
||||||
|
return episodes?.map((_, index) => index * itemWidth) || [];
|
||||||
|
}, [episodes]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<HorizontalScroll
|
<HorizontalScroll
|
||||||
ref={scrollRef}
|
ref={scrollRef}
|
||||||
@@ -109,6 +114,8 @@ export const SeasonEpisodesCarousel: React.FC<Props> = ({
|
|||||||
<ItemCardText item={_item} />
|
<ItemCardText item={_item} />
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
)}
|
)}
|
||||||
|
snapToOffsets={snapOffsets}
|
||||||
|
decelerationRate='fast'
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user