import React, { useState } from "react"; import { View, ScrollView, TextInput, ActivityIndicator, StyleSheet, } from "react-native"; import { useSirouRouter } from "@sirou/react-native"; import { useColorScheme } from "nativewind"; import { AppRoutes } from "@/lib/routes"; import { Text } from "@/components/ui/text"; import { Button } from "@/components/ui/button"; import { ScreenWrapper } from "@/components/ScreenWrapper"; import { StandardHeader } from "@/components/StandardHeader"; import { useAuthStore } from "@/lib/auth-store"; import { api } from "@/lib/api"; import { toast } from "@/lib/toast-store"; const S = StyleSheet.create({ input: { paddingHorizontal: 14, paddingVertical: 13, fontSize: 15, fontWeight: "500", borderRadius: 10, borderWidth: 1, textAlignVertical: "center", }, }); function useInputColors() { const { colorScheme } = useColorScheme(); const dark = colorScheme === "dark"; return { bg: dark ? "rgba(30,30,30,0.8)" : "rgba(241,245,249,0.2)", border: dark ? "rgba(255,255,255,0.08)" : "rgba(203,213,225,0.6)", text: dark ? "#f1f5f9" : "#0f172a", placeholder: "rgba(100,116,139,0.45)", }; } export default function EditProfileScreen() { const nav = useSirouRouter(); const { user, updateUser } = useAuthStore(); const { colorScheme } = useColorScheme(); const isDark = colorScheme === "dark"; const c = useInputColors(); const [loading, setLoading] = useState(false); const [firstName, setFirstName] = useState(user?.firstName || ""); const [lastName, setLastName] = useState(user?.lastName || ""); const initials = `${user?.firstName?.[0] || ""}${user?.lastName?.[0] || ""}`.toUpperCase(); const handleSave = async () => { if (!firstName.trim() || !lastName.trim()) { toast.error("Error", "First and last name are required"); return; } setLoading(true); try { const response = await api.users.updateProfile({ body: { firstName: firstName.trim(), lastName: lastName.trim(), }, }); updateUser(response); toast.success("Success", "Profile updated"); nav.back(); } catch (e: any) { toast.error("Error", e?.message || "Failed to update profile"); } finally { setLoading(false); } }; return ( {initials || "?"} {user?.firstName} {user?.lastName} {user?.email} First Name Last Name {user?.email && ( Email {user.email} )} ); }