import { NavLink } from "react-router-dom"; import { useQuery } from "@tanstack/react-query"; import { fetchWorkflowTasks } from "../../api/workflow"; import { useAuth } from "../../auth/AuthContext"; import { hasAnyPermission } from "../../auth/permissions"; import { MOBILE_APPROVAL_PERMISSIONS, MOBILE_NAV_ITEMS, } from "../../features/mobile/navigation"; import { cn } from "../../lib/utils"; function resolveBadgeLabel(count: number) { if (count > 99) { return "99+"; } return String(count); } export function MobileBottomNav() { const { permissions } = useAuth(); const canAccessApprovals = hasAnyPermission(permissions, [...MOBILE_APPROVAL_PERMISSIONS]); const pendingCountQuery = useQuery({ enabled: canAccessApprovals, queryKey: ["mobile", "workflow", "pending-count"], queryFn: async () => { const response = await fetchWorkflowTasks({ status: "pending", page: 1, pageSize: 1 }); return response.total; }, refetchInterval: 30_000, }); const pendingCount = pendingCountQuery.data ?? 0; return ( ); }