import AppHeader from "@/components/AppHeader"; import { ButtonHeader } from "@/components/buttonHeader"; import ItemDetailMember from "@/components/itemDetailMember"; import Text from "@/components/Text"; import { assetUserImage } from "@/constants/AssetsError"; import { ConstEnv } from "@/constants/ConstEnv"; import Styles from "@/constants/Styles"; import { apiGetProfile } from "@/lib/api"; import { setEntities } from "@/lib/entitiesSlice"; import { useAuthSession } from "@/providers/AuthProvider"; import { useTheme } from "@/providers/ThemeProvider"; import { Feather } from "@expo/vector-icons"; import { LinearGradient } from "expo-linear-gradient"; import { router, Stack } from "expo-router"; import { useState } from "react"; import { Image, Pressable, RefreshControl, SafeAreaView, ScrollView, View } from "react-native"; import ImageViewing from 'react-native-image-viewing'; import { useDispatch, useSelector } from 'react-redux'; export default function Profile() { const { colors } = useTheme(); const entities = useSelector((state: any) => state.entities) const [error, setError] = useState(false) const [preview, setPreview] = useState(false) const [refreshing, setRefreshing] = useState(false) const dispatch = useDispatch() const { token, decryptToken } = useAuthSession() async function handleUserLogin() { const hasil = await decryptToken(String(token?.current)) apiGetProfile({ id: hasil }) .then((data) => dispatch(setEntities(data.data))) .catch((error) => { console.error(error) }); } const handleRefresh = async () => { setRefreshing(true) handleUserLogin() await new Promise(resolve => setTimeout(resolve, 2000)); setRefreshing(false) }; return ( ( router.back()} right={ } onPress={() => { router.push('/setting') }} /> } /> ) }} /> } style={[Styles.h100, { backgroundColor: colors.background }]} > setPreview(true)}> { setError(true) }} style={[Styles.userProfileBig]} /> {entities.name} {entities.role} Informasi {/* Note: ItemDetailMember might need updates to support dynamic colors if it uses default text colors */} setPreview(false)} doubleTapToZoomEnabled /> ) }