importAlbum.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /* eslint no-param-reassign: 0 */
  2. export default {
  3. namespaced: true,
  4. state: {
  5. discogsAlbum: {},
  6. originalPlaylistSongs: [],
  7. playlistSongs: [],
  8. editingSongs: false,
  9. discogsTab: "search",
  10. prefillDiscogs: false
  11. },
  12. getters: {},
  13. actions: {
  14. showDiscogsTab: ({ commit }, tab) => commit("showDiscogsTab", tab),
  15. selectDiscogsAlbum: ({ commit }, discogsAlbum) =>
  16. commit("selectDiscogsAlbum", discogsAlbum),
  17. toggleDiscogsAlbum: ({ commit }) => {
  18. commit("toggleDiscogsAlbum");
  19. },
  20. setPlaylistSongs: ({ commit }, playlistSongs) =>
  21. commit("setPlaylistSongs", playlistSongs),
  22. updatePlaylistSongs: ({ commit }, playlistSongs) =>
  23. commit("updatePlaylistSongs", playlistSongs),
  24. updateEditingSongs: ({ commit }, editingSongs) =>
  25. commit("updateEditingSongs", editingSongs),
  26. resetPlaylistSongs: ({ commit }) => commit("resetPlaylistSongs"),
  27. togglePrefillDiscogs: ({ commit }) => commit("togglePrefillDiscogs"),
  28. updatePlaylistSong: ({ commit }, updatedSong) =>
  29. commit("updatePlaylistSong", updatedSong)
  30. },
  31. mutations: {
  32. showDiscogsTab(state, tab) {
  33. state.discogsTab = tab;
  34. },
  35. selectDiscogsAlbum(state, discogsAlbum) {
  36. state.discogsAlbum = JSON.parse(JSON.stringify(discogsAlbum));
  37. if (state.discogsAlbum && state.discogsAlbum.tracks) {
  38. state.tracks = state.discogsAlbum.tracks.map(track => ({
  39. ...track,
  40. songs: []
  41. }));
  42. }
  43. },
  44. toggleDiscogsAlbum(state) {
  45. state.discogsAlbum.expanded = !state.discogsAlbum.expanded;
  46. },
  47. setPlaylistSongs(state, playlistSongs) {
  48. state.originalPlaylistSongs = JSON.parse(
  49. JSON.stringify(playlistSongs)
  50. );
  51. state.playlistSongs = JSON.parse(JSON.stringify(playlistSongs));
  52. },
  53. updatePlaylistSongs(state, playlistSongs) {
  54. state.playlistSongs = JSON.parse(JSON.stringify(playlistSongs));
  55. },
  56. updateEditingSongs(state, editingSongs) {
  57. state.editingSongs = editingSongs;
  58. },
  59. resetPlaylistSongs(state) {
  60. state.playlistSongs = JSON.parse(
  61. JSON.stringify(state.originalPlaylistSongs)
  62. );
  63. },
  64. togglePrefillDiscogs(state) {
  65. state.prefillDiscogs = !state.prefillDiscogs;
  66. },
  67. updatePlaylistSong(state, updatedSong) {
  68. state.playlistSongs.forEach((song, index) => {
  69. if (song._id === updatedSong._id)
  70. state.playlistSongs[index] = updatedSong;
  71. });
  72. }
  73. }
  74. };