1
0
Fork 0

feat(navigation): add qualification course link

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
Jason Fraley 2026-09-03 23:36:22 -04:00
parent d04b2d3ecb
commit 8e9262ca68

View file

@ -5,6 +5,7 @@ import {
Bird, Bird,
Bomb, Bomb,
ChevronsUpDown, ChevronsUpDown,
Crosshair,
FileTextIcon, FileTextIcon,
LogOut, LogOut,
Radio, Radio,
@ -30,7 +31,6 @@ import {
SidebarMenuItem, SidebarMenuItem,
useSidebar, useSidebar,
} from "@/components/ui/sidebar"; } from "@/components/ui/sidebar";
import type { User } from "@/payload-types";
import { ImpersonationModal } from "@/components/frontend/impersonation/ImpersonationModal"; import { ImpersonationModal } from "@/components/frontend/impersonation/ImpersonationModal";
import { getImpersonationUsers } from "@/app/(frontend)/impersonate/actions"; import { getImpersonationUsers } from "@/app/(frontend)/impersonate/actions";
@ -52,7 +52,6 @@ export function NavUser({
const [loggingOut, setLoggingOut] = useState(false); const [loggingOut, setLoggingOut] = useState(false);
const [showImpersonationModal, setShowImpersonationModal] = useState(false); const [showImpersonationModal, setShowImpersonationModal] = useState(false);
const [impersonationUsers, setImpersonationUsers] = useState<any[]>([]); const [impersonationUsers, setImpersonationUsers] = useState<any[]>([]);
const [loadingImpersonationUsers, setLoadingImpersonationUsers] = useState(false);
const primaryLine = showCallsign ? user.username : user.displayName; const primaryLine = showCallsign ? user.username : user.displayName;
const secondaryLine = showCallsign ? user.displayName : user.username; const secondaryLine = showCallsign ? user.displayName : user.username;
@ -71,14 +70,11 @@ export function NavUser({
}; };
const handleOpenImpersonationModal = async () => { const handleOpenImpersonationModal = async () => {
setLoadingImpersonationUsers(true);
try { try {
const users = await getImpersonationUsers(); const users = await getImpersonationUsers();
setImpersonationUsers(users); setImpersonationUsers(users);
} catch (error) { } catch (error) {
console.error("Failed to load impersonation users:", error); console.error("Failed to load impersonation users:", error);
} finally {
setLoadingImpersonationUsers(false);
} }
setShowImpersonationModal(true); setShowImpersonationModal(true);
}; };
@ -154,6 +150,12 @@ export function NavUser({
Radio Traffic Radio Traffic
</Link> </Link>
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem asChild>
<Link href="/qualification">
<Crosshair />
Qualification Course
</Link>
</DropdownMenuItem>
</DropdownMenuGroup> </DropdownMenuGroup>
<DropdownMenuSeparator /> <DropdownMenuSeparator />
<DropdownMenuGroup> <DropdownMenuGroup>