rs-location/lib/settings.mjs

33 lines
1016 B
JavaScript

async function initializeSettings(remoteStorage) {
//
// API Keys (remoteStorage)
//
['opencage', 'mapbox'].forEach(async service => {
let inputEl = document.querySelector(`input.api-key.${service}`);
await remoteStorage.apiKeys.get(service).then(credentials => {
if (credentials) inputEl.value = credentials.token;
})
inputEl.addEventListener('change', e => {
if (e.target.value.length > 0) {
remoteStorage.apiKeys.set(service, { token: e.target.value });
} else {
remoteStorage.apiKeys.remove(service);
}
})
});
//
// Map settings (localStorage)
//
const zoomFactorSelectEl = document.querySelector('.settings .map-zoom-factor');
const zoomFactor = localStorage.getItem('rs-location:map-zoom-factor');
if (zoomFactor) zoomFactorSelectEl.value = zoomFactor;
zoomFactorSelectEl.addEventListener('change', e => {
localStorage.setItem('rs-location:map-zoom-factor', e.target.value);
});
}
export default initializeSettings;