diff --git a/xtablo-expo/app/(app)/(tabs)/settings.tsx b/xtablo-expo/app/(app)/(tabs)/settings.tsx
index 422194e..3e25467 100644
--- a/xtablo-expo/app/(app)/(tabs)/settings.tsx
+++ b/xtablo-expo/app/(app)/(tabs)/settings.tsx
@@ -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(
+ ,
+ "Supprimer le compte",
+ "Supprimer définitivement votre compte et vos données",
+ handleDeleteAccount,
+ undefined,
+ true
+ )}
+ >
+ )}
+
{/* Sign Out Section */}