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
				
			
		
							
								
								
									
										44
									
								
								test.ts
									
										
									
									
									
								
							
							
						
						
									
										44
									
								
								test.ts
									
										
									
									
									
								
							|  | @ -1,15 +1,33 @@ | |||
| import xml2js from 'xml2js'; | ||||
| import {readFileSync} from "fs"; | ||||
| import Combine from "./UI/Base/Combine"; | ||||
| import ValidatedTextField from "./UI/Input/ValidatedTextField"; | ||||
| import Title from "./UI/Base/Title"; | ||||
| import {FixedUiElement} from "./UI/Base/FixedUiElement"; | ||||
| import {VariableUiElement} from "./UI/Base/VariableUIElement"; | ||||
| import {UIEventSource} from "./Logic/UIEventSource"; | ||||
| import {Translation} from "./UI/i18n/Translation"; | ||||
| 
 | ||||
| const xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + | ||||
|     "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"375px\" height=\"375px\" viewBox=\"0 0 375 375\" version=\"1.1\">\n" + | ||||
|     "  <g id=\"surface1\">\n" + | ||||
|     "    <path style=\" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;\" d=\"M 54.046875 233.558594 C 75.683594 233.558594 93.1875 215.566406 93.1875 193.296875 C 93.1875 171.148438 75.683594 153.148438 54.046875 153.148438 C 32.496094 153.148438 15 171.148438 15 193.296875 C 15 215.558594 32.496094 233.558594 54.046875 233.558594 Z M 273.269531 302.675781 C 275.09375 301.386719 277.5 301.777344 278.828125 303.554688 L 286.066406 313.84375 C 287.296875 315.628906 286.921875 318.195312 285.195312 319.589844 L 232.09375 359.242188 C 230.378906 360.53125 227.878906 360.128906 226.523438 358.359375 L 219.308594 348.066406 C 218.070312 346.28125 218.460938 343.726562 220.175781 342.335938 Z M 213.246094 251.550781 L 192.1875 213.578125 L 181.132812 221.878906 L 202.191406 260.054688 Z M 164.113281 162.847656 L 82.214844 15 L 66.546875 15.105469 L 152.960938 171.253906 Z M 241.222656 241.074219 C 245.851562 237.613281 256.441406 232.5 262.5 232.5 L 337.5 232.5 C 352.304688 232.5 360 247.394531 360 262.53125 C 360 277.753906 352.304688 285 337.5 285 L 270 285 L 188.730469 348.765625 C 160.171875 369.90625 142.859375 346.679688 142.859375 346.679688 L 79.238281 281.210938 C 68.566406 268.066406 70.875 243.046875 83.671875 231.96875 L 171.710938 167.488281 C 180.457031 159.988281 193.441406 161.167969 200.851562 170.0625 C 208.171875 179.0625 207.015625 192.515625 198.253906 200.03125 L 141.890625 242.460938 L 182.386719 283.589844 Z M 241.222656 241.074219 \"/>\n" + | ||||
|     "  </g>\n" + | ||||
|     "</svg>" | ||||
| new Combine( | ||||
|     ValidatedTextField.AvailableTypes().map(key => { | ||||
|             let inp; | ||||
|             const feedback = new UIEventSource<Translation>(undefined) | ||||
|             try { | ||||
|                 inp = ValidatedTextField.ForType(key).ConstructInputElement({ | ||||
|                     feedback, | ||||
|                     country: () => "be", | ||||
|                      | ||||
|                 }); | ||||
|             } catch (e) { | ||||
|                 console.error(e) | ||||
|                 inp = new FixedUiElement(e).SetClass("alert") | ||||
|             } | ||||
| 
 | ||||
|             return new Combine([ | ||||
|                 new Title(key), | ||||
|                 inp, | ||||
|                 new VariableUiElement(inp.GetValue()), | ||||
|                 new VariableUiElement(feedback.map(v => v?.SetClass("alert"))) | ||||
|             ]); | ||||
|         } | ||||
|     ) | ||||
| ).AttachTo("maindiv") | ||||
| 
 | ||||
| xml2js.parseStringPromise(xml).then(svgResult => { | ||||
|     const svg = svgResult.svg | ||||
|     const builder = new xml2js.Builder(); | ||||
|     console.log(builder.buildObject(svg)) | ||||
| }) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue