Skip to content
Merged
2 changes: 1 addition & 1 deletion src/app/components/AppNavbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ const NAV_ITEMS = [
},
{
to: appPath("/job-os/companies"),
label: "System",
label: "Companies & System",
icon: FolderOpen,
matches: (pathname: string) =>
pathname.startsWith(appPath("/job-os/companies")) ||
Expand Down
4 changes: 3 additions & 1 deletion src/app/components/job-os/JobOsLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
FileSpreadsheet,
FileText,
FolderOpen,
LayoutDashboard,
Megaphone,
Settings,
ShieldCheck,
Expand Down Expand Up @@ -35,6 +36,7 @@ function getActiveSection(pathname: string): "action" | "pipeline" | "system" {

const SECTION_NAV = {
action: [
{ to: appPath(), label: "Command Center", icon: LayoutDashboard },
{ to: appPath("/job-os/sources"), label: "Sources", icon: Compass },
],
pipeline: [
Expand All @@ -43,7 +45,7 @@ const SECTION_NAV = {
{ to: appPath("/job-os/outreach"), label: "Outreach", icon: Megaphone },
],
system: [
{ to: appPath("/job-os/companies"), label: "Target Companies", icon: Building2 },
{ to: appPath("/job-os/companies"), label: "Companies", icon: Building2 },
{ to: appPath("/job-os/assets"), label: "Assets", icon: FolderOpen },
{ to: appPath("/cv-optimizer"), label: "CV Optimizer", icon: WandSparkles },
{ to: appPath("/compliance/afa"), label: "AfA Compliance", icon: ShieldCheck },
Expand Down
44 changes: 30 additions & 14 deletions src/app/pages/dashboard/DashboardPage.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { useMemo, useState } from "react";
import { useNavigate } from "react-router";
import { ChevronDown, ChevronUp, Layers3 } from "lucide-react";
import { NavLink, useNavigate } from "react-router";
import { ChevronDown, ChevronUp, Compass, LayoutDashboard, Layers3 } from "lucide-react";
import { useApp } from "../../context";
import { useJobOs } from "../../hooks/useJobOs";
import { UnifiedAddModal } from "../../components/job-os/UnifiedAddModal";

import { useJobOsSyncSnapshot } from "../../services/jobOsSync";
import {
getNextActions,
Expand All @@ -20,7 +20,7 @@ import { TodayPanel } from "../../components/dashboard/TodayPanel";
import { HotOpportunities } from "../../components/dashboard/HotOpportunities";
import { PipelineStats } from "../../components/dashboard/PipelineStats";
import { ProbabilityPanel } from "../../components/dashboard/ProbabilityPanel";
import { QuickActions } from "../../components/dashboard/QuickActions";

import { FirstRunScreen } from "../../components/dashboard/FirstRunScreen";
import { AppPageShell } from "../../components/layout/AppPageShell";
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../../components/ui/collapsible";
Expand All @@ -32,7 +32,6 @@ export function DashboardPage() {
const navigate = useNavigate();
const jobOsSync = useJobOsSyncSnapshot();
const [supportOpen, setSupportOpen] = useState(false);
const [addModalOpen, setAddModalOpen] = useState(false);
const {
companies,
roles,
Expand Down Expand Up @@ -116,6 +115,32 @@ export function DashboardPage() {
showSync
settingsContent={settingsContent}
/>
<div className="border-b border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-950">
<div className="max-w-[1800px] mx-auto px-6 py-3">
<nav className="flex flex-wrap gap-2">
{[
{ to: appPath(), label: "Command Center", icon: LayoutDashboard, end: true },
{ to: appPath("/job-os/sources"), label: "Sources", icon: Compass, end: false },
].map(({ to, label, icon: Icon, end }) => (
<NavLink
key={to}
to={to}
end={end}
className={({ isActive }) =>
`text-xs px-3 py-1.5 rounded-md border transition-colors inline-flex items-center gap-1.5 ${
isActive
? "bg-neutral-900 text-white border-neutral-900 dark:bg-neutral-100 dark:text-black dark:border-neutral-100"
: "bg-white text-neutral-600 border-neutral-200 hover:bg-neutral-100 dark:bg-neutral-900 dark:text-neutral-300 dark:border-neutral-700 dark:hover:bg-neutral-800"
}`
}
>
<Icon className="w-3.5 h-3.5" />
{label}
</NavLink>
))}
</nav>
</div>
</div>

<main className="mx-auto max-w-[1800px] px-4 py-5 sm:px-6">
{holdDashboard ? (
Expand Down Expand Up @@ -156,7 +181,6 @@ export function DashboardPage() {

<div className="min-w-0 lg:self-start">
<div className="space-y-4 lg:sticky lg:top-24">
<QuickActions onAddRole={() => setAddModalOpen(true)} />
<WeeklyExecutionPanel applications={applications} />
<PipelineStats stats={stats} isLoading={loading} />
<ProbabilityPanel stats={stats} isLoading={loading} />
Expand Down Expand Up @@ -197,14 +221,6 @@ export function DashboardPage() {
</AppPageShell>
</main>

<UnifiedAddModal
open={addModalOpen}
onClose={() => setAddModalOpen(false)}
companies={companies}
addCompany={addCompany}
addRole={addRole}
addApplication={addApplication}
/>
</div>
);
}
4 changes: 2 additions & 2 deletions src/app/pages/job-os/JobOsCompaniesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -549,8 +549,8 @@ export default function JobOsCompaniesPage() {

return (
<JobOsLayout
title="Company Engine"
subtitle="Account-based target company tracking"
title="Companies"
subtitle="Track companies by status — Research, Target, Active — and route them into roles"
notice={syncNotice}
settingsFooter={<JobOsTransferControls getExportState={exportState} onImportState={replaceState} />}
>
Expand Down
Loading
Loading