import { ScrollView, StyleSheet, Switch, Text, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import Animated, { FadeInDown } from "react-native-reanimated"; import { GlassCard } from "@/components/glass"; import { useSettingsStore } from "@/stores/settings.store"; import { useWallpaperStore } from "@/stores/wallpaper.store"; import { colors, typography, spacing, layout } from "@/theme"; export default function ProfileScreen() { const insets = useSafeAreaInsets(); const settings = useSettingsStore(); const wallpaperCount = useWallpaperStore((s) => s.savedWallpapers.length); return ( Profil Préférences & réglages {/* Stats */} Statistiques {wallpaperCount} Créations 5 Animations {/* Settings */} Réglages {/* Export Quality */} Qualité d'export {(["low", "medium", "high"] as const).map((q) => ( settings.setExportQuality(q)} /> ))} {/* About */} À propos Lively v1.0.0 Fonds d'écran animés depuis votre galerie ); } function SettingRow({ label, description, value, onToggle, }: { label: string; description: string; value: boolean; onToggle: (v: boolean) => void; }) { return ( {label} {description} ); } function QualityOption({ label, description, selected, onPress, }: { label: string; description: string; selected: boolean; onPress: () => void; }) { return ( {label} {description} {selected && } ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: colors.background, paddingHorizontal: layout.screenPadding, }, content: { paddingBottom: 40, }, section: { marginTop: spacing.md, }, statsRow: { flexDirection: "row", marginTop: 16, alignItems: "center", }, stat: { flex: 1, alignItems: "center", }, statDivider: { width: 1, height: 40, backgroundColor: colors.glass.border, }, settingRow: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", paddingVertical: 12, borderBottomWidth: 1, borderBottomColor: colors.glass.highlight, }, settingText: { flex: 1, marginRight: 16, }, qualityRow: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", paddingVertical: 12, paddingHorizontal: 12, borderRadius: 12, marginBottom: 4, }, qualitySelected: { backgroundColor: "rgba(255, 255, 255, 0.06)", }, radio: { width: 20, height: 20, borderRadius: 10, borderWidth: 1.5, borderColor: colors.text.tertiary, alignItems: "center", justifyContent: "center", }, radioSelected: { borderColor: colors.text.primary, }, radioDot: { width: 10, height: 10, borderRadius: 5, backgroundColor: colors.text.primary, }, });