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",
"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",
"main": "index.js",
"scripts": {

View File

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

View File

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