From d99a0580e6977e826bc566866d868de520e5b9ef Mon Sep 17 00:00:00 2001 From: kimjaehyeon0101 <47347352-kimjaehyeon0101@users.noreply.replit.com> Date: Mon, 29 Sep 2025 21:18:33 +0000 Subject: [PATCH] Update site navigation and logout functionality Refactors client-side navigation to use `wouter`'s `setLocation` instead of `window.location.href` for smoother transitions and improves the logout process by making it an asynchronous POST request with proper error handling and state invalidation. Also adds an "Auctions" button to the main navigation bar on multiple pages. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 069d4324-6c40-4355-955e-c714a50de1ea Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3df548ff-50ae-432f-9be4-25d34eccc983/069d4324-6c40-4355-955e-c714a50de1ea/bLfICpO --- .replit | 4 -- ...α…³α„…ᅡᆫ샷 2025-09-30 α„‹α…©α„Œα…₯ᆫ 5.49.02_1759178956266.png | Bin 0 -> 21273 bytes client/src/pages/AdminDashboard.tsx | 54 ++++++++++++++---- client/src/pages/Auctions.tsx | 6 +- client/src/pages/Home.tsx | 49 +++++++++++----- client/src/pages/MediaOutlet.tsx | 41 +++++++++---- server/routes.ts | 5 +- 7 files changed, 113 insertions(+), 46 deletions(-) create mode 100644 attached_assets/스크란샷 2025-09-30 α„‹α…©α„Œα…₯ᆫ 5.49.02_1759178956266.png diff --git a/.replit b/.replit index 2c6be92..b0526f5 100644 --- a/.replit +++ b/.replit @@ -22,10 +22,6 @@ externalPort = 3002 localPort = 37531 externalPort = 3001 -[[ports]] -localPort = 40799 -externalPort = 3003 - [[ports]] localPort = 43349 externalPort = 3000 diff --git a/attached_assets/스크란샷 2025-09-30 α„‹α…©α„Œα…₯ᆫ 5.49.02_1759178956266.png b/attached_assets/스크란샷 2025-09-30 α„‹α…©α„Œα…₯ᆫ 5.49.02_1759178956266.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb0083b1e30fde6282f1da8e57b768ccfc0dc59 GIT binary patch literal 21273 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 literal 0 HcmV?d00001 diff --git a/client/src/pages/AdminDashboard.tsx b/client/src/pages/AdminDashboard.tsx index 2f3dbfe..db9b39e 100644 --- a/client/src/pages/AdminDashboard.tsx +++ b/client/src/pages/AdminDashboard.tsx @@ -11,10 +11,13 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@ import type { MediaOutlet } from "@shared/schema"; import MediaOutletManagement from "@/components/MediaOutletManagement"; import Footer from "@/components/Footer"; +import { useLocation } from "wouter"; +import { queryClient } from "@/lib/queryClient"; export default function AdminDashboard() { const { user, isLoading } = useAuth(); const { toast } = useToast(); + const [, setLocation] = useLocation(); const [searchTerm, setSearchTerm] = useState(""); const [selectedOutlet, setSelectedOutlet] = useState(null); const [managingOutlet, setManagingOutlet] = useState(null); @@ -29,7 +32,7 @@ export default function AdminDashboard() { variant: "destructive", }); setTimeout(() => { - window.location.href = "/"; + setLocation("/"); }, 500); } }, [isLoading, user, toast]); @@ -78,8 +81,29 @@ export default function AdminDashboard() { }); }; - const handleLogout = () => { - window.location.href = "/api/logout"; + const handleLogout = async () => { + try { + const response = await fetch("/api/logout", { + method: "POST", + credentials: "include", + }); + + if (response.ok) { + toast({ + title: "Logged Out", + description: "You have been successfully logged out.", + }); + + queryClient.invalidateQueries({ queryKey: ["/api/auth/user"] }); + setLocation("/"); + } + } catch (error) { + toast({ + title: "Logout Error", + description: "An error occurred while logging out.", + variant: "destructive", + }); + } }; if (isLoading || !user || (user.role !== 'admin' && user.role !== 'superadmin')) { @@ -107,14 +131,13 @@ export default function AdminDashboard() {
- - SAPIENS - + SAPIENS setLocation("/")} + />

Admin Dashboard

@@ -135,6 +158,15 @@ export default function AdminDashboard() { />
+ + + + <> + + + )} ) : ( - + <> + + + )} +
); @@ -212,7 +222,7 @@ export default function MediaOutlet() { alt="SAPIENS" className="h-6 w-auto cursor-pointer" data-testid="logo-sapiens" - onClick={() => window.location.href = "/"} + onClick={() => setLocation("/")} />
@@ -235,6 +245,15 @@ export default function MediaOutlet() { {isAuthenticated && user ? ( <> + +