export const BETA_KEY = "betaSwitchImex"; export const checkBeta = () => { const cookie = document.cookie.split("; ").find((row) => row.startsWith(BETA_KEY)); return cookie ? cookie.split("=")[1] === "true" : false; }; export const setBeta = (value) => { const domain = window.location.hostname.split(".").slice(-2).join("."); document.cookie = `${BETA_KEY}=${value}; path=/; domain=.${domain}`; }; export const handleBeta = () => { if (window.location.hostname.startsWith("localhost")) { console.log("Not on beta or test, so no need to handle beta."); return; } const isBeta = checkBeta(); const currentHostName = window.location.hostname; // Determine if the host name starts with "beta" or "www.beta" const isBetaHost = currentHostName.startsWith("beta."); const isBetaHostWithWWW = currentHostName.startsWith("www.beta."); if (isBeta) { // If beta is on and we are not on a beta domain, redirect to the beta version if (!isBetaHost && !isBetaHostWithWWW) { const newHostName = currentHostName.startsWith("www.") ? `www.beta.${currentHostName.replace(/^www\./, "")}` : `beta.${currentHostName}`; const href = `${window.location.protocol}//${newHostName}${window.location.pathname}${window.location.search}${window.location.hash}`; window.location.replace(href); } // Otherwise, if beta is on and we're already on a beta domain, stay there } else { // If beta is off and we are on a beta domain, redirect to the non-beta version if (isBetaHost || isBetaHostWithWWW) { const newHostName = currentHostName.replace(/^www\.beta\./, "www.").replace(/^beta\./, ""); const href = `${window.location.protocol}//${newHostName}${window.location.pathname}${window.location.search}${window.location.hash}`; window.location.replace(href); } // Otherwise, if beta is off and we're not on a beta domain, stay there } }; export default handleBeta;