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
+
+
+
+
+
+
+
);
}