mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2026-09-03 03:50:02 +03:00
Invalidate library children when changed
This commit is contained in:
@@ -1,16 +1,22 @@
|
||||
import type { UserDto } from '@jellyfin/sdk/lib/generated-client/models/user-dto';
|
||||
import type { VirtualFolderInfo } from '@jellyfin/sdk/lib/generated-client/models/virtual-folder-info';
|
||||
|
||||
import { queryClient } from 'utils/query/queryClient';
|
||||
|
||||
import { QUERY_KEY } from './useVirtualFolders';
|
||||
|
||||
/** Invalidates queries related to libraries/virtual folders. */
|
||||
export const invalidateVirtualFolders = (user?: UserDto) => {
|
||||
export const invalidateVirtualFolders = (user?: UserDto, virtualFolder?: VirtualFolderInfo) => {
|
||||
// Admin API - Virtual Folders
|
||||
void queryClient.invalidateQueries({ queryKey: [QUERY_KEY] });
|
||||
|
||||
if (user) {
|
||||
// User API - Views
|
||||
void queryClient.invalidateQueries({ queryKey: ['User', user.Id, 'Views'] });
|
||||
|
||||
if (virtualFolder?.ItemId) {
|
||||
// Items API - Library children
|
||||
void queryClient.invalidateQueries({ queryKey: ['User', user.Id, 'Items', virtualFolder.ItemId] });
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -111,7 +111,7 @@ const LibraryCard = ({ virtualFolder }: LibraryCardProps) => {
|
||||
}) as Promise<boolean>;
|
||||
|
||||
void mediaLibraryEditor.then((hasChanges: boolean) => {
|
||||
if (hasChanges) invalidateVirtualFolders(user);
|
||||
if (hasChanges) invalidateVirtualFolders(user, virtualFolder);
|
||||
});
|
||||
}, [ user, virtualFolder ]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user