forked from MapComplete/MapComplete
		
	First version of giving feedback to contriubtors on invalid values
This commit is contained in:
		
							parent
							
								
									e07b770e8c
								
							
						
					
					
						commit
						5221e91dcd
					
				
					 16 changed files with 586 additions and 436 deletions
				
			
		|  | @ -8,7 +8,8 @@ export class TextField extends InputElement<string> { | |||
|     private readonly value: UIEventSource<string>; | ||||
|     private _element: HTMLElement; | ||||
|     private readonly _isValid: (s: string, country?: () => string) => boolean; | ||||
| 
 | ||||
|     private _rawValue: UIEventSource<string>  | ||||
|      | ||||
|     constructor(options?: { | ||||
|         placeholder?: string | BaseUIElement, | ||||
|         value?: UIEventSource<string>, | ||||
|  | @ -23,6 +24,7 @@ export class TextField extends InputElement<string> { | |||
|         const self = this; | ||||
|         options = options ?? {}; | ||||
|         this.value = options?.value ?? new UIEventSource<string>(undefined); | ||||
|         this._rawValue = new UIEventSource<string>("") | ||||
|         this._isValid = options.isValid ?? (_ => true); | ||||
| 
 | ||||
|         const placeholder = Translations.W(options.placeholder ?? "").ConstructElement().innerText.replace("'", "'"); | ||||
|  | @ -77,6 +79,7 @@ export class TextField extends InputElement<string> { | |||
|             const endDistance = field.value.substring(field.selectionEnd).replace(/ /g, '').length; | ||||
|             // @ts-ignore
 | ||||
|             let val: string = field.value; | ||||
|             self._rawValue.setData(val) | ||||
|             if (!self.IsValid(val)) { | ||||
|                 self.value.setData(undefined); | ||||
|             } else { | ||||
|  | @ -128,7 +131,11 @@ export class TextField extends InputElement<string> { | |||
|     GetValue(): UIEventSource<string> { | ||||
|         return this.value; | ||||
|     } | ||||
| 
 | ||||
|      | ||||
|     GetRawValue(): UIEventSource<string>{ | ||||
|         return this._rawValue | ||||
|     } | ||||
|      | ||||
|     IsValid(t: string): boolean { | ||||
|         if (t === undefined || t === null) { | ||||
|             return false | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue