F(frontend): add route loading feedback
Some checks failed
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled

This commit is contained in:
2026-05-20 11:47:27 +03:30
parent f2d5b92b22
commit 5711961b9b
12 changed files with 312 additions and 6 deletions

View File

@@ -0,0 +1,35 @@
type ProgressEvent = "start" | "done";
type Listener = (event: ProgressEvent) => void;
const listeners = new Set<Listener>();
let active = false;
function emit(event: ProgressEvent) {
listeners.forEach((listener) => listener(event));
}
export function subscribeNavigationProgress(listener: Listener) {
listeners.add(listener);
return () => {
listeners.delete(listener);
};
}
export function startNavigationProgress() {
if (active) {
return;
}
active = true;
emit("start");
}
export function completeNavigationProgress() {
if (!active) {
return;
}
active = false;
emit("done");
}