@brendonovich/kobalte__solidbase
Version:
Fully featured, fully customisable static site generation for SolidStart
29 lines (23 loc) • 646 B
text/typescript
import { BProgress, type BProgressOptions } from "@bprogress/core";
import { useIsRouting } from "@solidjs/router";
import { createEffect, onCleanup } from "solid-js";
import "@bprogress/core/css";
export function usePace(options?: Partial<BProgressOptions>) {
const isRouting = useIsRouting();
BProgress.configure({
showSpinner: false,
...options,
});
let paceTimeoutId: number | undefined;
createEffect(() => {
if (isRouting()) {
paceTimeoutId = window.setTimeout(() => BProgress.start(), 100);
} else {
clearTimeout(paceTimeoutId);
BProgress.done();
}
});
onCleanup(() => {
clearTimeout(paceTimeoutId);
});
}