feat(ui): simplify timeout speedup for button stories

This commit is contained in:
Brian McGee
2025-07-02 16:01:25 +01:00
parent b7792a34c8
commit d2a76f4e83
2 changed files with 5 additions and 74 deletions

View File

@@ -1,56 +0,0 @@
import { query } from "@solidjs/router";
import set = query.set;
import FakeTimers, { Clock } from "@sinonjs/fake-timers";
export interface StorybookClock {
tick: (ms: number) => void;
setTimeout: (
callback: (...args: any[]) => void,
delay: number,
...args: any[]
) => void;
}
class BrowserClock implements StorybookClock {
setTimeout(
callback: (...args: any[]) => void,
delay: number,
args: any,
): void {
// set a normal timeout
setTimeout(callback, delay, args);
}
tick(_: number): void {
// do nothing
}
}
class FakeClock implements StorybookClock {
private clock: Clock;
constructor() {
this.clock = FakeTimers.createClock();
}
setTimeout(
callback: (...args: any[]) => void,
delay: number,
args: any,
): void {
this.clock.setTimeout(callback, delay, args);
}
tick(ms: number): void {
this.clock.tick(ms);
}
}
export function StorybookClock(): StorybookClock {
// Check if we're in a browser environment
const isBrowser = process.env.NODE_ENV !== "test";
console.log("is browser", isBrowser);
return isBrowser ? new BrowserClock() : new FakeClock();
}