mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-15 13:00:25 +02:00
fix override query behavior on list pages
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { lazy, Suspense } from 'react';
|
||||
import { lazy, Suspense, useMemo } from 'react';
|
||||
|
||||
import { useAlbumArtistListFilters } from '/@/renderer/features/artists/hooks/use-album-artist-list-filters';
|
||||
import { ItemListSettings, useCurrentServer, useListSettings } from '/@/renderer/store';
|
||||
@@ -70,6 +70,19 @@ export const AlbumArtistListView = ({
|
||||
|
||||
const { query } = useAlbumArtistListFilters();
|
||||
|
||||
const mergedQuery = useMemo(() => {
|
||||
if (!overrideQuery) {
|
||||
return query;
|
||||
}
|
||||
|
||||
return {
|
||||
...query,
|
||||
...overrideQuery,
|
||||
sortBy: overrideQuery.sortBy || query.sortBy,
|
||||
sortOrder: overrideQuery.sortOrder || query.sortOrder,
|
||||
};
|
||||
}, [query, overrideQuery]);
|
||||
|
||||
switch (display) {
|
||||
case ListDisplayType.GRID: {
|
||||
switch (pagination) {
|
||||
@@ -79,7 +92,7 @@ export const AlbumArtistListView = ({
|
||||
gap={grid.itemGap}
|
||||
itemsPerPage={itemsPerPage}
|
||||
itemsPerRow={grid.itemsPerRowEnabled ? grid.itemsPerRow : undefined}
|
||||
query={overrideQuery ?? query}
|
||||
query={mergedQuery}
|
||||
serverId={server.id}
|
||||
/>
|
||||
);
|
||||
@@ -90,7 +103,7 @@ export const AlbumArtistListView = ({
|
||||
gap={grid.itemGap}
|
||||
itemsPerPage={itemsPerPage}
|
||||
itemsPerRow={grid.itemsPerRowEnabled ? grid.itemsPerRow : undefined}
|
||||
query={overrideQuery ?? query}
|
||||
query={mergedQuery}
|
||||
serverId={server.id}
|
||||
/>
|
||||
);
|
||||
@@ -111,7 +124,7 @@ export const AlbumArtistListView = ({
|
||||
enableRowHoverHighlight={table.enableRowHoverHighlight}
|
||||
enableVerticalBorders={table.enableVerticalBorders}
|
||||
itemsPerPage={itemsPerPage}
|
||||
query={overrideQuery ?? query}
|
||||
query={mergedQuery}
|
||||
serverId={server.id}
|
||||
size={table.size}
|
||||
/>
|
||||
@@ -127,7 +140,7 @@ export const AlbumArtistListView = ({
|
||||
enableRowHoverHighlight={table.enableRowHoverHighlight}
|
||||
enableVerticalBorders={table.enableVerticalBorders}
|
||||
itemsPerPage={itemsPerPage}
|
||||
query={overrideQuery ?? query}
|
||||
query={mergedQuery}
|
||||
serverId={server.id}
|
||||
size={table.size}
|
||||
/>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { lazy, Suspense } from 'react';
|
||||
import { lazy, Suspense, useMemo } from 'react';
|
||||
|
||||
import { useArtistListFilters } from '/@/renderer/features/artists/hooks/use-artist-list-filters';
|
||||
import { ItemListSettings, useCurrentServer, useListSettings } from '/@/renderer/store';
|
||||
@@ -62,6 +62,19 @@ export const ArtistListView = ({
|
||||
|
||||
const { query } = useArtistListFilters();
|
||||
|
||||
const mergedQuery = useMemo(() => {
|
||||
if (!overrideQuery) {
|
||||
return query;
|
||||
}
|
||||
|
||||
return {
|
||||
...query,
|
||||
...overrideQuery,
|
||||
sortBy: overrideQuery.sortBy || query.sortBy,
|
||||
sortOrder: overrideQuery.sortOrder || query.sortOrder,
|
||||
};
|
||||
}, [query, overrideQuery]);
|
||||
|
||||
switch (display) {
|
||||
case ListDisplayType.GRID: {
|
||||
switch (pagination) {
|
||||
@@ -71,7 +84,7 @@ export const ArtistListView = ({
|
||||
gap={grid.itemGap}
|
||||
itemsPerPage={itemsPerPage}
|
||||
itemsPerRow={grid.itemsPerRowEnabled ? grid.itemsPerRow : undefined}
|
||||
query={overrideQuery ?? query}
|
||||
query={mergedQuery}
|
||||
serverId={server.id}
|
||||
/>
|
||||
);
|
||||
@@ -82,7 +95,7 @@ export const ArtistListView = ({
|
||||
gap={grid.itemGap}
|
||||
itemsPerPage={itemsPerPage}
|
||||
itemsPerRow={grid.itemsPerRowEnabled ? grid.itemsPerRow : undefined}
|
||||
query={overrideQuery ?? query}
|
||||
query={mergedQuery}
|
||||
serverId={server.id}
|
||||
/>
|
||||
);
|
||||
@@ -103,7 +116,7 @@ export const ArtistListView = ({
|
||||
enableRowHoverHighlight={table.enableRowHoverHighlight}
|
||||
enableVerticalBorders={table.enableVerticalBorders}
|
||||
itemsPerPage={itemsPerPage}
|
||||
query={overrideQuery ?? query}
|
||||
query={mergedQuery}
|
||||
serverId={server.id}
|
||||
size={table.size}
|
||||
/>
|
||||
@@ -119,7 +132,7 @@ export const ArtistListView = ({
|
||||
enableRowHoverHighlight={table.enableRowHoverHighlight}
|
||||
enableVerticalBorders={table.enableVerticalBorders}
|
||||
itemsPerPage={itemsPerPage}
|
||||
query={overrideQuery ?? query}
|
||||
query={mergedQuery}
|
||||
serverId={server.id}
|
||||
size={table.size}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user