forked from MapComplete/MapComplete
Hotfix: fix text input in radio buttons
This commit is contained in:
parent
4cce18f818
commit
611d46187c
7 changed files with 88 additions and 11 deletions
|
@ -13,9 +13,13 @@ export class FixedInputElement<T> extends InputElement<T> {
|
|||
value: T,
|
||||
comparator: ((t0: T, t1: T) => boolean ) = undefined) {
|
||||
super(undefined);
|
||||
this._comparator = comparator ?? ((t0, t1) => t0 == t1);
|
||||
this._comparator = comparator ?? ((t0, t1) => t0 == t1);
|
||||
this.value = new UIEventSource<T>(value);
|
||||
this.rendering = typeof (rendering) === 'string' ? new FixedUiElement(rendering) : rendering;
|
||||
const self = this;
|
||||
this.onClick(() => {
|
||||
self.IsSelected.setData(true)
|
||||
})
|
||||
}
|
||||
|
||||
GetValue(): UIEventSource<T> {
|
||||
|
@ -32,7 +36,6 @@ export class FixedInputElement<T> extends InputElement<T> {
|
|||
protected InnerUpdate(htmlElement: HTMLElement) {
|
||||
super.InnerUpdate(htmlElement);
|
||||
const self = this;
|
||||
htmlElement.addEventListener("mouseenter", () => self.IsSelected.setData(true));
|
||||
htmlElement.addEventListener("mouseout", () => self.IsSelected.setData(false))
|
||||
|
||||
}
|
||||
|
|
|
@ -35,7 +35,9 @@ export default class InputElementMap<T, X> extends InputElement<X> {
|
|||
}), extraSources, x => {
|
||||
return fromX(x);
|
||||
});
|
||||
}w
|
||||
this._value.addCallback(console.log)
|
||||
this.IsSelected.addCallback(s => console.log("Is selected?", s))
|
||||
}
|
||||
|
||||
GetValue(): UIEventSource<X> {
|
||||
return this._value;
|
||||
|
|
|
@ -38,6 +38,11 @@ export class RadioButton<T> extends InputElement<T> {
|
|||
elements[i]?.onClick(() => {
|
||||
self._selectedElementIndex.setData(i);
|
||||
});
|
||||
elements[i].IsSelected.addCallback(isSelected => {
|
||||
if (isSelected) {
|
||||
self._selectedElementIndex.setData(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue