From 9dc6e8750d1e6d65cb199d0a811e5d2e6a2a9227 Mon Sep 17 00:00:00 2001 From: Raphael Forment Date: Sat, 5 Aug 2023 22:18:43 +0200 Subject: [PATCH] improve iterators --- src/API.ts | 19 ++++++++++++++++--- src/main.ts | 1 + 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/API.ts b/src/API.ts index 15b4a2f..e41b4fa 100644 --- a/src/API.ts +++ b/src/API.ts @@ -278,7 +278,7 @@ export class UserAPI { * @param step - The step value of the iterator * @returns The current value of the iterator */ - + if (!(name in this.iterators)) { // Create new iterator with default step of 1 this.iterators[name] = { @@ -287,16 +287,29 @@ export class UserAPI { limit }; } else { + // Check if limit has changed + if (this.iterators[name].limit !== limit) { + // Reset value to 0 and update limit + this.iterators[name].value = 0; + this.iterators[name].limit = limit; + } + + // Check if step has changed + if (this.iterators[name].step !== step) { + // Update step + this.iterators[name].step = step ?? this.iterators[name].step; + } + // Increment existing iterator by step value this.iterators[name].value += this.iterators[name].step; - + // Check for limit overshoot if (this.iterators[name].limit !== undefined && this.iterators[name].value > this.iterators[name].limit) { this.iterators[name].value = 0; } } - + // Return current iterator value return this.iterators[name].value; } diff --git a/src/main.ts b/src/main.ts index a413d9a..a6dc478 100644 --- a/src/main.ts +++ b/src/main.ts @@ -705,6 +705,7 @@ function startClock() { function startOnEnter(e: KeyboardEvent) { if (e.code === "Enter" || e.code === "Space") startClock(); } + function startOnClick(e: MouseEvent) { if (e.button === 0) startClock(); }