Blame view
public/assets/js/init-alpine.js
1.54 KB
02a1ed535 Первый коммит Rek... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
function data() { function getThemeFromLocalStorage() { // if user already changed the theme, use it if (window.localStorage.getItem('dark')) { return JSON.parse(window.localStorage.getItem('dark')) } // else return their preferences return ( !!window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) } function setThemeToLocalStorage(value) { window.localStorage.setItem('dark', value) } return { dark: getThemeFromLocalStorage(), toggleTheme() { this.dark = !this.dark setThemeToLocalStorage(this.dark) }, isSideMenuOpen: false, toggleSideMenu() { this.isSideMenuOpen = !this.isSideMenuOpen }, closeSideMenu() { this.isSideMenuOpen = false }, isNotificationsMenuOpen: false, toggleNotificationsMenu() { this.isNotificationsMenuOpen = !this.isNotificationsMenuOpen }, closeNotificationsMenu() { this.isNotificationsMenuOpen = false }, isProfileMenuOpen: false, toggleProfileMenu() { this.isProfileMenuOpen = !this.isProfileMenuOpen }, closeProfileMenu() { this.isProfileMenuOpen = false }, isPagesMenuOpen: false, togglePagesMenu() { this.isPagesMenuOpen = !this.isPagesMenuOpen }, // Modal isModalOpen: false, trapCleanup: null, openModal() { this.isModalOpen = true this.trapCleanup = focusTrap(document.querySelector('#modal')) }, closeModal() { this.isModalOpen = false this.trapCleanup() }, } } |