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; | ||
|  |             } | ||
|  |         }) | ||
|  | 
 | ||
|  | 
 | ||
|  |     } | ||
|  | } |