diff --git a/frontend/src/components/dashboard/UpcomingWidget.tsx b/frontend/src/components/dashboard/UpcomingWidget.tsx index 7a18533..2d821ea 100644 --- a/frontend/src/components/dashboard/UpcomingWidget.tsx +++ b/frontend/src/components/dashboard/UpcomingWidget.tsx @@ -299,100 +299,99 @@ export default function UpcomingWidget({ items }: UpcomingWidgetProps) { )} - {/* Inline quick actions (desktop hover) */} - {isHovered && item.type === 'todo' && ( - - )} + {/* Right side: static info + action overlay */} +
+ {/* Always-rendered labels (stable layout) */} +
+ {timeLabel && ( + + {timeLabel} + + )} + + {item.priority && item.priority !== 'none' && ( + + )} +
- {isHovered && item.type === 'reminder' && ( -
- {/* Snooze button with dropdown */} -
+ {/* Action buttons overlaid in same space */} + {isHovered && item.type === 'todo' && ( +
- {snoozeOpen === itemKey && ( -
- - - -
- )}
- {/* Dismiss button */} - -
- )} + )} - {/* Time label */} - {timeLabel && !isHovered && ( - - {timeLabel} - - )} - - {/* Type pill */} - {!isHovered && ( - - )} - - {/* Priority pill (todos only) */} - {!isHovered && item.priority && item.priority !== 'none' && ( - - )} + {isHovered && item.type === 'reminder' && ( +
+
+ + {snoozeOpen === itemKey && ( +
+ + + +
+ )} +
+ +
+ )} +
); })}