import { LitElement, html, nothing } from "lit"; import { customElement, state } from "lit/decorators.js"; import { Platform } from "../Platform"; import { translateText } from "../Utils"; const DISMISSED_KEY = "ios_a2hs_banner_dismissed"; const LATER_KEY = "ios_a2hs_banner_later"; @customElement("ios-add-to-home-screen-banner") export class IOSAddToHomeScreenBanner extends LitElement { @state() private dismissed = false; @state() private later = false; @state() private showGuide = false; createRenderRoot() { return this; } connectedCallback() { super.connectedCallback(); try { this.dismissed = localStorage.getItem(DISMISSED_KEY) === "true"; } catch { this.dismissed = false; } try { this.later = sessionStorage.getItem(LATER_KEY) === "true"; } catch { this.later = false; } } private never() { try { localStorage.setItem(DISMISSED_KEY, "true"); } catch { // localStorage unavailable — dismiss for session only } this.dismissed = true; } private later_() { try { sessionStorage.setItem(LATER_KEY, "true"); } catch { // ignore — this.later still set in memory } this.later = true; } private openGuide() { this.showGuide = true; } private closeGuide() { this.showGuide = false; } private renderGuideModal() { if (!this.showGuide) return nothing; return html`
${translateText("ios_banner.modal_desc")}