added artist filters

This commit is contained in:
austinried
2021-08-22 13:24:12 +09:00
parent 43d8cc7fa7
commit 22b6524e8c
5 changed files with 89 additions and 22 deletions

View File

@@ -1,4 +1,4 @@
import { AppSettings, FilterSettings, Server } from '@app/models/settings'
import { AppSettings, ArtistFilterSettings, AlbumFilterSettings, Server } from '@app/models/settings'
import { Store } from '@app/state/store'
import { SubsonicApiClient } from '@app/subsonic/api'
import produce from 'immer'
@@ -23,7 +23,8 @@ export type SettingsSlice = {
pingServer: (server?: Server) => Promise<boolean>
setLibraryAlbumFilter: (filter: FilterSettings) => void
setLibraryAlbumFilter: (filter: AlbumFilterSettings) => void
setLibraryArtistFiler: (filter: ArtistFilterSettings) => void
}
export const selectSettings = {
@@ -59,6 +60,8 @@ export const selectSettings = {
setLibraryAlbumFilter: (state: SettingsSlice) => state.setLibraryAlbumFilter,
libraryAlbumFilter: (state: SettingsSlice) => state.settings.screens.library.albums,
setLibraryArtistFiler: (state: SettingsSlice) => state.setLibraryArtistFiler,
libraryArtistFilter: (state: SettingsSlice) => state.settings.screens.library.artists,
}
export const createSettingsSlice = (set: SetState<Store>, get: GetState<Store>): SettingsSlice => ({
@@ -75,6 +78,9 @@ export const createSettingsSlice = (set: SetState<Store>, get: GetState<Store>):
toYear: 9999,
genre: '',
},
artists: {
type: 'alphabeticalByName',
},
},
},
scrobble: false,
@@ -249,6 +255,14 @@ export const createSettingsSlice = (set: SetState<Store>, get: GetState<Store>):
}),
)
},
setLibraryArtistFiler: filter => {
set(
produce<SettingsSlice>(state => {
state.settings.screens.library.artists = filter
}),
)
},
})
function replaceIndex<T>(array: T[], index: number, replacement: T): T[] {