Skip to content

Commit 54e7d87

Browse files
Remove weird arg co-constraint.
1 parent 2cec53c commit 54e7d87

File tree

2 files changed

+23
-23
lines changed

2 files changed

+23
-23
lines changed

src/board/index.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,15 @@ export class Board {
8484
this.pins = Array(33);
8585
this.pins[MICROBIT_HAL_PIN_FACE] = new Pin(
8686
"pinLogo",
87-
this.svg.querySelector("#Logo")!,
88-
formattedMessage({ id: "touch-logo" }),
87+
{
88+
element: this.svg.querySelector("#Logo")!,
89+
label: formattedMessage({ id: "touch-logo" }),
90+
},
8991
onChange
9092
);
91-
this.pins[MICROBIT_HAL_PIN_P0] = new Pin("pin0", null, null, onChange);
92-
this.pins[MICROBIT_HAL_PIN_P1] = new Pin("pin1", null, null, onChange);
93-
this.pins[MICROBIT_HAL_PIN_P2] = new Pin("pin2", null, null, onChange);
93+
this.pins[MICROBIT_HAL_PIN_P0] = new Pin("pin0", null, onChange);
94+
this.pins[MICROBIT_HAL_PIN_P1] = new Pin("pin1", null, onChange);
95+
this.pins[MICROBIT_HAL_PIN_P2] = new Pin("pin2", null, onChange);
9496
this.audio = new Audio();
9597
this.temperature = new RangeSensor("temperature", -5, 50, 21, "°C");
9698
this.accelerometer = new Accelerometer(onChange);

src/board/pins.ts

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,17 @@ export class Pin {
1212

1313
constructor(
1414
private id: "pin0" | "pin1" | "pin2" | "pinLogo",
15-
private element: SVGElement | null,
16-
label: string | null,
15+
private ui: { element: SVGElement; label: string },
1716
private onChange: (changes: Partial<State>) => void
1817
) {
19-
if ((element ? 0 : 1) + (label ? 0 : 1) === 1) {
20-
throw new Error("Must provide element and label or neither");
21-
}
2218
this.state = new RangeSensor(id, 0, 1, 0, undefined);
2319

24-
if (this.element) {
25-
this.element.setAttribute("role", "button");
26-
this.element.setAttribute("tabindex", "0");
27-
this.element.ariaLabel = label;
28-
this.element.style.cursor = "pointer";
20+
if (this.ui) {
21+
const { element, label } = this.ui;
22+
element.setAttribute("role", "button");
23+
element.setAttribute("tabindex", "0");
24+
element.ariaLabel = label;
25+
element.style.cursor = "pointer";
2926
}
3027

3128
this.keyListener = (e) => {
@@ -60,12 +57,13 @@ export class Pin {
6057
}
6158
};
6259

63-
if (this.element) {
64-
this.element.addEventListener("mousedown", this.mouseDownListener);
65-
this.element.addEventListener("mouseup", this.mouseUpListener);
66-
this.element.addEventListener("keydown", this.keyListener);
67-
this.element.addEventListener("keyup", this.keyListener);
68-
this.element.addEventListener("mouseleave", this.mouseLeaveListener);
60+
if (this.ui) {
61+
const { element } = this.ui;
62+
element.addEventListener("mousedown", this.mouseDownListener);
63+
element.addEventListener("mouseup", this.mouseUpListener);
64+
element.addEventListener("keydown", this.keyListener);
65+
element.addEventListener("keyup", this.keyListener);
66+
element.addEventListener("mouseleave", this.mouseLeaveListener);
6967
}
7068
}
7169

@@ -102,9 +100,9 @@ export class Pin {
102100
}
103101

104102
render() {
105-
if (this.element) {
103+
if (this.ui) {
106104
const fill = !!this.state.value ? "red" : "url(#an)";
107-
this.element.querySelectorAll("path").forEach((p) => {
105+
this.ui.element.querySelectorAll("path").forEach((p) => {
108106
p.style.fill = fill;
109107
});
110108
}

0 commit comments

Comments
 (0)