From 43f05160c547e02e3208fb68f0608d7179ff3697 Mon Sep 17 00:00:00 2001 From: mARTin Date: Wed, 18 Mar 2026 00:16:02 +0100 Subject: [PATCH] fix: merge kanban filter bar and project chips into single row MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Put + icon (create project) on far left, followed by project drop chips, then a spacer, then search/filters on the right — all in one unified toolbar row. v1.47.1 Co-Authored-By: Claude Opus 4.6 --- package.json | 2 +- src/app/globals.css | 11 -------- src/components/WeeklyView.tsx | 48 ++++++++++++++++++----------------- 3 files changed, 26 insertions(+), 35 deletions(-) diff --git a/package.json b/package.json index 4dc9b87..62cc749 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "my-weekly-todo-list", - "version": "1.47.0", + "version": "1.47.1", "description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view", "main": "index.js", "scripts": { diff --git a/src/app/globals.css b/src/app/globals.css index 673cb2e..3c403ce 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1718,7 +1718,6 @@ h3 { background: var(--weekly-bg, #fff); flex-shrink: 0; flex-wrap: wrap; - justify-content: flex-end; } .kanban-filter-search { @@ -3885,16 +3884,6 @@ h3 { background: rgba(255,255,255,0.03) !important; } -/* Kanban project drop targets */ -.kanban-project-targets { - display: flex; - gap: 6px; - padding: 8px 12px; - border-bottom: 1px solid var(--weekly-border, #e5e7eb); - background: var(--weekly-bg-alt, #f8f9fa); - flex-wrap: wrap; - flex-shrink: 0; -} .kanban-project-chip { display: flex; align-items: center; diff --git a/src/components/WeeklyView.tsx b/src/components/WeeklyView.tsx index 388b45f..d820c4c 100644 --- a/src/components/WeeklyView.tsx +++ b/src/components/WeeklyView.tsx @@ -6352,8 +6352,32 @@ export default function WeeklyView() { return (
- {/* Filter Bar */} + {/* Unified toolbar: projects on left, filters on right */}
+ {/* Left side: + button, project chips */} + + {projects.map(p => ( +
+ + {p.name} +
+ ))} + {projects.length > 0 && ( +
+ + {language === "de" ? "Kein Projekt" : "No project"} +
+ )} + {/* Spacer pushes filters to right */} +
+ {/* Right side: search + filters */}
)} -
- {/* Project drop targets — drag tasks here to assign */} - {projects.length > 0 && ( -
- {projects.map(p => ( -
- - {p.name} -
- ))} -
- - {language === "de" ? "Kein Projekt" : "No project"} -
-
- )}
{kanbanStages.map((stage) => { const stageTasks = filteredKanbanTasks.filter(t => (t.kanbanStage || null) === stage.id);