fix: season episode scroll list snapping and scrolling

This commit is contained in:
Fredrik Burmester
2025-11-16 14:36:31 +01:00
parent 97fe899cb0
commit 991b45de06

View File

@@ -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'
/> />
); );
}; };