manageStation.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /* eslint no-param-reassign: 0 */
  2. export default {
  3. namespaced: true,
  4. state: {
  5. tab: "settings",
  6. station: {},
  7. stationPlaylist: { songs: [] },
  8. autofill: [],
  9. blacklist: [],
  10. songsList: [],
  11. stationPaused: true,
  12. currentSong: {}
  13. },
  14. getters: {},
  15. actions: {
  16. showTab: ({ commit }, tab) => commit("showTab", tab),
  17. editStation: ({ commit }, station) => commit("editStation", station),
  18. setAutofillPlaylists: ({ commit }, autofillPlaylists) =>
  19. commit("setAutofillPlaylists", autofillPlaylists),
  20. setBlacklist: ({ commit }, blacklist) =>
  21. commit("setBlacklist", blacklist),
  22. clearStation: ({ commit }) => commit("clearStation"),
  23. updateSongsList: ({ commit }, songsList) =>
  24. commit("updateSongsList", songsList),
  25. updateStationPlaylist: ({ commit }, stationPlaylist) =>
  26. commit("updateStationPlaylist", stationPlaylist),
  27. repositionSongInList: ({ commit }, song) =>
  28. commit("repositionSongInList", song),
  29. updateStationPaused: ({ commit }, stationPaused) =>
  30. commit("updateStationPaused", stationPaused),
  31. updateCurrentSong: ({ commit }, currentSong) =>
  32. commit("updateCurrentSong", currentSong),
  33. updateStation: ({ commit }, station) => commit("updateStation", station)
  34. },
  35. mutations: {
  36. showTab(state, tab) {
  37. state.tab = tab;
  38. },
  39. editStation(state, station) {
  40. state.station = JSON.parse(JSON.stringify(station));
  41. },
  42. setAutofillPlaylists(state, autofillPlaylists) {
  43. state.autofill = JSON.parse(JSON.stringify(autofillPlaylists));
  44. },
  45. setBlacklist(state, blacklist) {
  46. state.blacklist = JSON.parse(JSON.stringify(blacklist));
  47. },
  48. clearStation(state) {
  49. state.station = {};
  50. state.stationPlaylist = { songs: [] };
  51. state.autofill = [];
  52. state.blacklist = [];
  53. state.songsList = [];
  54. state.stationPaused = true;
  55. state.currentSong = {};
  56. },
  57. updateSongsList(state, songsList) {
  58. state.songsList = songsList;
  59. },
  60. updateStationPlaylist(state, stationPlaylist) {
  61. state.stationPlaylist = stationPlaylist;
  62. },
  63. repositionSongInList(state, song) {
  64. if (
  65. state.songsList[song.newIndex] &&
  66. state.songsList[song.newIndex].youtubeId === song.youtubeId
  67. )
  68. return;
  69. const { songsList } = state;
  70. songsList.splice(
  71. song.newIndex,
  72. 0,
  73. songsList.splice(song.oldIndex, 1)[0]
  74. );
  75. state.songsList = songsList;
  76. },
  77. updateStationPaused(state, stationPaused) {
  78. state.stationPaused = stationPaused;
  79. },
  80. updateCurrentSong(state, currentSong) {
  81. state.currentSong = currentSong;
  82. },
  83. updateStation(state, station) {
  84. state.station = { ...state.station, ...station };
  85. }
  86. }
  87. };