fix: kanban stage delete UX and hide all-day events in kanban

- Use trash icon instead of X for delete button
- Add cancel X next to the red confirm button
- Hide all-day calendar events in kanban view

v1.48.2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
mARTin 2026-03-18 00:51:18 +01:00
parent d1d7c4a7b6
commit 30f495733d
2 changed files with 29 additions and 20 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "my-weekly-todo-list", "name": "my-weekly-todo-list",
"version": "1.48.1", "version": "1.48.2",
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view", "description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

View File

@ -6211,8 +6211,8 @@ export default function WeeklyView() {
</div> </div>
</header> </header>
{/* All-Day Events Section (above position) */} {/* All-Day Events Section (above position) — hidden in kanban */}
{allDayPosition === "above" && allDaySection} {viewStyle !== "kanban" && allDayPosition === "above" && allDaySection}
{/* Kanban Board View */} {/* Kanban Board View */}
{viewStyle === "kanban" && (() => { {viewStyle === "kanban" && (() => {
@ -6466,6 +6466,7 @@ export default function WeeklyView() {
</span> </span>
<span className="kanban-column-count">{stageTasks.length}</span> <span className="kanban-column-count">{stageTasks.length}</span>
{kanbanDeleteStageId === stage.id ? ( {kanbanDeleteStageId === stage.id ? (
<div style={{ display: "flex", alignItems: "center", gap: "3px", flexShrink: 0 }}>
<button <button
onClick={async () => { onClick={async () => {
// Move all tasks in this stage back to "no phase" // Move all tasks in this stage back to "no phase"
@ -6476,17 +6477,25 @@ export default function WeeklyView() {
saveKanbanStages(kanbanStages.filter((_, i) => i !== idx)); saveKanbanStages(kanbanStages.filter((_, i) => i !== idx));
setKanbanDeleteStageId(null); setKanbanDeleteStageId(null);
}} }}
style={{ padding: "2px 6px", fontSize: "0.65rem", borderRadius: "4px", border: "none", cursor: "pointer", background: "#ef4444", color: "#fff", fontWeight: 600, flexShrink: 0, whiteSpace: "nowrap" }} style={{ padding: "2px 6px", fontSize: "0.65rem", borderRadius: "4px", border: "none", cursor: "pointer", background: "#ef4444", color: "#fff", fontWeight: 600, whiteSpace: "nowrap" }}
> >
{language === "de" ? "Ja, löschen" : "Confirm"} {language === "de" ? "Ja, löschen" : "Confirm"}
</button> </button>
<button
onClick={() => setKanbanDeleteStageId(null)}
style={{ padding: "2px", background: "none", border: "none", cursor: "pointer", color: "#9ca3af", display: "flex" }}
title={language === "de" ? "Abbrechen" : "Cancel"}
>
<X size={12} />
</button>
</div>
) : ( ) : (
<button <button
onClick={() => setKanbanDeleteStageId(stage.id)} onClick={() => setKanbanDeleteStageId(stage.id)}
className="kanban-column-delete" className="kanban-column-delete"
title={language === "de" ? "Phase löschen" : "Delete stage"} title={language === "de" ? "Phase löschen" : "Delete stage"}
> >
<X size={12} /> <Trash2 size={12} />
</button> </button>
)} )}
</div> </div>
@ -7225,8 +7234,8 @@ export default function WeeklyView() {
</div> </div>
</div>} </div>}
{/* All-Day Events Section (below position) */} {/* All-Day Events Section (below position) — hidden in kanban */}
{allDayPosition === "below" && allDaySection} {viewStyle !== "kanban" && allDayPosition === "below" && allDaySection}
{/* Someday Section */} {/* Someday Section */}
{showSomeday && (<> {showSomeday && (<>