add client-side sort to artist favorite songs (#1691)

This commit is contained in:
jeffvli
2026-03-09 20:58:02 -07:00
parent 8825fc1e84
commit 66e7b44d75
3 changed files with 61 additions and 10 deletions
+18 -1
View File
@@ -6,11 +6,12 @@ import { devtools, persist } from 'zustand/middleware';
import { immer } from 'zustand/middleware/immer';
import { createWithEqualityFn } from 'zustand/traditional';
import { AlbumListSort, SortOrder } from '/@/shared/types/domain-types';
import { AlbumListSort, SongListSort, SortOrder } from '/@/shared/types/domain-types';
import { Platform } from '/@/shared/types/types';
export interface AppSlice extends AppState {
actions: {
setAlbumArtistDetailFavoriteSongsSort: (sortBy: SongListSort, sortOrder: SortOrder) => void;
setAlbumArtistDetailGroupingType: (groupingType: 'all' | 'primary') => void;
setAlbumArtistDetailSort: (sortBy: AlbumListSort, sortOrder: SortOrder) => void;
setAlbumArtistIdsMode: (mode: 'and' | 'or') => void;
@@ -30,6 +31,10 @@ export interface AppSlice extends AppState {
}
export interface AppState {
albumArtistDetailFavoriteSongsSort: {
sortBy: SongListSort;
sortOrder: SortOrder;
};
albumArtistDetailSort: {
groupingType: 'all' | 'primary';
sortBy: AlbumListSort;
@@ -83,6 +88,14 @@ export const useAppStore = createWithEqualityFn<AppSlice>()(
devtools(
immer((set, get) => ({
actions: {
setAlbumArtistDetailFavoriteSongsSort: (sortBy, sortOrder) => {
set((state) => {
state.albumArtistDetailFavoriteSongsSort = {
sortBy,
sortOrder,
};
});
},
setAlbumArtistDetailGroupingType: (groupingType) => {
set((state) => {
state.albumArtistDetailSort.groupingType = groupingType;
@@ -161,6 +174,10 @@ export const useAppStore = createWithEqualityFn<AppSlice>()(
});
},
},
albumArtistDetailFavoriteSongsSort: {
sortBy: SongListSort.ID,
sortOrder: SortOrder.ASC,
},
albumArtistDetailSort: {
groupingType: 'primary',
sortBy: AlbumListSort.RELEASE_DATE,