import ModalConfirmation from "@/components/ModalConfirmation"; 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 { useAuthSession } from "@/providers/AuthProvider"; import { useTheme } from "@/providers/ThemeProvider"; import { AntDesign, Ionicons } from "@expo/vector-icons"; import { router, Stack } from "expo-router"; import { LinearGradient } from "expo-linear-gradient"; import { useState } from "react"; import { Image, Modal, Pressable, SafeAreaView, ScrollView, TouchableOpacity, View } from "react-native"; import ImageViewing from 'react-native-image-viewing'; import { useSelector } from 'react-redux'; export default function Profile() { const { signOut } = useAuthSession() const { theme, setTheme, colors } = useTheme(); const entities = useSelector((state: any) => state.entities) const [error, setError] = useState(false) const [preview, setPreview] = useState(false) const [showThemeModal, setShowThemeModal] = useState(false) const [showLogoutModal, setShowLogoutModal] = useState(false) const ThemeOption = ({ label, value, icon }: { label: string, value: 'light' | 'dark' | 'system', icon: string }) => ( { setTheme(value); setShowThemeModal(false); }} > {label} {theme === value && } ); return ( ( router.back()} right={ } onPress={() => { setShowLogoutModal(true) }} /> } /> ) }} /> setPreview(true)}> { setError(true) }} style={[Styles.userProfileBig]} /> {entities.name} {entities.role} Tampilan setShowThemeModal(true)} style={[Styles.wrapItemBorderAll, { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', borderColor: colors.icon + '40', backgroundColor: colors.background }]} > Tema Aplikasi {theme === 'light' ? 'Terang' : theme === 'dark' ? 'Gelap' : 'Sistem'} Informasi { entities.idUserRole != "developer" && { router.push('/edit-profile') }} style={[Styles.textLink]}>Edit } {/* Note: ItemDetailMember might need updates to support dynamic colors if it uses default text colors */} setShowThemeModal(false)} > setShowThemeModal(false)}> Pilih Tema setShowThemeModal(false)}> setPreview(false)} doubleTapToZoomEnabled /> { setShowLogoutModal(false) signOut() }} onCancel={() => setShowLogoutModal(false)} confirmText="Keluar" cancelText="Batal" /> ) }