// browser tab visibility state detection import Events from '../_events' import Consts from '../_consts' export default ((W) => { const NAME = '_main.css-screen-size' const D = document const BODY = D.body const detectCSSScreenSize = () => { const el = D.createElement('div') el.className = 'env-test' BODY.appendChild(el) const envs = [...Consts.ENVS].reverse() let curEnv = envs.shift() BODY.classList.remove(...envs) for (let i = 0; i < envs.length; ++i) { const env = envs[i] el.classList.add(`d-${env}-none`) if (W.getComputedStyle(el).display === 'none') { curEnv = env BODY.classList.add(`${curEnv}`) break } } let landscape = true if (W.innerWidth > W.innerHeight) { BODY.classList.add('landscape') BODY.classList.remove('portrait') } else { landscape = false BODY.classList.add('portrait') BODY.classList.remove('landscape') } console.log( `${NAME}: screen size detected ${curEnv} | landscape ${landscape}` ) BODY.removeChild(el) return curEnv } W.addEventListener(`${Events.LOADED}`, detectCSSScreenSize) W.addEventListener(`${Events.RESIZE}`, detectCSSScreenSize) })(window)