forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {UIElement} from "./UIElement";
 | |
| import Locale from "../UI/i18n/Locale";
 | |
| import State from "../State";
 | |
| import Translations from "./i18n/Translations";
 | |
| import Combine from "./Base/Combine";
 | |
| import LanguagePicker from "./LanguagePicker";
 | |
| 
 | |
| 
 | |
| export class WelcomeMessage extends UIElement {
 | |
|     private languagePicker: UIElement;
 | |
| 
 | |
|     private readonly description: UIElement;
 | |
|     private readonly plzLogIn: UIElement;
 | |
|     private readonly welcomeBack: UIElement;
 | |
|     private readonly tail: UIElement;
 | |
| 
 | |
| 
 | |
|     constructor() {
 | |
|         super(State.state.osmConnection.userDetails);
 | |
|         this.ListenTo(Locale.language);
 | |
|         this.languagePicker = LanguagePicker.CreateLanguagePicker(State.state.layoutToUse.data.language, Translations.t.general.pickLanguage);
 | |
|         const layout = State.state.layoutToUse.data;
 | |
| 
 | |
|         this.description = new Combine([
 | |
|             "<h3>", layout.title, "</h3>",
 | |
|             layout.description
 | |
|         ])
 | |
|         layout.descriptionTail
 | |
|         
 | |
|         
 | |
| 
 | |
| 
 | |
|         this.plzLogIn =
 | |
|             Translations.t.general.loginWithOpenStreetMap
 | |
|                 .onClick(() => {
 | |
|                     State.state.osmConnection.AttemptLogin()
 | |
|                 });
 | |
|         this.welcomeBack = Translations.t.general.welcomeBack;
 | |
|         this.tail = layout.descriptionTail;
 | |
|     }
 | |
| 
 | |
|     InnerRender(): string {
 | |
| 
 | |
|         let loginStatus = undefined;
 | |
|         if (State.state.featureSwitchUserbadge.data) {
 | |
|             loginStatus = (State.state.osmConnection.userDetails.data.loggedIn ? this.welcomeBack : 
 | |
|                 this.plzLogIn);
 | |
|         }
 | |
| 
 | |
|         return new Combine([
 | |
|             this.description,
 | |
|             "<br/><br/>",
 | |
|             loginStatus,
 | |
|             this.tail,
 | |
|             "<br/>",
 | |
|             this.languagePicker
 | |
|         ]).Render()
 | |
|     }
 | |
| 
 | |
| 
 | |
| } |