forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			33 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import {UIEventSource} from "../UIEventSource";
							 | 
						||
| 
								 | 
							
								import LayoutConfig from "../../Customizations/JSON/LayoutConfig";
							 | 
						||
| 
								 | 
							
								import Translations from "../../UI/i18n/Translations";
							 | 
						||
| 
								 | 
							
								import Locale from "../../UI/i18n/Locale";
							 | 
						||
| 
								 | 
							
								import {UIElement} from "../../UI/UIElement";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default class TitleHandler{
							 | 
						||
| 
								 | 
							
								    constructor(layoutToUse: UIEventSource<LayoutConfig>, fullScreenMessage: UIEventSource<{ content: UIElement, hashText: string, titleText?: UIElement }>) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        layoutToUse.map((layoutToUse) => {
							 | 
						||
| 
								 | 
							
								                return Translations.WT(layoutToUse?.title)?.txt ?? "MapComplete"
							 | 
						||
| 
								 | 
							
								            }, [Locale.language]
							 | 
						||
| 
								 | 
							
								        ).addCallbackAndRun((title) => {
							 | 
						||
| 
								 | 
							
								            document.title = title
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        fullScreenMessage.addCallbackAndRun(selected => {
							 | 
						||
| 
								 | 
							
								            const title = Translations.WT(layoutToUse.data?.title)?.txt ?? "MapComplete"
							 | 
						||
| 
								 | 
							
								            if(selected?.titleText?.data === undefined){
							 | 
						||
| 
								 | 
							
								                document.title = title
							 | 
						||
| 
								 | 
							
								            }else{
							 | 
						||
| 
								 | 
							
								                selected.titleText.Update();
							 | 
						||
| 
								 | 
							
								                var d = document.createElement('div');
							 | 
						||
| 
								 | 
							
								                d.innerHTML = selected.titleText.InnerRender();
							 | 
						||
| 
								 | 
							
								                const poi = (d.textContent || d.innerText)
							 | 
						||
| 
								 | 
							
								                document.title = title + " | " + poi;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |