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:
parent
77aaca171d
commit
ea90d5133c
1 changed files with 45 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue