forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {UIElement} from "./UIElement";
 | 
						|
import Translations from "./i18n/Translations";
 | 
						|
import State from "../State";
 | 
						|
import Combine from "./Base/Combine";
 | 
						|
 | 
						|
/**
 | 
						|
 * Handles the full screen popup on mobile
 | 
						|
 */
 | 
						|
export class FullScreenMessageBox extends UIElement {
 | 
						|
 | 
						|
    private readonly returnToTheMap: UIElement;
 | 
						|
    private _content: UIElement;
 | 
						|
 | 
						|
    constructor(onClear: (() => void)) {
 | 
						|
        super(State.state.fullScreenMessage);
 | 
						|
        this.HideOnEmpty(true);
 | 
						|
 | 
						|
        this.returnToTheMap =
 | 
						|
            new Combine([Translations.t.general.returnToTheMap.Clone().SetStyle("font-size:xx-large")])
 | 
						|
                .SetStyle("background:var(--catch-detail-color);" +
 | 
						|
                    "position: fixed;" +
 | 
						|
                    "z-index: 10000;" +
 | 
						|
                    "bottom: 0;" +
 | 
						|
                    "left: 0;" +
 | 
						|
                    `height: var(--return-to-the-map-height);` +
 | 
						|
                "width: 100vw;" +
 | 
						|
                "color: var(--catch-detail-color-contrast);" +
 | 
						|
                "font-weight: bold;" +
 | 
						|
                "pointer-events: all;" +
 | 
						|
                "cursor: pointer;" +
 | 
						|
                "padding-top: 1.2em;" +
 | 
						|
                "text-align: center;" +
 | 
						|
                "padding-bottom: 1.2em;" +
 | 
						|
                "box-sizing:border-box")
 | 
						|
            .onClick(() => {
 | 
						|
                State.state.fullScreenMessage.setData(undefined);
 | 
						|
                onClear();
 | 
						|
            });
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    InnerRender(): string {
 | 
						|
        if (State.state.fullScreenMessage.data === undefined) {
 | 
						|
            return "";
 | 
						|
        }
 | 
						|
        this._content = State.state.fullScreenMessage.data;
 | 
						|
        const uielement = new Combine([this._content]).SetStyle(
 | 
						|
            "display:block;" +
 | 
						|
            "padding: 1em;" +
 | 
						|
            "padding-bottom:6em;" +
 | 
						|
            `margin-bottom: var(--return-to-the-map-height);` +
 | 
						|
            "box-sizing:border-box;" +
 | 
						|
            `height:calc(100vh - var(--return-to-the-map-height));` +
 | 
						|
            "overflow-y: auto;" +
 | 
						|
            "max-width:100vw;" +
 | 
						|
            "overflow-x:hidden;" +
 | 
						|
            "background:var(--background-color);" +
 | 
						|
            "color: var(--foreground-color);"
 | 
						|
        );
 | 
						|
        return new Combine([uielement, this.returnToTheMap])
 | 
						|
            .Render();
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
} |