From 442861e5a5b1a8a1308738bd5e078467a8f55e43 Mon Sep 17 00:00:00 2001 From: padreug Date: Sun, 10 Aug 2025 22:53:22 +0200 Subject: [PATCH] feat: Implement Logout Confirmation Dialog - Introduce a new LogoutConfirmDialog component to confirm user logout actions. - Update ProfileDialog.vue, UserProfile.vue, and Navbar.vue to utilize the new dialog for logout confirmation, enhancing user experience and preventing accidental logouts. - Ensure consistent styling and functionality across all instances where logout confirmation is required. --- src/components/auth/ProfileDialog.vue | 5 +- src/components/auth/UserProfile.vue | 5 +- src/components/layout/Navbar.vue | 14 ++-- src/components/ui/LogoutConfirmDialog.vue | 80 +++++++++++++++++++ .../LogoutConfirmDialog.vue | 80 +++++++++++++++++++ .../ui/LogoutConfirmDialog/index.ts | 1 + 6 files changed, 175 insertions(+), 10 deletions(-) create mode 100644 src/components/ui/LogoutConfirmDialog.vue create mode 100644 src/components/ui/LogoutConfirmDialog/LogoutConfirmDialog.vue create mode 100644 src/components/ui/LogoutConfirmDialog/index.ts diff --git a/src/components/auth/ProfileDialog.vue b/src/components/auth/ProfileDialog.vue index 39be3aa..124dac3 100644 --- a/src/components/auth/ProfileDialog.vue +++ b/src/components/auth/ProfileDialog.vue @@ -4,6 +4,7 @@ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } f import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Badge } from '@/components/ui/badge' +import { LogoutConfirmDialog } from '@/components/ui/LogoutConfirmDialog' import { User, LogOut, Settings, Key, Wallet, ExternalLink } from 'lucide-vue-next' import { auth } from '@/composables/useAuth' import { toast } from 'vue-sonner' @@ -125,10 +126,10 @@ function handleClose() { Change Password - + diff --git a/src/components/auth/UserProfile.vue b/src/components/auth/UserProfile.vue index b06b5e7..c2437d7 100644 --- a/src/components/auth/UserProfile.vue +++ b/src/components/auth/UserProfile.vue @@ -4,6 +4,7 @@ import { useRouter } from 'vue-router' import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Badge } from '@/components/ui/badge' +import { LogoutConfirmDialog } from '@/components/ui/LogoutConfirmDialog' import { User, LogOut, Settings } from 'lucide-vue-next' import { auth } from '@/composables/useAuth' import { toast } from 'vue-sonner' @@ -58,10 +59,10 @@ function handleLogout() { Settings - + diff --git a/src/components/layout/Navbar.vue b/src/components/layout/Navbar.vue index 9d60c3a..72452a4 100644 --- a/src/components/layout/Navbar.vue +++ b/src/components/layout/Navbar.vue @@ -11,6 +11,7 @@ import LanguageSwitcher from '@/components/LanguageSwitcher.vue' import LoginDialog from '@/components/auth/LoginDialog.vue' import ProfileDialog from '@/components/auth/ProfileDialog.vue' import CurrencyDisplay from '@/components/ui/CurrencyDisplay.vue' +import { LogoutConfirmDialog } from '@/components/ui/LogoutConfirmDialog' import { auth } from '@/composables/useAuth' import { useMarketPreloader } from '@/composables/useMarketPreloader' import { nostrChat } from '@/composables/useNostrChat' @@ -154,9 +155,11 @@ const handleLogout = async () => { Relay Hub Status - - - Logout + + + + Logout + @@ -239,11 +242,10 @@ const handleLogout = async () => { Relay Hub Status - + diff --git a/src/components/ui/LogoutConfirmDialog.vue b/src/components/ui/LogoutConfirmDialog.vue new file mode 100644 index 0000000..ee382c7 --- /dev/null +++ b/src/components/ui/LogoutConfirmDialog.vue @@ -0,0 +1,80 @@ + + + diff --git a/src/components/ui/LogoutConfirmDialog/LogoutConfirmDialog.vue b/src/components/ui/LogoutConfirmDialog/LogoutConfirmDialog.vue new file mode 100644 index 0000000..97e9b13 --- /dev/null +++ b/src/components/ui/LogoutConfirmDialog/LogoutConfirmDialog.vue @@ -0,0 +1,80 @@ + + + diff --git a/src/components/ui/LogoutConfirmDialog/index.ts b/src/components/ui/LogoutConfirmDialog/index.ts new file mode 100644 index 0000000..90fe6c6 --- /dev/null +++ b/src/components/ui/LogoutConfirmDialog/index.ts @@ -0,0 +1 @@ +export { default as LogoutConfirmDialog } from './LogoutConfirmDialog.vue'