show calendar activities more prominently when no time entry exists

This commit is contained in:
Gregor Vostrak
2026-04-08 14:43:09 +02:00
parent 8cbc9838c9
commit 1e7364fc4b
5 changed files with 180 additions and 15 deletions

View File

@@ -21,10 +21,10 @@ export function useActivityBoxes(params: {
function getActivityBoxLabel(box: ActivityBox): string {
const periodStart = getLocalizedDayJs(box.period.start);
const periodEnd = getLocalizedDayJs(box.period.end);
const durationMinutes = Math.round(periodEnd.diff(periodStart, 'minute', true));
const durationText = formatActivityDuration(durationMinutes);
const startText = periodStart.format('HH:mm');
const endText = periodEnd.format('HH:mm');
const status = box.isIdle ? 'Idling' : 'Active';
return `${status} (${durationText})`;
return `${status} (${startText} - ${endText})`;
}
function getActivityBoxActivities(box: ActivityBox) {
@@ -40,6 +40,15 @@ export function useActivityBoxes(params: {
return activity.label ? `${activity.appName} - ${activity.label}` : activity.appName;
}
function getTopActivity(box: ActivityBox): WindowActivityInPeriod | null {
const activities = box.period.windowActivities;
if (!activities || activities.length === 0) return null;
return activities.reduce<WindowActivityInPeriod>(
(top, a) => (a.count > top.count ? a : top),
activities[0]!
);
}
const activityBoxes = computed<ActivityBox[]>(() => {
const periods = params.activityPeriods();
if (!periods || periods.length === 0) return [];
@@ -99,5 +108,6 @@ export function useActivityBoxes(params: {
getActivityBoxActivities,
getActivityPercentage,
getActivityText,
getTopActivity,
};
}