From 1342e71a3f10df79a972b131ce835ea840708d94 Mon Sep 17 00:00:00 2001 From: Xor290 Date: Fri, 15 May 2026 13:48:19 +0200 Subject: [PATCH] chore: fix --- frontend-prep/src/components/Navbar.tsx | 2 +- frontend-prep/src/pages/User/ProfilePage.css | 18 +++ frontend-prep/src/pages/User/ProfilePage.tsx | 59 ++++++++- mobile/app.json | 2 +- mobile/src/screens/client/ProfileScreen.tsx | 119 ++++++++++++++++--- 5 files changed, 178 insertions(+), 22 deletions(-) diff --git a/frontend-prep/src/components/Navbar.tsx b/frontend-prep/src/components/Navbar.tsx index ca30253e..f0f3477d 100644 --- a/frontend-prep/src/components/Navbar.tsx +++ b/frontend-prep/src/components/Navbar.tsx @@ -160,7 +160,7 @@ function Navbar() { - Milieu‑Nantais + {shopName}
{/* Theme toggle */} diff --git a/frontend-prep/src/pages/User/ProfilePage.css b/frontend-prep/src/pages/User/ProfilePage.css index bacc8b64..446f0d31 100644 --- a/frontend-prep/src/pages/User/ProfilePage.css +++ b/frontend-prep/src/pages/User/ProfilePage.css @@ -357,3 +357,21 @@ border: 1px solid rgba(37, 99, 235, 0.27); color: #60a5fa; } + +.profile-modal-btn--danger { + background: rgba(239, 68, 68, 0.1); + border: 1px solid rgba(239, 68, 68, 0.35); + color: #ef4444; +} + +.profile-modal-icon--danger { + background: rgba(239, 68, 68, 0.1); + border-color: rgba(239, 68, 68, 0.3); + color: #ef4444; +} + +.profile-modal-icon--success { + background: rgba(16, 185, 129, 0.1); + border-color: rgba(16, 185, 129, 0.3); + color: #10b981; +} diff --git a/frontend-prep/src/pages/User/ProfilePage.tsx b/frontend-prep/src/pages/User/ProfilePage.tsx index e9f167f0..eb2f6c40 100644 --- a/frontend-prep/src/pages/User/ProfilePage.tsx +++ b/frontend-prep/src/pages/User/ProfilePage.tsx @@ -44,6 +44,8 @@ export default function ProfilePage() { // Modal confirmation infos par défaut const [showSaveModal, setShowSaveModal] = useState(false); + const [showUnlinkModal, setShowUnlinkModal] = useState(false); + const [showUnlinkSuccessModal, setShowUnlinkSuccessModal] = useState(false); const username = extractUsernameFromToken() ?? ''; @@ -111,12 +113,16 @@ export default function ProfilePage() { window.open(res.link_url, '_blank'); }; - const handleUnlinkTelegram = async () => { - if (!window.confirm('Délier votre compte Telegram ? Vous ne recevrez plus de notifications.')) return; + const handleUnlinkTelegram = () => { + setShowUnlinkModal(true); + }; + + const confirmUnlinkTelegram = async () => { + setShowUnlinkModal(false); await unlinkTelegram(); setTgLinked(false); setTwoFAEnabled(false); - showSuccess('Compte Telegram délié'); + setShowUnlinkSuccessModal(true); }; const handleToggle2FA = async () => { @@ -371,6 +377,53 @@ export default function ProfilePage() {
)} + + {showUnlinkModal && ( +
setShowUnlinkModal(false)}> +
e.stopPropagation()}> + +
+ +
+

Délier Telegram ?

+

+ Vous ne recevrez plus de notifications Telegram. La double authentification sera également désactivée. +

+
+ + +
+
+
+ )} + + {showUnlinkSuccessModal && ( +
setShowUnlinkSuccessModal(false)}> +
e.stopPropagation()}> + +
+ +
+

Compte délié

+

+ Votre compte Telegram a été délié avec succès. Vous ne recevrez plus de notifications via Telegram. +

+
+ +
+
+
+ )} ); } diff --git a/mobile/app.json b/mobile/app.json index 7ed673a5..b5734121 100644 --- a/mobile/app.json +++ b/mobile/app.json @@ -2,7 +2,7 @@ "expo": { "name": "Milieu Nantais", "slug": "frontend-client", - "version": "1.0.0", + "version": "1.0.1", "orientation": "portrait", "icon": "./assets/icon.png", "userInterfaceStyle": "dark", diff --git a/mobile/src/screens/client/ProfileScreen.tsx b/mobile/src/screens/client/ProfileScreen.tsx index f20fb1e4..cde530fc 100644 --- a/mobile/src/screens/client/ProfileScreen.tsx +++ b/mobile/src/screens/client/ProfileScreen.tsx @@ -60,6 +60,10 @@ export default function ProfileScreen() { // Modal changement de mot de passe const [showPasswordModal, setShowPasswordModal] = useState(false); + + // Modals Telegram unlink + const [showTelegramUnlinkModal, setShowTelegramUnlinkModal] = useState(false); + const [showTelegramSuccessModal, setShowTelegramSuccessModal] = useState(false); const [currentPwd, setCurrentPwd] = useState(""); const [newPwd, setNewPwd] = useState(""); const [confirmPwd, setConfirmPwd] = useState(""); @@ -116,6 +120,11 @@ export default function ProfileScreen() { Alert.alert("Enregistré", "Informations par défaut sauvegardées"); }; + const saveAddress = async () => { + await AsyncStorage.setItem(STORAGE_ADDRESS, defaultAddress.trim()); + Alert.alert("Enregistré", "Adresse par défaut sauvegardée"); + }; + const handleLinkTelegram = async () => { setTelegramLoading(true); const res = await generateTelegramLinkToken(); @@ -134,23 +143,16 @@ export default function ProfileScreen() { ); }; - const handleUnlinkTelegram = async () => { - Alert.alert( - "Délier Telegram", - "Vous ne recevrez plus de notifications Telegram. Continuer ?", - [ - { text: "Annuler", style: "cancel" }, - { - text: "Délier", - style: "destructive", - onPress: async () => { - await unlinkTelegram(); - setTelegramLinked(false); - setTwoFAEnabled(false); - }, - }, - ], - ); + const handleUnlinkTelegram = () => { + setShowTelegramUnlinkModal(true); + }; + + const confirmUnlinkTelegram = async () => { + setShowTelegramUnlinkModal(false); + await unlinkTelegram(); + setTelegramLinked(false); + setTwoFAEnabled(false); + setShowTelegramSuccessModal(true); }; const handleChangePassword = async () => { @@ -447,6 +449,15 @@ export default function ProfileScreen() { multiline numberOfLines={2} /> + + + + Enregistrer l'adresse + + {/* Carte contact livraison */} @@ -712,6 +723,80 @@ export default function ProfileScreen() { + {/* Modal confirmation déliaison Telegram */} + setShowTelegramUnlinkModal(false)} + > + setShowTelegramUnlinkModal(false)} + > + {}}> + + + + + Délier Telegram ? + + Vous ne recevrez plus de notifications Telegram. La double authentification sera également désactivée. + + + setShowTelegramUnlinkModal(false)} + > + Annuler + + + Délier + + + + + + + + {/* Modal succès déliaison Telegram */} + setShowTelegramSuccessModal(false)} + > + setShowTelegramSuccessModal(false)} + > + {}}> + + + + + Compte délié + + Votre compte Telegram a été délié avec succès. Vous ne recevrez plus de notifications via Telegram. + + + setShowTelegramSuccessModal(false)} + > + Fermer + + + + + + + ); }