fix: provider icons on all tasks, font size matching, day header z-index

- Show sync provider icons (Google, Microsoft, Apple, Synology) on both
  someday and weekday tasks with fallback detection from externalId
- Remove hardcoded fontSize from someday tasks so they inherit CSS variables
- Remove line-height override for someday task text
- Bump day header z-index to 20 to prevent task overlap when scrolling
- Always propagate externalProvider when dragging tasks between slots

v1.17.2
This commit is contained in:
mARTin 2026-03-08 12:50:51 +01:00
parent f925c8cb7f
commit 7f04750e4a
3 changed files with 27 additions and 29 deletions

View File

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

@ -633,8 +633,8 @@ h3 {
box-sizing: border-box; box-sizing: border-box;
position: sticky; position: sticky;
top: 0; top: 0;
z-index: 5; z-index: 20;
background: var(--weekly-bg, white); background-color: var(--weekly-bg, white);
} }
.weekly-day-date { .weekly-day-date {
@ -1429,7 +1429,6 @@ h3 {
} }
.weekly-someday-list .weekly-task-text { .weekly-someday-list .weekly-task-text {
line-height: 1.4;
word-break: break-word; word-break: break-word;
overflow: visible; overflow: visible;
white-space: normal; white-space: normal;

View File

@ -3543,7 +3543,7 @@ export default function WeeklyView() {
scheduledDate: newScheduledDate, scheduledDate: newScheduledDate,
dayOfWeek, dayOfWeek,
startTime: targetSlot || "", startTime: targetSlot || "",
...(taskProvider && !draggedTask.externalProvider && { externalProvider: taskProvider }), ...(taskProvider && { externalProvider: taskProvider }),
}), }),
}); });
@ -7035,7 +7035,7 @@ function TaskItem({
onDoubleClick={variant === "default" ? onEdit : undefined} onDoubleClick={variant === "default" ? onEdit : undefined}
style={ style={
variant === "minimal" || isSomeday variant === "minimal" || isSomeday
? { fontSize: "0.9375rem", display: "flex", alignItems: "center", gap: "4px", ...(task.completed && showTaskCheckboxes ? { opacity: 0.5 } : {}) } ? { display: "flex", alignItems: "center", gap: "4px", ...(task.completed && showTaskCheckboxes ? { opacity: 0.5 } : {}) }
: { display: "flex", alignItems: "center", gap: "6px", ...(task.completed && showTaskCheckboxes ? { opacity: 0.5 } : {}) } : { display: "flex", alignItems: "center", gap: "6px", ...(task.completed && showTaskCheckboxes ? { opacity: 0.5 } : {}) }
} }
> >
@ -7069,29 +7069,28 @@ function TaskItem({
> >
{task.title} {task.title}
</span> </span>
{/* DEBUG: always show provider info */} {(() => {
{!isSomeday && ( const provider = task.externalProvider
<span style={{ color: task.externalProvider ? "red" : "orange", fontWeight: "bold", fontSize: "11px", marginLeft: "4px", flexShrink: 0 }}> || (task.externalId?.startsWith("synology::") ? "synology" : null);
[{task.externalProvider || "no-ext"}] if (!provider) return null;
</span> const iconMap: Record<string, { icon: any; color: string; label: string }> = {
)} google: { icon: faGoogle, color: "#4285F4", label: "Google" },
{task.externalProvider && !isSomeday && ( outlook: { icon: faMicrosoft, color: "#0078D4", label: "Microsoft" },
<span apple: { icon: faApple, color: "#555", label: "Apple" },
className="flex-shrink-0" synology: { icon: faServer, color: "#007AFF", label: "Synology" },
title={`Synced with ${task.externalProvider === "outlook" ? "Microsoft" : task.externalProvider === "google" ? "Google" : task.externalProvider === "apple" ? "Apple" : task.externalProvider}`} };
style={{ display: "inline-flex", alignItems: "center", opacity: 0.55, marginLeft: "4px" }} const info = iconMap[provider];
> if (!info) return null;
{task.externalProvider === "google" ? ( return (
<FontAwesomeIcon icon={faGoogle} style={{ width: 12, height: 12, color: "#4285F4" }} /> <span
) : task.externalProvider === "outlook" ? ( className="flex-shrink-0"
<FontAwesomeIcon icon={faMicrosoft} style={{ width: 12, height: 12, color: "#0078D4" }} /> title={`Synced with ${info.label}`}
) : task.externalProvider === "apple" ? ( style={{ display: "inline-flex", alignItems: "center", opacity: 0.55, marginLeft: "4px" }}
<FontAwesomeIcon icon={faApple} style={{ width: 12, height: 12, color: "#555" }} /> >
) : task.externalProvider === "synology" ? ( <FontAwesomeIcon icon={info.icon} style={{ width: 12, height: 12, color: info.color }} />
<FontAwesomeIcon icon={faServer} style={{ width: 12, height: 12, color: "#007AFF" }} /> </span>
) : null} );
</span> })()}
)}
</span> </span>
{/* Subtask indicator - toggles subtask list */} {/* Subtask indicator - toggles subtask list */}