importAlbum.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* eslint no-param-reassign: 0 */
  2. export default {
  3. namespaced: true,
  4. state: {
  5. discogsAlbum: {},
  6. originalPlaylistSongs: [],
  7. playlistSongs: [],
  8. editingSongs: false
  9. },
  10. getters: {},
  11. actions: {
  12. selectDiscogsAlbum: ({ commit }, discogsAlbum) =>
  13. commit("selectDiscogsAlbum", discogsAlbum),
  14. toggleDiscogsAlbum: ({ commit }) => {
  15. commit("toggleDiscogsAlbum");
  16. },
  17. setPlaylistSongs: ({ commit }, playlistSongs) =>
  18. commit("setPlaylistSongs", playlistSongs),
  19. updatePlaylistSongs: ({ commit }, playlistSongs) =>
  20. commit("updatePlaylistSongs", playlistSongs),
  21. updateEditingSongs: ({ commit }, editingSongs) =>
  22. commit("updateEditingSongs", editingSongs),
  23. resetPlaylistSongs: ({ commit }) => commit("resetPlaylistSongs")
  24. },
  25. mutations: {
  26. selectDiscogsAlbum(state, discogsAlbum) {
  27. state.discogsAlbum = JSON.parse(JSON.stringify(discogsAlbum));
  28. if (state.discogsAlbum && state.discogsAlbum.tracks) {
  29. state.tracks = state.discogsAlbum.tracks.map(track => ({
  30. ...track,
  31. songs: []
  32. }));
  33. }
  34. },
  35. toggleDiscogsAlbum(state) {
  36. state.discogsAlbum.expanded = !state.discogsAlbum.expanded;
  37. },
  38. setPlaylistSongs(state, playlistSongs) {
  39. state.originalPlaylistSongs = JSON.parse(
  40. JSON.stringify(playlistSongs)
  41. );
  42. state.playlistSongs = JSON.parse(JSON.stringify(playlistSongs));
  43. },
  44. updatePlaylistSongs(state, playlistSongs) {
  45. state.playlistSongs = JSON.parse(JSON.stringify(playlistSongs));
  46. },
  47. updateEditingSongs(state, editingSongs) {
  48. state.editingSongs = editingSongs;
  49. },
  50. resetPlaylistSongs(state) {
  51. state.playlistSongs = JSON.parse(
  52. JSON.stringify(state.originalPlaylistSongs)
  53. );
  54. }
  55. }
  56. };