userPreferences.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { defineStore } from "pinia";
  2. export const useUserPreferencesStore = defineStore("userPreferences", {
  3. state: (): {
  4. nightmode: boolean;
  5. autoSkipDisliked: boolean;
  6. activityLogPublic: boolean;
  7. anonymousSongRequests: boolean;
  8. activityWatch: boolean;
  9. defaultStationPrivacy: "public" | "unlisted" | "private";
  10. defaultPlaylistPrivacy: "public" | "private";
  11. } => ({
  12. nightmode: false,
  13. autoSkipDisliked: true,
  14. activityLogPublic: false,
  15. anonymousSongRequests: false,
  16. activityWatch: false,
  17. defaultStationPrivacy: "private",
  18. defaultPlaylistPrivacy: "public"
  19. }),
  20. actions: {
  21. changeNightmode(nightmode) {
  22. this.nightmode = nightmode;
  23. localStorage.setItem("nightmode", `${nightmode}`);
  24. },
  25. changeAutoSkipDisliked(autoSkipDisliked) {
  26. this.autoSkipDisliked = autoSkipDisliked;
  27. },
  28. changeActivityLogPublic(activityLogPublic) {
  29. this.activityLogPublic = activityLogPublic;
  30. },
  31. changeAnonymousSongRequests(anonymousSongRequests) {
  32. this.anonymousSongRequests = anonymousSongRequests;
  33. },
  34. changeActivityWatch(activityWatch) {
  35. this.activityWatch = activityWatch;
  36. },
  37. changeDefaultStationPrivacy(defaultStationPrivacy) {
  38. this.defaultStationPrivacy = defaultStationPrivacy;
  39. },
  40. changeDefaultPlaylistPrivacy(defaultPlaylistPrivacy) {
  41. this.defaultPlaylistPrivacy = defaultPlaylistPrivacy;
  42. }
  43. }
  44. });