importAlbum.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. updatePrefillDiscogs: ({ commit }, updatedPrefill) =>
  28. commit("updatePrefillDiscogs", updatedPrefill),
  29. updatePlaylistSong: ({ commit }, updatedSong) =>
  30. commit("updatePlaylistSong", updatedSong)
  31. },
  32. mutations: {
  33. showDiscogsTab(state, tab) {
  34. state.discogsTab = tab;
  35. },
  36. selectDiscogsAlbum(state, discogsAlbum) {
  37. state.discogsAlbum = JSON.parse(JSON.stringify(discogsAlbum));
  38. if (state.discogsAlbum && state.discogsAlbum.tracks) {
  39. state.tracks = state.discogsAlbum.tracks.map(track => ({
  40. ...track,
  41. songs: []
  42. }));
  43. }
  44. },
  45. toggleDiscogsAlbum(state) {
  46. state.discogsAlbum.expanded = !state.discogsAlbum.expanded;
  47. },
  48. setPlaylistSongs(state, playlistSongs) {
  49. state.originalPlaylistSongs = JSON.parse(
  50. JSON.stringify(playlistSongs)
  51. );
  52. state.playlistSongs = JSON.parse(JSON.stringify(playlistSongs));
  53. },
  54. updatePlaylistSongs(state, playlistSongs) {
  55. state.playlistSongs = JSON.parse(JSON.stringify(playlistSongs));
  56. },
  57. updateEditingSongs(state, editingSongs) {
  58. state.editingSongs = editingSongs;
  59. },
  60. resetPlaylistSongs(state) {
  61. state.playlistSongs = JSON.parse(
  62. JSON.stringify(state.originalPlaylistSongs)
  63. );
  64. },
  65. updatePrefillDiscogs(state, updatedPrefill) {
  66. state.prefillDiscogs = updatedPrefill;
  67. },
  68. updatePlaylistSong(state, updatedSong) {
  69. state.playlistSongs.forEach((song, index) => {
  70. if (song._id === updatedSong._id)
  71. state.playlistSongs[index] = updatedSong;
  72. });
  73. }
  74. }
  75. };