"use strict";(self.webpackChunk_atg_pushnotifications_client=self.webpackChunk_atg_pushnotifications_client||[]).push([[368],{368:(e,t,r)=>{r.r(t),r.d(t,{default:()=>T});var n=r(995),i=r.n(n);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t{const{tenantId:r,trackingIds:n,xsrfHeader:i,gatewayCallers:o}=e,s=a({smeid:n.smeid,smtid:n.smtid,smvid:n.smvid,tenantId:r},i);o.pushnotifications.post({url:"/logger",data:t,headers:s})},u=(e,t)=>c(e,a(a({},t),{},{level:"error"}));function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function f(e,t,r){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class d extends n.Component{componentDidCatch(e,t){u(function(e){for(var t=1;t{const n={value:t,expiry:r+v.getTime()};localStorage.setItem(e,JSON.stringify(n))},P=e=>{const t=localStorage.getItem(e);if(!t)return null;const r=JSON.parse(t);return(new Date).getTime()>r.ttl?(localStorage.removeItem(e),null):r.value},j=e=>{switch(e){case"streamate":return 1;case"streamatecreator":return 2;case"streamfans":return 3;case"streamfanscreator":return 5;case"kwiky":return 6;case"streamatestudio":return 7;case"streamfansstudio":return 8;case"cambuilder":return 9;default:throw new Error("Invalid platform id.")}},k="Notification"in window&&"serviceWorker"in navigator&&"PushManager"in window,I=(e,t,r)=>{t instanceof Error?t.message.includes("Registration failed")?((e,t)=>{c(e,a(a({},t),{},{level:"warning"}))})(r,{type:e,message:`Failed to get token: ${t.message}`}):u(r,{type:e,message:`Failed to get token: ${t.message}`}):u(r,{type:e,message:"An unknown error occurred."})};function S(){return S=Object.assign?Object.assign.bind():function(e){for(var t=1;ti=>{if(console.debug("[WEB-PUSH] Attempting to retrieve Firebase token."),!i)throw Error("[WEB-PUSH] No registration token available. Request permission to generate one.");P(w)!==i?(console.debug("[WEB-PUSH] Attempting to save Firebase token."),(async e=>{const{tenantId:t,trackingIds:r,xsrfHeader:n,token:i,gatewayCallers:o}=e,a={token:i},s=D({smeid:r.smeid,smtid:r.smtid,smvid:r.smvid,tenantId:t},n);return o.pushnotifications.post({url:"/v1/token/add",data:a,headers:s})})({token:i,gatewayCallers:e,tenantId:t,trackingIds:r,xsrfHeader:n}).then((e=>{const t=e.data,r=(n=new Date(t.lastDeliveredAt),24192e5-(v.getTime()-n.getTime()));var n;O(w,i,r),console.debug("[WEB-PUSH] Firebase token saved.")}))):console.debug("[WEB-PUSH] Token is stored in local storage.")};let C=function(e){return e[e.push=4]="push",e}({});const N=e=>{const[t,r]=(0,n.useState)(),[i,o]=(0,n.useState)(P(h)||null),{pushnotificationsSwFilePath:a,gatewayCallers:s,tenantId:c,trackingIds:u,xsrfHeader:l,isAuthenticated:f,siteId:d,platformId:p,scriptEnv:g}=e;(0,n.useEffect)((()=>{const e=new URL(`${window.location.origin}${a}`);e.searchParams.set("version",b),g&&e.searchParams.set("env",g),navigator.serviceWorker.register(e.toString()).then((e=>{r(e),console.debug(`Service worker (v${b}) has been registered.`),e.addEventListener("updatefound",(()=>{console.debug(`A new service worker (v${b}) is being installed`,e.installing)}))}))}),[]),(0,n.useEffect)((()=>{k&&t&&f&&f&&null===i&&(async e=>{var t;const r=await(async e=>{let t=S({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(e),e));const{platformId:r,tenantId:n,trackingIds:i,xsrfHeader:o,gatewayCallers:a}=t,s={platformId:j(r)},c=D({tenantId:n,smeid:i.smeid,smtid:i.smtid,smvid:i.smvid},o);return a.notifications.get({url:"/v1/settings/form",params:s,headers:c})})(e),n=!(null===(t=(e=>{const t=Object.values(e).filter((e=>e.typeId===C.push));for(const e of t)for(const t of e.subforms)for(const e of t.categories)if("new_stream"===e.name)return{id:e.settingsId,enabled:e.settingsValue,frequency:e.frequency.value}})(r.data.result))||void 0===t||!t.enabled);return O(h,n,72e5),n})({gatewayCallers:s,trackingIds:u,xsrfHeader:l,tenantId:c,siteId:d,platformId:p}).then((e=>{o(e)}))}),[f,i]),(0,n.useEffect)((()=>{i&&"default"===Notification.permission&&window.Notification.requestPermission()}),[i]),(0,n.useEffect)((()=>{k&&t&&f&&navigator.permissions.query({name:"notifications"}).then((e=>{console.debug("[WEB-PUSH] The initial notification permission of the client: ",e.state);const r=x({gatewayCallers:s,tenantId:c,trackingIds:u,xsrfHeader:l});e.onchange=()=>{console.debug("[WEB-PUSH] Notification permission has changed to: ",e.state),"granted"===Notification.permission?(0,m.gf)(W(y),{vapidKey:y.vapidKey,serviceWorkerRegistration:t}).then(r).catch((e=>{I("Initial permission",e,{gatewayCallers:s,tenantId:c,trackingIds:u,xsrfHeader:l})})):console.debug("[WEB-PUSH] Skipping Firebase operations, because notification permissions have not been granted.")}}))}),[t,f]),(0,n.useEffect)((()=>{if(!k||!t||!f)return;const e=x({gatewayCallers:s,tenantId:c,trackingIds:u,xsrfHeader:l});"granted"===Notification.permission?(0,m.gf)(W(y),{vapidKey:y.vapidKey,serviceWorkerRegistration:t}).then(e).catch((e=>{I("Refetch token",e,{gatewayCallers:s,tenantId:c,trackingIds:u,xsrfHeader:l})})):console.debug("[WEB-PUSH] Skipping Firebase operations, because notification permissions have not been granted.")}),[t,f])},W=e=>{const t=(0,g.Wp)(e);return(0,m.dG)(t)},B=["children"],F=e=>{let{children:t}=e,r=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.includes(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;ni().createElement(p,e,i().createElement(F,e))}}]);