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"
/>
)
}