Add blocked count into status bar

This commit is contained in:
Andras Schmelczer 2025-01-02 10:52:24 +00:00
parent 0d2b0e6de0
commit 07d6a75c96
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C

View file

@ -1,17 +1,31 @@
import type { Plugin } from "obsidian";
import { Syncer } from "src/sync-operations/syncer";
import type { HistoryStats, SyncHistory } from "src/tracing/sync-history";
export class StatusBar {
private readonly statusBarItem: HTMLElement;
public constructor(plugin: Plugin, history: SyncHistory) {
private lastHistoryStats: HistoryStats | undefined;
private lastRemaining: number | undefined;
public constructor(plugin: Plugin, history: SyncHistory, syncer: Syncer) {
this.statusBarItem = plugin.addStatusBarItem();
history.addSyncHistoryUpdateListener((status) => {
this.updateStatus(status);
this.lastHistoryStats = status;
this.updateStatus();
});
syncer.addRemainingOperationsListener((remainingOperations) => {
this.lastRemaining = remainingOperations;
this.updateStatus();
});
}
private updateStatus({ success, error }: HistoryStats): void {
this.statusBarItem.setText(`${success}${error}`);
private updateStatus(): void {
this.statusBarItem.setText(
`${this.lastRemaining ?? 0} ⏳ | ${
this.lastHistoryStats?.success ?? 0
} | ${this.lastHistoryStats?.error ?? 0} `
);
}
}