Animate active task indicators
This commit is contained in:
+9
-2
@@ -23,15 +23,22 @@ export function updateTaskWidget(
|
||||
|
||||
const hasActiveTimer = tasks.some((task) => task.status === "in-progress" && task.startedAt !== undefined);
|
||||
ctx.ui.setWidget(WIDGET_ID, (tui, theme) => {
|
||||
let inProgressFrame = 0;
|
||||
const timer = hasActiveTimer
|
||||
? setInterval(() => tui.requestRender(), Math.max(1, refreshMs))
|
||||
? setInterval(() => {
|
||||
inProgressFrame += 1;
|
||||
tui.requestRender();
|
||||
}, Math.max(1, refreshMs))
|
||||
: undefined;
|
||||
timer?.unref();
|
||||
|
||||
return {
|
||||
render(width: number): string[] {
|
||||
const currentTasks = state.list();
|
||||
return [renderProgressHeader(state.stats(), theme, width), ...renderWidgetTree(currentTasks, theme, width)];
|
||||
return [
|
||||
renderProgressHeader(state.stats(), theme, width),
|
||||
...renderWidgetTree(currentTasks, theme, width, " ", inProgressFrame),
|
||||
];
|
||||
},
|
||||
invalidate(): void {},
|
||||
dispose(): void {
|
||||
|
||||
Reference in New Issue
Block a user