| 8 | 8 | | import { EmptyState, ErrorText, SubmitButton, TimeAgo } from "../../components/ui"; |
| 9 | 9 | | import { Badge } from "../../components/ui/badge"; |
| 10 | 10 | | import { Card } from "../../components/ui/card"; |
| 11 | + | import { NavTab, NavTabs } from "../../components/ui/nav-tabs"; |
| 11 | 12 | | import { refusal } from "../../lib/access.server"; |
| 12 | 13 | | import { cn } from "../../lib/cn"; |
| 13 | 14 | | import { page } from "../../lib/meta"; |
| ⋯ |
| 76 | 77 | | about="Exceptions, grouped: the same error thrown a thousand times is one row. Each can become an issue, carrying the stack and the request it came from." |
| 77 | 78 | | /> |
| 78 | 79 | | <FilterBar path={path} view={view} environments={facets?.environments ?? []} services={facets?.services ?? []}> |
| 79 | | − | <nav className="flex rounded-md border border-line p-0.5 text-sm" aria-label="State"> |
| 80 | + | <NavTabs label="State" variant="pill"> |
| 80 | 81 | | {STATES.map((s) => ( |
| 81 | | − | <Link |
| 82 | + | <NavTab |
| 82 | 83 | | key={s} |
| 83 | 84 | | to={viewHref(path, view, { state: s === "open" ? null : s })} |
| 84 | 85 | | preventScrollReset |
| 85 | | − | aria-current={s === state ? "true" : undefined} |
| 86 | | − | className={cn("rounded px-2 py-0.5 text-xs capitalize", s === state ? "bg-raised text-fg" : "text-muted hover:text-fg")} |
| 86 | + | current={s === state} |
| 87 | + | variant="pill" |
| 88 | + | className="capitalize" |
| 87 | 89 | | > |
| 88 | 90 | | {s} |
| 89 | | − | </Link> |
| 91 | + | </NavTab> |
| 90 | 92 | | ))} |
| 91 | | − | </nav> |
| 93 | + | </NavTabs> |
| 92 | 94 | | </FilterBar> |
| 93 | 95 | | <div className="mt-3 min-h-5"> |
| 94 | 96 | | {actionData && "notice" in actionData && <p className="text-sm text-success">{actionData.notice}</p>} |