{"version":3,"file":"6058-b5a1fcf7.pkg.js","mappings":"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","sources":["webpack://frontend-build-tools/./src/feature/add-to-homescreen/AddToHomeScreen.jsx","webpack://frontend-build-tools/./src/feature/add-to-homescreen/add-to-homescreen.js","webpack://frontend-build-tools/./src/foundation/tracking/tracking.js","webpack://frontend-build-tools/./src/foundation/utilities/isMobile.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { pushGaEvent } from '../../foundation/tracking/tracking';\r\nimport { browserIsSafari, getOSHandler } from '../../foundation/utilities/isMobile';\r\nimport { Icon } from 'atoms';\r\n\r\nconst STORAGE_KEY = 'tivoli-casino-add-to-home-screen';\r\nconst DEFAULT_LOCALSTORAGE = {\r\n pauseUntil: false, // time to pass before we display the message again\r\n visitsUntil: false, // number of pages viewed\r\n displayCount: 0, // number of times the message has been displayed\r\n addedToHome: false // has been actually added to the home screen\r\n};\r\n\r\nlet localStorage = {};\r\n\r\nconst AddToHomeScreen = (props) => {\r\n const { settings } = props;\r\n const icon = settings?.icon?.source || '/dist/assets/images/android-icon-192x192.png';\r\n const btnText = settings?.btnText || 'Tilføj';\r\n const btnBgColor = settings?.btnBgColor || '#bc9f6d';\r\n const btnColor = settings?.btnColor || '#ffffff';\r\n const bgImage = settings?.bgImage?.source || '/dist/assets/svg/icon-bg.svg';\r\n const itemName = document.querySelector('div[data-behavior=\"add-to-homescreen\"]')?.getAttribute('data-item-name');\r\n\r\n const [showPwaPrompt, setShowPwaPrompt] = useState(false);\r\n const [pwaEnabled, setPwaEnabled] = useState(false);\r\n const [showPwaGuidance, setShowPwaGuidance] = useState(false);\r\n const [path, setPath] = useState(window.location.href);\r\n const [OS, setOS] = useState(false);\r\n\r\n const listenToPopstate = () => {\r\n const winPath = window.location.href;\r\n setPath(winPath);\r\n };\r\n\r\n useEffect(() => {\r\n const getOS = getOSHandler();\r\n setOS(getOS);\r\n\r\n switch (getOS) {\r\n case 'android':\r\n initializeAndroidInstallPrompt();\r\n break;\r\n }\r\n\r\n window.addEventListener('popstate', listenToPopstate);\r\n return () => {\r\n window.removeEventListener('popstate', listenToPopstate);\r\n };\r\n }, []);\r\n\r\n\r\n const initialize = () => {\r\n // check if all conditions are fulfilled\r\n if (!shouldShowPopup()) return;\r\n\r\n // check if all custom criteria are fulfilled\r\n if (isOnPause()) return;\r\n\r\n // Get the operating system of the device\r\n const getOS = getOSHandler();\r\n if (!getOS) return;\r\n\r\n // Handle the logic based on the detected operating system\r\n switch (getOS) {\r\n // For iOS devices (both iPhones and iPads)\r\n case 'ios':\r\n case 'ipad':\r\n // Check if the browser is Safari and Initialize logic for displaying the popup for adding to home screen on iOS\r\n if (browserIsSafari()) showPopup();\r\n break;\r\n // For Android devices\r\n case 'android':\r\n // Initialize the Android-specific install prompt logic\r\n showPopup();\r\n break;\r\n }\r\n };\r\n\r\n\r\n useEffect(initialize, [path]);\r\n\r\n\r\n const shouldShowPopup = () => {\r\n if(showPwaPrompt) return false;\r\n\r\n const { currentUser } = sessionStorage.getItem('persist:root:shared') ? JSON.parse(JSON.parse(sessionStorage.getItem('persist:root:shared'))?.currentUser) : { currentUser: { isAuthenticated: false } };\r\n const isLoggedIn = document.querySelector('header.is-logged-in');\r\n\r\n // check if user is logged in\r\n if (!currentUser.isAuthenticated && !isLoggedIn) return false;\r\n\r\n // get localStorage data from local storage or set default values if not available\r\n const localStorageString = window.localStorage.getItem(STORAGE_KEY);\r\n localStorage = localStorageString ? JSON.parse(localStorageString) : DEFAULT_LOCALSTORAGE;\r\n\r\n // check if the app is already installed\r\n if (localStorage?.addedToHome || window.matchMedia('(display-mode: standalone)').matches || navigator.standalone === true) {\r\n // there is nothing to do if app was already added to home screen\r\n localStorage.addedToHome = true;\r\n updateLocalStorage();\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n\r\n const isOnPause = () => {\r\n // increment the page views\r\n if (localStorage.visitsUntil > 0) {\r\n /* eslint-disable-next-line no-plusplus */\r\n --localStorage.visitsUntil;\r\n updateLocalStorage();\r\n }\r\n\r\n if (localStorage.visitsUntil || (localStorage.pauseUntil && new Date().getTime() <= localStorage.pauseUntil)) return true;\r\n\r\n return false;\r\n };\r\n\r\n\r\n const showPopup = () => {\r\n // Display the \"Add to Home Screen\" popup\r\n setShowPwaPrompt(true);\r\n\r\n // increment the display count\r\n /* eslint-disable-next-line no-plusplus */\r\n ++localStorage.displayCount;\r\n updateLocalStorage();\r\n\r\n // Handle tracking for the event when the popup is shown\r\n handleTracking('shown');\r\n };\r\n\r\n\r\n const initializeAndroidInstallPrompt = () => {\r\n window.addEventListener('beforeinstallprompt', (event) => {\r\n event.preventDefault();\r\n window.promptEvent = event;\r\n\r\n setPwaEnabled(true);\r\n });\r\n };\r\n\r\n\r\n const handleTracking = (action) => {\r\n // If there's a count of how many times the popup has been seen, send a tracking event.\r\n if (localStorage.displayCount) {\r\n pushGaEvent('smartbanner', action, localStorage.displayCount, itemName);\r\n }\r\n };\r\n\r\n\r\n const updateLocalStorage = () => {\r\n window.localStorage.setItem(STORAGE_KEY, JSON.stringify(localStorage));\r\n };\r\n\r\n\r\n const installHandler = async () => {\r\n if (pwaEnabled) {\r\n const promptEvent = window.promptEvent;\r\n // The deferred prompt isn't available.\r\n if (!promptEvent) return;\r\n\r\n // Show the install prompt.\r\n promptEvent.prompt();\r\n const { outcome } = await promptEvent.userChoice;\r\n // Reset the deferred prompt variable, since\r\n // prompt() can only be called once.\r\n window.promptEvent = null;\r\n\r\n if (outcome === 'accepted') afterInstallHandler();\r\n\r\n setShowPwaPrompt(false);\r\n } else { // fallback for unsupported browsers\r\n setShowPwaGuidance(true);\r\n afterInstallHandler();\r\n }\r\n };\r\n\r\n\r\n const afterInstallHandler = () => {\r\n localStorage.pauseUntil = false;\r\n localStorage.visitsUntil = false;\r\n localStorage.addedToHome = true;\r\n updateLocalStorage();\r\n\r\n // Handle tracking for the event when the popup is added\r\n handleTracking('add');\r\n };\r\n\r\n\r\n const cancelHandler = () => {\r\n setShowPwaPrompt(false);\r\n\r\n if (localStorage.visitsUntil === false && !localStorage.pauseUntil) {\r\n localStorage.visitsUntil = 5;\r\n } else {\r\n localStorage.pauseUntil = Date.now() + 5259600000; // 2 months into the future (milliseconds);\r\n localStorage.visitsUntil = false;\r\n }\r\n updateLocalStorage();\r\n\r\n // Handle tracking for the event when the popup is closed\r\n handleTracking('close');\r\n };\r\n\r\n\r\n const closeGuidanceHandler = () => {\r\n setShowPwaPrompt(false);\r\n };\r\n\r\n\r\n const renderSwitch = () => {\r\n switch(OS) {\r\n case 'android':\r\n return
{ localStorage?.visitsUntil === 0 || localStorage?.pauseUntil ? settings.alternativeText : settings.firstTimeText }
\r\n \r\n