2026-02-28 20:42:40 +00:00
|
|
|
import { useShallow } from "zustand/react/shallow";
|
2026-02-27 04:29:51 +00:00
|
|
|
import { useAppState } from "../../store/appState";
|
|
|
|
|
|
|
|
|
|
export default function StatusBar() {
|
2026-03-12 13:14:08 -07:00
|
|
|
const { projects, sessions, terminalHasSelection } = useAppState(
|
|
|
|
|
useShallow(s => ({ projects: s.projects, sessions: s.sessions, terminalHasSelection: s.terminalHasSelection }))
|
2026-02-28 20:42:40 +00:00
|
|
|
);
|
2026-02-27 04:29:51 +00:00
|
|
|
const running = projects.filter((p) => p.status === "running").length;
|
|
|
|
|
|
|
|
|
|
return (
|
2026-02-27 10:31:27 -08:00
|
|
|
<div className="flex items-center h-6 px-4 bg-[var(--bg-tertiary)] border border-[var(--border-color)] rounded-lg text-xs text-[var(--text-secondary)]">
|
2026-02-27 04:29:51 +00:00
|
|
|
<span>
|
|
|
|
|
{projects.length} project{projects.length !== 1 ? "s" : ""}
|
|
|
|
|
</span>
|
|
|
|
|
<span className="mx-2">|</span>
|
|
|
|
|
<span>
|
|
|
|
|
{running} running
|
|
|
|
|
</span>
|
|
|
|
|
<span className="mx-2">|</span>
|
|
|
|
|
<span>
|
|
|
|
|
{sessions.length} terminal{sessions.length !== 1 ? "s" : ""}
|
|
|
|
|
</span>
|
2026-03-12 13:14:08 -07:00
|
|
|
{terminalHasSelection && (
|
|
|
|
|
<>
|
|
|
|
|
<span className="mx-2">|</span>
|
|
|
|
|
<span className="text-[var(--accent)]">Ctrl+Shift+C to copy</span>
|
|
|
|
|
</>
|
|
|
|
|
)}
|
2026-02-27 04:29:51 +00:00
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|