Files
e-ticket/assets/modules/api-env-switcher.js

55 lines
1.8 KiB
JavaScript
Raw Normal View History

const BTN_BASE = 'env-btn px-5 py-2 font-black uppercase text-xs tracking-widest transition-all cursor-pointer '
function getEnvs(host) {
return {
sandbox: {
prefix: '/api/sandbox',
baseUrl: host + '/api/sandbox',
color: 'text-orange-400',
btnBg: 'bg-orange-500',
desc: 'Environnement de test. Les donnees ne sont pas modifiees.',
},
live: {
prefix: '/api/live',
baseUrl: host + '/api/live',
color: 'text-green-400',
btnBg: 'bg-green-600',
desc: 'Environnement de production. Les donnees sont reelles.',
},
}
}
function switchEnv(env, envs) {
const config = envs[env]
if (!config) return
document.querySelectorAll('.env-btn').forEach(btn => {
const isActive = btn.dataset.env === env
btn.className = BTN_BASE + (isActive ? config.btnBg + ' text-white' : 'bg-gray-800 text-gray-400 hover:text-white')
})
const baseUrlEl = document.getElementById('env-base-url')
if (baseUrlEl) baseUrlEl.textContent = config.baseUrl
const descEl = document.getElementById('env-description')
if (descEl) descEl.textContent = config.desc
document.querySelectorAll('.api-env-prefix').forEach(el => {
el.textContent = config.prefix
el.className = 'api-env-prefix ' + config.color
})
}
export function initApiEnvSwitcher() {
const switcher = document.getElementById('env-switcher')
if (!switcher) return
const hostEl = document.querySelector('[data-host]')
const host = hostEl ? hostEl.dataset.host : globalThis.location.origin
const envs = getEnvs(host)
document.querySelectorAll('.env-btn').forEach(btn => {
btn.addEventListener('click', () => switchEnv(btn.dataset.env, envs))
})
}