import { ConstEnv } from "@/constants/ConstEnv"; import Styles from "@/constants/Styles"; import { apiGetBanner, apiGetProfile } from "@/lib/api"; import { setEntities } from "@/lib/bannerSlice"; import { setEntityUser } from "@/lib/userSlice"; import { useAuthSession } from "@/providers/AuthProvider"; import React, { useEffect } from "react"; import { Dimensions, Image, View } from "react-native"; import { useSharedValue } from "react-native-reanimated"; import Carousel, { ICarouselInstance } from "react-native-reanimated-carousel"; import { useDispatch, useSelector } from "react-redux"; import Text from "../Text"; export default function CaraouselHome() { const { decryptToken, token } = useAuthSession() const ref = React.useRef(null); const width = Dimensions.get("window").width; const progress = useSharedValue(0); const dispatch = useDispatch() const entities = useSelector((state: any) => state.banner) const entityUser = useSelector((state: any) => state.user) async function handleBannerView() { const hasil = await decryptToken(String(token?.current)) apiGetBanner({ user: hasil }).then((data) => { if (data.data.length > 0) { dispatch(setEntities(data.data)) } else { dispatch(setEntities([])) } }) } async function handleUser() { const hasil = await decryptToken(String(token?.current)) const response = await apiGetProfile({ id: hasil }) dispatch(setEntityUser({ role: response.data.idUserRole, admin: false })) } useEffect(() => { handleBannerView() }, [dispatch]); useEffect(() => { handleUser() }, []); return ( { entities.length > 0 ? ( )} /> : BANNER } ) }