manageStation.js 2.6 KB

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