JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr{ gilour

File "toast-timer.ts"

Full Path: /home/markqprx/iniasli.pro/client/ui/toast/toast-timer.ts
File size: 535 bytes
MIME-type: text/plain
Charset: utf-8

export class ToastTimer {
  private timerId?: ReturnType<typeof setTimeout>;
  private createdAt: number = 0;

  constructor(private callback: () => void, private remaining: number) {
    this.resume();
  }

  pause() {
    clearTimeout(this.timerId);
    this.remaining -= Date.now() - this.createdAt;
  }

  resume() {
    this.createdAt = Date.now();
    if (this.timerId) {
      clearTimeout(this.timerId);
    }
    this.timerId = setTimeout(this.callback, this.remaining);
  }

  clear() {
    clearTimeout(this.timerId);
  }
}