| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import api from '../../utils/api'
- import { sortTypes } from '../../utils/helpers'
- import { repackBySort } from './arrangements'
-
- const state = {
- all: [],
- loaded: false,
- singleArtist: null,
- seenTitles: []
- }
-
- const getters = {
- allArtists: state => state.all,
- allArtistsBySlug: state =>
- Object.values(state.all).reduce((bySlug, artist) => {
- bySlug[artist.slug] = artist
- return bySlug
- }, {}),
- allArtistsLoaded: state => state.loaded,
- }
-
- const actions = {
- getAllArtists({ commit }, { sortType, params }) {
- commit('CLEAR_ARTISTS')
- commit('ARTISTS_LOADED', false)
- const storeFetch = (artists => {
- let repacked = repackBySort(artists, sortType)
- commit('STORE_FETCHED_ARTISTS', { artists: repacked })
- commit('ARTISTS_LOADED', true)
- })
- return api.getByType({ type: 'artist', sort: sortType, params, cb: storeFetch })
- },
- getMoreArtists({ commit }, { sortType, params }) {
- const storeFetch = (artists => {
- let repacked = artists
- if(sortType == sortTypes.alpha) {
- repacked = repackBySort(artists, sortType)
- }
- commit('ADD_TO_FETCHED_ARTISTS', { artists: repacked })
- commit('ARTISTS_LOADED', true)
- })
- return api.getByType({ type: 'artist', sort: sortType, params, cb: storeFetch })
- },
- getSingleArtist({ commit }, id) {
- commit('CLEAR_SINGLE_ARTISTS')
- commit('ARTISTS_LOADED', false)
-
- api.getSingleType('artist', id, artist => {
- commit('STORE_FETCHED_SINGLE_ARTIST', artist)
- commit('ARTISTS_LOADED', true)
- })
- },
- }
-
- const mutations = {
- ADD_TO_FETCHED_ARTISTS(state, { artists }) {
- state.all = [...state.all, ...artists]
- },
- STORE_FETCHED_ARTISTS(state, { artists }) {
- state.all = artists
- },
- STORE_FETCHED_SINGLE_ARTIST(state, artist) {
- state.singleArtist = artist
- },
- CLEAR_ARTISTS(state) {
- state.all = []
- },
- CLEAR_ARTISTS_SEEN(state) {
- state.seenTitles = []
- },
- CLEAR_SINGLE_ARTISTS(state) {
- state.singleArtist = null
- },
- ARTISTS_LOADED(state, val) {
- state.loaded = val
- },
- }
-
- export default { state, getters, actions, mutations }
|