diff --git a/orchestrator/src/client/components/layout.tsx b/orchestrator/src/client/components/layout.tsx index 4d71d77..5e77d95 100644 --- a/orchestrator/src/client/components/layout.tsx +++ b/orchestrator/src/client/components/layout.tsx @@ -3,7 +3,7 @@ */ import React, { useState } from "react"; -import { Link, useLocation } from "react-router-dom"; +import { Link, useLocation, useNavigate } from "react-router-dom"; import { Briefcase, Home, LucideIcon, Menu, Settings, Shield } from "lucide-react"; import { Badge } from "@/components/ui/badge"; @@ -46,8 +46,18 @@ export const PageHeader: React.FC = ({ actions, }) => { const location = useLocation(); + const navigate = useNavigate(); const [navOpen, setNavOpen] = useState(false); + const handleNavClick = (to: string) => { + if (location.pathname === to) { + setNavOpen(false); + return; + } + setNavOpen(false); + setTimeout(() => navigate(to), 150); + }; + return (
@@ -65,12 +75,12 @@ export const PageHeader: React.FC = ({ diff --git a/orchestrator/src/client/pages/OrchestratorPage.tsx b/orchestrator/src/client/pages/OrchestratorPage.tsx index 24fe4e6..9bd65e6 100644 --- a/orchestrator/src/client/pages/OrchestratorPage.tsx +++ b/orchestrator/src/client/pages/OrchestratorPage.tsx @@ -29,7 +29,7 @@ import { Sparkles, XCircle, } from "lucide-react"; -import { Link, useLocation } from "react-router-dom"; +import { Link, useLocation, useNavigate } from "react-router-dom"; import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; import { toast } from "sonner"; @@ -304,6 +304,7 @@ const ScoreMeter: React.FC<{ score: number | null }> = ({ score }) => { export const OrchestratorPage: React.FC = () => { const location = useLocation(); + const navigate = useNavigate(); const [navOpen, setNavOpen] = useState(false); const [jobs, setJobs] = useState([]); const [stats, setStats] = useState>({ @@ -1078,11 +1079,18 @@ export const OrchestratorPage: React.FC = () => { diff --git a/orchestrator/src/client/pages/UkVisaJobsPage.tsx b/orchestrator/src/client/pages/UkVisaJobsPage.tsx index 321056b..6868741 100644 --- a/orchestrator/src/client/pages/UkVisaJobsPage.tsx +++ b/orchestrator/src/client/pages/UkVisaJobsPage.tsx @@ -21,7 +21,7 @@ import { Settings, Shield, } from "lucide-react"; -import { Link, useLocation } from "react-router-dom"; +import { Link, useLocation, useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { Badge } from "@/components/ui/badge"; @@ -90,6 +90,7 @@ const navLinks = [ export const UkVisaJobsPage: React.FC = () => { const location = useLocation(); + const navigate = useNavigate(); const [navOpen, setNavOpen] = useState(false); const [searchTermInput, setSearchTermInput] = useState(""); const [activeSearchTerm, setActiveSearchTerm] = useState(null); @@ -366,12 +367,19 @@ export const UkVisaJobsPage: React.FC = () => {