customerio-gist-web
Version:
Build beautiful in-app flows with no code and deliver them instantly to your app. http://customer.io
77 lines (69 loc) • 2.44 kB
JavaScript
// Default configuration
const defaultConfig = {
siteId: "a5ec106751ef4b34a0b9",
dataCenter: "eu",
env: "prod",
logging: true,
useAnonymousSession: true,
userToken: "ABC123"
};
// Load configuration from localStorage or use defaults
function loadConfig() {
const savedConfig = localStorage.getItem('gistConfig');
return savedConfig ? JSON.parse(savedConfig) : defaultConfig;
}
// Get current configuration
// eslint-disable-next-line no-unused-vars
function getConfig() {
return loadConfig();
}
// Populate form with current config
function populateConfigForm() {
const config = loadConfig();
document.getElementById('siteId').value = config.siteId;
document.getElementById('dataCenter').value = config.dataCenter;
document.getElementById('env').value = config.env;
document.getElementById('logging').checked = config.logging;
document.getElementById('useAnonymousSession').checked = config.useAnonymousSession;
document.getElementById('userToken').value = config.userToken;
}
// Toggle config form visibility
// eslint-disable-next-line no-unused-vars
function toggleConfigForm() {
const content = document.getElementById('configFormContent');
const icon = document.getElementById('configToggleIcon');
if (content.style.display === 'none' || !content.style.display) {
content.style.display = 'block';
icon.textContent = '▲';
} else {
content.style.display = 'none';
icon.textContent = '▼';
}
}
// Save config and reload page
// eslint-disable-next-line no-unused-vars
function saveConfig(event) {
event.preventDefault();
const newConfig = {
siteId: document.getElementById('siteId').value,
dataCenter: document.getElementById('dataCenter').value,
env: document.getElementById('env').value,
logging: document.getElementById('logging').checked,
useAnonymousSession: document.getElementById('useAnonymousSession').checked,
userToken: document.getElementById('userToken').value
};
localStorage.setItem('gistConfig', JSON.stringify(newConfig));
window.location.reload();
}
// Reset to default config
// eslint-disable-next-line no-unused-vars
function resetConfig() {
if (confirm('Are you sure you want to reset to default configuration?')) {
localStorage.removeItem('gistConfig');
window.location.reload();
}
}
// Initialize form on page load
window.addEventListener('DOMContentLoaded', function() {
populateConfigForm();
});