Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions dashboard/frontend/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ import {
} from "@/components/ui/dropdown-menu";
import { PageHeading, Loading, ErrorNotice, Notice } from "@/components/shared";
import { Dsps } from "@/pages/Dsps";
import { DspHome } from "@/pages/DspHome";
import { Diagnostics } from "@/pages/Diagnostics";
import { Settings, DspOnboarding } from "@/pages/Settings";
import { Plugins } from "@/pages/Plugins";
Expand Down Expand Up @@ -305,6 +306,8 @@ function Shell({
<ErrorNotice error={error} />
{route.id === "platform" ? (
<Dsps />
) : route.id === "dashboard" ? (
<DspHome />
) : route.id === "diagnostics" ? (
<Diagnostics />
) : route.id === "updates" ? (
Expand Down
15 changes: 15 additions & 0 deletions dashboard/frontend/src/pages/DspHome.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Wrench } from "lucide-react";

export function DspHome() {
return (
<section className="dsp-home" aria-labelledby="dsp-home-heading">
<div className="dsp-home-notice">
<div className="dsp-home-icon" aria-hidden="true">
<Wrench />
</div>
<h1 id="dsp-home-heading">Currently under development</h1>
<p>We’re building your DSP home page.</p>
</div>
</section>
);
}
50 changes: 50 additions & 0 deletions dashboard/frontend/src/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,56 @@
gap: 24px;
margin-bottom: 35px;
}
.main-area:has(.dsp-home) {
display: flex;
flex-direction: column;
min-height: 100dvh;
}
.main-area:has(.dsp-home) > :is(.topbar, .dsp-view-banner) {
flex-shrink: 0;
}
.page-container:has(> .dsp-home) {
display: flex;
flex: 1;
flex-direction: column;
width: 100%;
padding-block: 24px;
}
.dsp-home {
display: flex;
flex: 1;
align-items: center;
justify-content: center;
padding-block: 24px;
text-align: center;
}
.dsp-home-icon {
display: flex;
align-items: center;
justify-content: center;
width: 56px;
height: 56px;
margin: 0 auto 20px;
border-radius: 14px;
background: var(--accent);
color: var(--primary);
}
.dsp-home-icon svg {
width: 28px;
height: 28px;
stroke-width: 1.75;
}
.dsp-home h1 {
font-size: 20px;
font-weight: 600;
line-height: 1.4;
letter-spacing: -0.4px;
}
.dsp-home p {
margin-top: 10px;
color: var(--muted-foreground);
font-size: 14px;
}
.page-heading h1,
.backup-workspace h1 {
font-size: var(--heading-size);
Expand Down
24 changes: 12 additions & 12 deletions dashboard/public/assets/frontend.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dashboard/public/assets/styles.css

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dashboard/tests/browser/dashboard.spec.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ test("DSP pages do not fetch workforce data before connection; team roles and in
"Team & Roles",
"Settings",
]);
await expect(page.locator("main")).toHaveText("Home Page");
await expect(page.getByRole("heading", { level: 1, name: "Currently under development", exact: true })).toBeVisible();
await navigate(page, "Paycom");
await expect(page.getByRole("heading", { name: "Paycom", exact: true })).toBeVisible();
await expect(page.getByText("Paycom is not connected.", { exact: false })).toBeVisible();
Expand Down Expand Up @@ -337,7 +337,7 @@ test("session changes clear protected views and Driver access stays within the D
]);
await page.goto("/#/platform");
await expect(page).toHaveURL(/#\/dashboard$/);
await expect(page.locator("main")).toHaveText("Home Page");
await expect(page.getByRole("heading", { level: 1, name: "Currently under development", exact: true })).toBeVisible();
await page.goto("/#/settings?tab=audit");
await expect(page.getByRole("tab", { name: "Audit log", exact: true })).toBeVisible();
await expect(page.getByRole("tab", { name: "Audit log", exact: true })).toHaveAttribute("data-state", "active");
Expand Down
2 changes: 1 addition & 1 deletion dashboard/tests/browser/release-popup.spec.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ test('DSP popup is clean and scoped; X dismissal persists on mobile', async ({ p
await dialog.getByRole('button', { name: 'Close update' }).click();
await expect(dialog).toHaveCount(0);
await page.reload();
await expect(page.getByRole('heading', { name: 'Home Page', exact: true })).toBeVisible();
await expect(page.getByRole('heading', { name: 'Currently under development', exact: true })).toBeVisible();
expect((await (await page.request.get('/api/updates/popup')).json()).data.release).toBeNull();
});
test('Escape saves dismissal; failed save stays visible with retry and long copy scrolls', async ({ page }) => {
Expand Down