forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			No EOL
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			No EOL
		
	
	
		
			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;
 | 
						|
            }
 | 
						|
        })
 | 
						|
 | 
						|
 | 
						|
    }
 | 
						|
} |