nextjs-seo-manager
Version:
2 lines (1 loc) • 1.4 kB
JavaScript
import{a as t,_ as e}from"./default-8fbea38c.js";import s from"react";import{connect as a}from"react-redux";import{f as i}from"./firebase-f83deced.js";import{getAuth as r,onAuthStateChanged as o,signInAnonymously as c}from"firebase/auth";import"axios";import"firebase/app";const p=r(i);class n extends s.Component{constructor(s){super(s),t(this,"componentDidMount",()=>{o(p,async t=>{t?this.loadUser(t):await c(p)}),p?.currentUser&&this.loadUser(p.currentUser)}),t(this,"loadUser",async t=>{const s=["owner","admin","editor"];let a=e({},t);if(t){const e=await t.getIdTokenResult(!0);if(e?.claims?.[this.props?.seoData?.initial?.projectId]&&s.includes(e?.claims?.[this.props?.seoData?.initial?.projectId]))a.authorizedProject=!0;else if(e?.claims?.[this.props?.seoData?.initial?.projectId]){const{timeStamp:t}=JSON.parse(e?.claims?.[this.props?.seoData?.initial?.projectId]),s=new Date(t).toISOString(),i=(new Date).toISOString();a.authorizedProject=i<s&&t}else{let t=!1,s={};Object.keys(e?.claims).forEach(a=>{if(a.includes(`${this.props?.seoData?.initial?.projectId}-`)){const{timeStamp:i}=JSON.parse(e?.claims?.[a]);t=!0;const r=a.split("-")[1];s[r]=i}}),t?a.authorizedPages=s:a.authorizedProject=!1}}const i={type:"SET_USER",results:JSON.parse(JSON.stringify(a))};this.props.dispatch(i)}),this.state={}}render(){return null}}var l=a(t=>({user:t.user,seoData:t?.seoData}))(n);export{l as default};