fix: unify someday task icon column — all icons before checkbox

The  priority and delegation icons were still rendering inside the
text span (after the checkbox). Now ALL task icons (project, priority,
delegation) are consolidated into the single fixed-width 18px column
before the checkbox for someday tasks. Tasks with no icon get an empty
placeholder so checkboxes and task names stay column-aligned.

v1.108.1
This commit is contained in:
mARTin-B78 2026-05-11 12:05:34 +02:00
parent 55ef3614d1
commit 5d55beeb55
2 changed files with 14 additions and 6 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "my-weekly-todo-list", "name": "my-weekly-todo-list",
"version": "1.108.0", "version": "1.108.1",
"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

@ -10240,10 +10240,17 @@ function TaskItem({
</form> </form>
) : ( ) : (
<> <>
{/* Someday: fixed-width project icon column for alignment */} {/* Someday: fixed-width icon column — project icon, priority badge, delegation, or empty placeholder */}
{isSomeday && showProjectIcons && ( {isSomeday && (
<span style={{ width: "18px", minWidth: "18px", flexShrink: 0, display: "inline-flex", alignItems: "center", justifyContent: "center" }}> <span style={{ width: "18px", minWidth: "18px", flexShrink: 0, display: "inline-flex", alignItems: "center", justifyContent: "center" }}>
{task.project && <ProjectIcon icon={task.project.icon} size={13} color={task.project.color || "#888"} />} {showProjectIcons && task.project
? <ProjectIcon icon={task.project.icon} size={13} color={task.project.color || "#888"} />
: (() => {
if (showPriorityIcons) { const pb = getPriorityBadge(task, priorityStyle, 11); if (pb) return pb.node; }
if (task.delegatedTo) return task.delegatedTo === "AI" ? <Bot size={11} color="#8b5cf6" /> : <User size={11} color="#8b5cf6" />;
return null;
})()
}
</span> </span>
)} )}
{/* Someday: checkbox outside text span so it aligns in its own column */} {/* Someday: checkbox outside text span so it aligns in its own column */}
@ -10299,7 +10306,8 @@ function TaskItem({
flex: 1, flex: 1,
}} }}
> >
{showPriorityIcons && (() => { {/* Non-someday only: priority/delegation icons inline. Someday shows them in the leading column. */}
{!isSomeday && showPriorityIcons && (() => {
const pb = getPriorityBadge(task, priorityStyle, 11); const pb = getPriorityBadge(task, priorityStyle, 11);
return pb ? ( return pb ? (
<span title={pb.label} style={{ marginRight: "3px", verticalAlign: "middle", display: "inline-flex", alignItems: "center" }}> <span title={pb.label} style={{ marginRight: "3px", verticalAlign: "middle", display: "inline-flex", alignItems: "center" }}>
@ -10307,7 +10315,7 @@ function TaskItem({
</span> </span>
) : null; ) : null;
})()} })()}
{task.delegatedTo && ( {!isSomeday && task.delegatedTo && (
<span <span
title={task.delegatedTo === "AI" ? `AI: ${task.delegationNote || ""}` : task.delegatedTo} title={task.delegatedTo === "AI" ? `AI: ${task.delegationNote || ""}` : task.delegatedTo}
style={{ marginRight: "3px", verticalAlign: "middle", display: "inline-flex", alignItems: "center" }} style={{ marginRight: "3px", verticalAlign: "middle", display: "inline-flex", alignItems: "center" }}