mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
19 lines
623 B
TypeScript
19 lines
623 B
TypeScript
import { always, extract, taps } from "@sanderling/spec";
|
|
|
|
const counter = extract((s) => {
|
|
const el = s.ax.find({ id: "counter" });
|
|
return el ? parseInt(el.text, 10) || 0 : 0;
|
|
}).named("counter");
|
|
|
|
// The + and - buttons each move the counter by exactly 1, so no step ever
|
|
// changes it by more than 1. A bug that double-applied a click would break this.
|
|
const changesByAtMostOne = always(() => {
|
|
const previous = counter.previous;
|
|
if (previous === undefined) return true;
|
|
return Math.abs(counter.current - previous) <= 1;
|
|
});
|
|
|
|
export const properties = { changesByAtMostOne };
|
|
|
|
export const actionsRoot = taps;
|