From e6c1b7c4a0eb2e1ab274e2b2a2d75fe6eee864a8 Mon Sep 17 00:00:00 2001 From: Nicholai Date: Fri, 23 Jan 2026 21:08:18 -0700 Subject: [PATCH] refactor(layout): remove site-header and tighten spacing replace site-header with inline sidebar trigger, reduce dashboard padding/gaps, and adjust schedule page layout to flex properly within the content area. --- src/app/dashboard/layout.tsx | 9 +++-- src/app/dashboard/page.tsx | 4 +- .../dashboard/projects/[id]/schedule/page.tsx | 2 +- src/components/schedule/gantt-chart.tsx | 12 +++++- src/components/schedule/gantt.css | 2 +- .../schedule/schedule-calendar-view.tsx | 10 ++--- .../schedule/schedule-gantt-view.tsx | 6 +-- .../schedule/schedule-list-view.tsx | 6 +-- src/components/schedule/schedule-toolbar.tsx | 2 +- src/components/schedule/schedule-view.tsx | 40 +++++++++++-------- src/components/schedule/task-form-dialog.tsx | 38 ++++++++++++++++-- src/components/section-cards.tsx | 2 +- 12 files changed, 91 insertions(+), 42 deletions(-) diff --git a/src/app/dashboard/layout.tsx b/src/app/dashboard/layout.tsx index 2035e61..9a9aae4 100755 --- a/src/app/dashboard/layout.tsx +++ b/src/app/dashboard/layout.tsx @@ -1,8 +1,8 @@ import { AppSidebar } from "@/components/app-sidebar" -import { SiteHeader } from "@/components/site-header" import { SidebarInset, SidebarProvider, + SidebarTrigger, } from "@/components/ui/sidebar" export default function DashboardLayout({ @@ -15,15 +15,16 @@ export default function DashboardLayout({ style={ { "--sidebar-width": "calc(var(--spacing) * 72)", - "--header-height": "calc(var(--spacing) * 12)", } as React.CSSProperties } > -
-
+
+
+ +
{children}
diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index 079f156..b6705f9 100755 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -6,9 +6,9 @@ import data from "./data.json" export default function Page() { return ( -
+
-
+
diff --git a/src/app/dashboard/projects/[id]/schedule/page.tsx b/src/app/dashboard/projects/[id]/schedule/page.tsx index e25503c..2c09744 100755 --- a/src/app/dashboard/projects/[id]/schedule/page.tsx +++ b/src/app/dashboard/projects/[id]/schedule/page.tsx @@ -49,7 +49,7 @@ export default async function SchedulePage({ } return ( -
+
+
) diff --git a/src/components/schedule/gantt.css b/src/components/schedule/gantt.css index d57aaac..1a1518c 100755 --- a/src/components/schedule/gantt.css +++ b/src/components/schedule/gantt.css @@ -1,6 +1,6 @@ /* frappe-gantt base styles (vendored from frappe-gantt/dist/frappe-gantt.css) */ :root{--g-arrow-color: #1f2937;--g-bar-color: #fff;--g-bar-border: #fff;--g-tick-color-thick: #ededed;--g-tick-color: #f3f3f3;--g-actions-background: #f3f3f3;--g-border-color: #ebeff2;--g-text-muted: #7c7c7c;--g-text-light: #fff;--g-text-dark: #171717;--g-progress-color: #dbdbdb;--g-handle-color: #37352f;--g-weekend-label-color: #dcdce4;--g-expected-progress: #c4c4e9;--g-header-background: #fff;--g-row-color: #fdfdfd;--g-row-border-color: #c7c7c7;--g-today-highlight: #37352f;--g-popup-actions: #ebeff2;--g-weekend-highlight-color: #f7f7f7} -.gantt-container{line-height:14.5px;position:relative;overflow:auto;font-size:12px;height:var(--gv-grid-height);width:100%;border-radius:8px} +.gantt-container{line-height:14.5px;position:relative;isolation:isolate;overflow:auto;font-size:12px;height:var(--gv-grid-height);width:100%;border-radius:8px} .gantt-container .popup-wrapper{position:absolute;top:0;left:0;background:#fff;box-shadow:0 10px 24px -3px #0003;padding:10px;border-radius:5px;width:max-content;z-index:1000} .gantt-container .popup-wrapper .title{margin-bottom:2px;color:var(--g-text-dark);font-size:.85rem;font-weight:650;line-height:15px} .gantt-container .popup-wrapper .subtitle{color:var(--g-text-dark);font-size:.8rem;margin-bottom:5px} diff --git a/src/components/schedule/schedule-calendar-view.tsx b/src/components/schedule/schedule-calendar-view.tsx index 3d79de6..6174ed2 100755 --- a/src/components/schedule/schedule-calendar-view.tsx +++ b/src/components/schedule/schedule-calendar-view.tsx @@ -103,8 +103,8 @@ export function ScheduleCalendarView({ } return ( -
-
+
+
-
+
{["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"].map( (day) => ( @@ -158,7 +158,7 @@ export function ScheduleCalendarView({ )}
-
+
{days.map((day) => { const dateKey = format(day, "yyyy-MM-dd") const dayTasks = tasksByDate.get(dateKey) || [] @@ -174,7 +174,7 @@ export function ScheduleCalendarView({ return (
diff --git a/src/components/schedule/schedule-gantt-view.tsx b/src/components/schedule/schedule-gantt-view.tsx index 9d8b64a..f9d935d 100755 --- a/src/components/schedule/schedule-gantt-view.tsx +++ b/src/components/schedule/schedule-gantt-view.tsx @@ -87,8 +87,8 @@ export function ScheduleGanttView({ } return ( -
-
+
+
{(["Day", "Week", "Month"] as ViewMode[]).map((mode) => (
-
+
{table.getHeaderGroups().map((headerGroup) => ( diff --git a/src/components/schedule/schedule-toolbar.tsx b/src/components/schedule/schedule-toolbar.tsx index d9d10bc..117a3e2 100755 --- a/src/components/schedule/schedule-toolbar.tsx +++ b/src/components/schedule/schedule-toolbar.tsx @@ -25,7 +25,7 @@ export function ScheduleToolbar({ onNewItem }: ScheduleToolbarProps) { const [offlineMode, setOfflineMode] = useState(false) return ( -
+
+ + + + { + if (date) { + field.onChange(format(date, "yyyy-MM-dd")) + } + }} + initialFocus + /> + + )} diff --git a/src/components/section-cards.tsx b/src/components/section-cards.tsx index f714d25..53dbf0b 100755 --- a/src/components/section-cards.tsx +++ b/src/components/section-cards.tsx @@ -12,7 +12,7 @@ import { export function SectionCards() { return ( -
+
Total Revenue