import { useCarouselContext } from '@strv/react-native-hero-carousel' import { StyleSheet, View } from 'react-native' import Animated, { useAnimatedStyle, interpolate, Extrapolation } from 'react-native-reanimated' import { useSafeAreaInsets } from 'react-native-safe-area-context' const PaginationDot = ({ index }: { index: number }) => { const { scrollValue } = useCarouselContext() const animatedStyle = useAnimatedStyle(() => { return { width: interpolate( scrollValue.value - 1, [index - 1, index, index + 1], [8, 24, 8], Extrapolation.CLAMP, ), opacity: interpolate( scrollValue.value - 1, [index - 1, index, index + 1], [0.5, 1, 0.5], Extrapolation.CLAMP, ), } }) return } export const Pagination = ({ total }: { total: number }) => { const { bottom } = useSafeAreaInsets() return ( {Array.from({ length: total }).map((_, index) => ( ))} ) } const styles = StyleSheet.create({ pagination: { position: 'absolute', left: 0, right: 0, flexDirection: 'row', justifyContent: 'center', alignItems: 'center', gap: 8, }, dot: { height: 8, borderRadius: 4, backgroundColor: 'white', }, })