Files
mobile-darmasaba/components/home/carouselHome.tsx
amel ba8984b7c5 upd:banner home
deskripsi:
- load banner di halaman home

- nb : blm selesai

No Issues
2025-04-25 17:37:06 +08:00

48 lines
1.8 KiB
TypeScript

import Styles from "@/constants/Styles";
import { apiGetBanner } from "@/lib/api";
import { setEntities } from "@/lib/bannerSlice";
import { useAuthSession } from "@/providers/AuthProvider";
import React from "react";
import { Dimensions, Text, View } from "react-native";
import { useSharedValue } from "react-native-reanimated";
import Carousel, { ICarouselInstance } from "react-native-reanimated-carousel";
import { useDispatch, useSelector } from "react-redux";
export default function CaraouselHome() {
const { decryptToken, token } = useAuthSession()
const ref = React.useRef<ICarouselInstance>(null);
const width = Dimensions.get("window").width;
const data = [...new Array(6).keys()];
const progress = useSharedValue<number>(0);
const dispatch = useDispatch()
const entities = useSelector((state: any) => state.banner)
async function handleBannerView() {
const hasil = await decryptToken(String(token?.current))
apiGetBanner({ user: hasil }).then((data) => dispatch(setEntities(data.data)));
}
return (
<View style={[Styles.mv15]}>
<Carousel
ref={ref}
width={width}
height={width / 2.5}
data={entities}
loop={true}
autoPlay={true}
autoPlayInterval={5000}
onProgressChange={progress}
renderItem={({ index }) => (
// <Image
// source={require("../../assets/images/user.jpg")}
// style={[Styles.caraoselContent]}
// />
<View style={Styles.caraoselContent} >
<Text style={{ textAlign: "center", color: "white", fontWeight: 'bold' }}>BANNER DARMASABA</Text>
</View>
)}
/>
</View>
)
}