diff options
| author | soryu <soryu@soryu.co> | 2026-02-20 00:46:21 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-20 00:46:21 +0000 |
| commit | aa974c4888851f10c782e07b9d9bff7a6f1aef15 (patch) | |
| tree | b1cd40dedeaff64fe447fdd9c6c1000870b6a536 /makima/frontend/src/components/NavStrip.tsx | |
| parent | ed84d7ec5ece272a2cb8dabd36cbd6074df0887e (diff) | |
| download | soryu-aa974c4888851f10c782e07b9d9bff7a6f1aef15.tar.gz soryu-aa974c4888851f10c782e07b9d9bff7a6f1aef15.zip | |
fix: reconcile:on blocking, pending question notifications, and infra improvements (#73)
* feat: soryu-co/soryu - makima: Fix contracts page overflow - constrain layout to viewport height
* feat: soryu-co/soryu - makima: Add git fetch to create_worktree and improve completion prompt merge conflict handling
* WIP: heartbeat checkpoint
* feat: soryu-co/soryu - makima: Add pending question notification badge to directive sidebar and nav
* feat: soryu-co/soryu - makima: Fix reconcile:on blocking - make phaseguard poll indefinitely instead of returning immediately
Diffstat (limited to 'makima/frontend/src/components/NavStrip.tsx')
| -rw-r--r-- | makima/frontend/src/components/NavStrip.tsx | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/makima/frontend/src/components/NavStrip.tsx b/makima/frontend/src/components/NavStrip.tsx index 117f4e1..4932427 100644 --- a/makima/frontend/src/components/NavStrip.tsx +++ b/makima/frontend/src/components/NavStrip.tsx @@ -1,4 +1,5 @@ import { useAuth } from "../contexts/AuthContext"; +import { useSupervisorQuestions } from "../contexts/SupervisorQuestionsContext"; import { RewriteLink } from "./RewriteLink"; interface NavLink { @@ -19,6 +20,8 @@ const NAV_LINKS: NavLink[] = [ export function NavStrip() { const { isAuthenticated, isAuthConfigured, signOut, user } = useAuth(); + const { pendingQuestions } = useSupervisorQuestions(); + const directiveQuestionCount = pendingQuestions.filter(q => q.directiveId).length; const handleSignOut = async () => { await signOut(); @@ -38,14 +41,18 @@ export function NavStrip() { </span> <div className="flex flex-wrap gap-2 items-center flex-1"> {NAV_LINKS.map((link) => ( - <RewriteLink - key={link.label} - to={link.href} - disabled={link.requiresAuth && !hasAccess} - external={link.external} - > - {link.label} - </RewriteLink> + <span key={link.label} className="relative inline-flex items-center"> + <RewriteLink + to={link.href} + disabled={link.requiresAuth && !hasAccess} + external={link.external} + > + {link.label} + </RewriteLink> + {link.label === "Directives" && directiveQuestionCount > 0 && ( + <span className="ml-0.5 inline-block w-2 h-2 rounded-full bg-amber-400 animate-pulse" title={`${directiveQuestionCount} pending question(s)`} /> + )} + </span> ))} </div> <div className="flex items-center gap-2 pl-2.5 border-l border-[rgba(117,170,252,0.35)]"> |
