feat(expo): add account deletion in settings danger zone

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Arthur Belleville 2026-04-29 15:48:27 +02:00
parent 77aaca171d
commit ea90d5133c
No known key found for this signature in database

View file

@ -12,6 +12,7 @@ import {
} from "react-native";
import { LinearGradient } from "expo-linear-gradient";
import { useAuthStore } from "@/stores/auth";
import { api } from "@/lib/api";
import { useUser } from "@/providers/UserProvider";
import {
User,
@ -27,6 +28,7 @@ import {
Globe,
Lock,
Heart,
Trash2,
} from "lucide-react-native";
import { router } from "expo-router";
import {
@ -78,6 +80,34 @@ export default function SettingsScreen() {
Linking.openURL("mailto:support@xtablo.com?subject=Support XTablo");
};
const handleDeleteAccount = () => {
Alert.alert(
"Supprimer le compte",
"Cette action est irréversible. Votre compte et toutes vos données seront définitivement supprimés. Êtes-vous sûr de vouloir continuer ?",
[
{ text: "Annuler", style: "cancel" },
{
text: "Supprimer mon compte",
style: "destructive",
onPress: async () => {
try {
const session = useAuthStore.getState().session;
await api.delete("/api/v1/users/me", {
headers: { Authorization: `Bearer ${session?.access_token}` },
});
await signOut();
} catch {
Alert.alert(
"Erreur",
"Une erreur est survenue lors de la suppression de votre compte. Veuillez réessayer."
);
}
},
},
]
);
};
const handleRateApp = () => {
// Replace with your actual app store URL
Alert.alert(
@ -312,6 +342,21 @@ export default function SettingsScreen() {
</>
)}
{/* Danger Zone Section */}
{renderSettingsSection(
"Zone de danger",
<>
{renderSettingsItem(
<Trash2 size={20} color="#ef4444" />,
"Supprimer le compte",
"Supprimer définitivement votre compte et vos données",
handleDeleteAccount,
undefined,
true
)}
</>
)}
{/* Sign Out Section */}
<View style={styles.signOutSection}>
<TouchableOpacity