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,
},
});