stores.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { writable } from 'svelte/store';
  2. import { browser } from '$app/environment';
  3. export const activeSection = writable('dashboard');
  4. export const easyCoinBalance = writable(0);
  5. // Função para criar o store de dark mode
  6. function createDarkModeStore() {
  7. const { subscribe, set, update } = writable(false);
  8. return {
  9. subscribe,
  10. set,
  11. update,
  12. toggle: () => update(n => !n)
  13. };
  14. }
  15. export const darkMode = createDarkModeStore();
  16. export const authToken = writable(null);
  17. if (browser) {
  18. // Inicializar com valor do localStorage
  19. const saved = localStorage.getItem('darkMode');
  20. const initialValue = saved === 'true';
  21. darkMode.set(initialValue);
  22. // Aplicar classe inicial
  23. if (initialValue) {
  24. document.documentElement.classList.add('dark');
  25. }
  26. // Subscribe para mudanças
  27. darkMode.subscribe(value => {
  28. localStorage.setItem('darkMode', value.toString());
  29. if (value) {
  30. document.documentElement.classList.add('dark');
  31. } else {
  32. document.documentElement.classList.remove('dark');
  33. }
  34. });
  35. // Inicializar authToken a partir do cookie
  36. const m = document.cookie.match(/(?:^|; )auth_token=([^;]+)/);
  37. if (m) authToken.set(decodeURIComponent(m[1]));
  38. }