1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* eslint no-param-reassign: 0 */
- export default {
- namespaced: true,
- state: {
- tab: "settings",
- playlist: { songs: [] }
- },
- getters: {},
- actions: {
- showTab: ({ commit }, tab) => commit("showTab", tab),
- setPlaylist: ({ commit }, playlist) => commit("setPlaylist", playlist),
- clearPlaylist: ({ commit }) => commit("clearPlaylist"),
- addSong: ({ commit }, song) => commit("addSong", song),
- removeSong: ({ commit }, youtubeId) => commit("removeSong", youtubeId),
- updatePlaylistSongs: ({ commit }, playlistSongs) =>
- commit("updatePlaylistSongs", playlistSongs),
- repositionedSong: ({ commit }, song) => commit("repositionedSong", song)
- },
- mutations: {
- showTab(state, tab) {
- state.tab = tab;
- },
- setPlaylist(state, playlist) {
- state.playlist = { ...playlist };
- state.playlist.songs.sort((a, b) => a.position - b.position);
- },
- clearPlaylist(state) {
- state.playlist = { songs: [] };
- },
- addSong(state, song) {
- state.playlist.songs.push(song);
- },
- removeSong(state, youtubeId) {
- state.playlist.songs = state.playlist.songs.filter(
- song => song.youtubeId !== youtubeId
- );
- },
- updatePlaylistSongs(state, playlistSongs) {
- state.playlist.songs = playlistSongs;
- },
- repositionedSong(state, song) {
- if (
- state.playlist.songs[song.newIndex] &&
- state.playlist.songs[song.newIndex].youtubeId === song.youtubeId
- )
- return;
- state.playlist.songs.splice(
- song.newIndex,
- 0,
- state.playlist.songs.splice(song.oldIndex, 1)[0]
- );
- }
- }
- };
|