Download static/js/settingsView.js from Really-amin/Datasourceforcryptocurrency-1: direct link, hf CLI and curl.
- Browser
- Download file 2.42 kB
-
https://huggingface.co/spaces/Really-amin/Datasourceforcryptocurrency-1/resolve/main/static/js/settingsView.js
- Command line
-
hf download hf://spaces/Really-amin/Datasourceforcryptocurrency-1/static/js/settingsView.js
-
curl -L -o settingsView.js https://huggingface.co/spaces/Really-amin/Datasourceforcryptocurrency-1/resolve/main/static/js/settingsView.js
2.42 kB
| class SettingsView { | |
| constructor(section) { | |
| this.section = section; | |
| this.themeToggle = section.querySelector('[data-theme-toggle]'); | |
| this.marketIntervalInput = section.querySelector('[data-market-interval]'); | |
| this.newsIntervalInput = section.querySelector('[data-news-interval]'); | |
| this.layoutToggle = section.querySelector('[data-layout-toggle]'); | |
| } | |
| init() { | |
| this.loadPreferences(); | |
| this.bindEvents(); | |
| } | |
| loadPreferences() { | |
| const theme = localStorage.getItem('dashboard-theme') || 'dark'; | |
| document.body.dataset.theme = theme; | |
| if (this.themeToggle) { | |
| this.themeToggle.checked = theme === 'light'; | |
| } | |
| const marketInterval = localStorage.getItem('market-interval') || 60; | |
| const newsInterval = localStorage.getItem('news-interval') || 120; | |
| if (this.marketIntervalInput) this.marketIntervalInput.value = marketInterval; | |
| if (this.newsIntervalInput) this.newsIntervalInput.value = newsInterval; | |
| const layout = localStorage.getItem('layout-density') || 'spacious'; | |
| document.body.dataset.layout = layout; | |
| if (this.layoutToggle) { | |
| this.layoutToggle.checked = layout === 'compact'; | |
| } | |
| } | |
| bindEvents() { | |
| if (this.themeToggle) { | |
| this.themeToggle.addEventListener('change', () => { | |
| const theme = this.themeToggle.checked ? 'light' : 'dark'; | |
| document.body.dataset.theme = theme; | |
| localStorage.setItem('dashboard-theme', theme); | |
| }); | |
| } | |
| if (this.marketIntervalInput) { | |
| this.marketIntervalInput.addEventListener('change', () => { | |
| localStorage.setItem('market-interval', this.marketIntervalInput.value); | |
| }); | |
| } | |
| if (this.newsIntervalInput) { | |
| this.newsIntervalInput.addEventListener('change', () => { | |
| localStorage.setItem('news-interval', this.newsIntervalInput.value); | |
| }); | |
| } | |
| if (this.layoutToggle) { | |
| this.layoutToggle.addEventListener('change', () => { | |
| const layout = this.layoutToggle.checked ? 'compact' : 'spacious'; | |
| document.body.dataset.layout = layout; | |
| localStorage.setItem('layout-density', layout); | |
| }); | |
| } | |
| } | |
| } | |
| export default SettingsView; | |