reorder album artist page

This commit is contained in:
Kendall Garner 2024-09-01 16:48:43 -07:00
parent eb50c69a35
commit f7dd634f67
No known key found for this signature in database
GPG key ID: 18D2767419676C87
5 changed files with 201 additions and 98 deletions

View file

@ -105,7 +105,22 @@ export enum HomeItem {
RECENTLY_PLAYED = 'recentlyPlayed',
}
export const homeItems = Object.values(HomeItem).map((item) => ({
const homeItems = Object.values(HomeItem).map((item) => ({
disabled: false,
id: item,
}));
/* eslint-disable typescript-sort-keys/string-enum */
export enum ArtistItem {
BIOGRAPHY = 'biography',
TOP_SONGS = 'topSongs',
RECENT_ALBUMS = 'recentAlbums',
COMPILATIONS = 'compilations',
SIMILAR_ARTISTS = 'similarArtists',
}
/* eslint-enable typescript-sort-keys/string-enum */
const artistItems = Object.values(ArtistItem).map((item) => ({
disabled: false,
id: item,
}));
@ -207,6 +222,7 @@ export interface SettingsState {
albumArtRes?: number | null;
albumBackground: boolean;
albumBackgroundBlur: number;
artistItems: SortableItem<ArtistItem>[];
buttonSize: number;
defaultFullPlaylist: boolean;
disabledContextMenu: { [k in ContextMenuItemType]?: boolean };
@ -305,6 +321,7 @@ export interface SettingsSlice extends SettingsState {
actions: {
reset: () => void;
resetSampleRate: () => void;
setArtistItems: (item: SortableItem<ArtistItem>[]) => void;
setGenreBehavior: (target: GenreTarget) => void;
setHomeItems: (item: SortableItem<HomeItem>[]) => void;
setSettings: (data: Partial<SettingsState>) => void;
@ -347,6 +364,7 @@ const initialState: SettingsState = {
albumArtRes: undefined,
albumBackground: false,
albumBackgroundBlur: 6,
artistItems,
buttonSize: 20,
defaultFullPlaylist: true,
disabledContextMenu: {},
@ -656,6 +674,11 @@ export const useSettingsStore = create<SettingsSlice>()(
state.playback.mpvProperties.audioSampleRateHz = 0;
});
},
setArtistItems: (items) => {
set((state) => {
state.general.artistItems = items;
});
},
setGenreBehavior: (target: GenreTarget) => {
set((state) => {
state.general.genreTarget = target;