mirror of
https://github.com/antebudimir/feishin.git
synced 2026-01-01 10:23:33 +00:00
Refresh playlist list on delete (#134)
This commit is contained in:
parent
37e4940c2e
commit
be0792a5c7
10 changed files with 64 additions and 4 deletions
|
|
@ -97,6 +97,7 @@ export const ContextMenuProvider = ({ children }: ContextMenuProviderProps) => {
|
|||
data: [],
|
||||
dataNodes: [],
|
||||
menuItems: [],
|
||||
resetGridCache: undefined,
|
||||
tableApi: undefined,
|
||||
type: LibraryItem.SONG,
|
||||
xPos: 0,
|
||||
|
|
@ -106,7 +107,8 @@ export const ContextMenuProvider = ({ children }: ContextMenuProviderProps) => {
|
|||
const handlePlayQueueAdd = usePlayQueueAdd();
|
||||
|
||||
const openContextMenu = (args: OpenContextMenuProps) => {
|
||||
const { xPos, yPos, menuItems, data, type, tableApi, dataNodes, context } = args;
|
||||
const { xPos, yPos, menuItems, data, type, tableApi, dataNodes, context, resetGridCache } =
|
||||
args;
|
||||
|
||||
const serverType = data[0]?.serverType || useAuthStore.getState().currentServer?.type;
|
||||
let validMenuItems = menuItems;
|
||||
|
|
@ -133,6 +135,7 @@ export const ContextMenuProvider = ({ children }: ContextMenuProviderProps) => {
|
|||
data,
|
||||
dataNodes,
|
||||
menuItems: validMenuItems,
|
||||
resetGridCache,
|
||||
tableApi,
|
||||
type,
|
||||
xPos: calculatedXPos,
|
||||
|
|
@ -214,12 +217,16 @@ export const ContextMenuProvider = ({ children }: ContextMenuProviderProps) => {
|
|||
toast.success({
|
||||
message: `Playlist has been deleted`,
|
||||
});
|
||||
|
||||
ctx.tableApi?.refreshInfiniteCache();
|
||||
ctx.resetGridCache?.();
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
closeAllModals();
|
||||
}, [ctx.data, deletePlaylistMutation]);
|
||||
}, [ctx, deletePlaylistMutation]);
|
||||
|
||||
const openDeletePlaylistModal = useCallback(() => {
|
||||
openModal({
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ export type OpenContextMenuProps = {
|
|||
data: any[];
|
||||
dataNodes?: RowNode[];
|
||||
menuItems: SetContextMenuItems;
|
||||
resetGridCache?: () => void;
|
||||
tableApi?: GridOptions['api'];
|
||||
type: LibraryItem;
|
||||
xPos: number;
|
||||
|
|
|
|||
|
|
@ -72,3 +72,32 @@ export const useHandleGeneralContextMenu = (
|
|||
|
||||
return handleContextMenu;
|
||||
};
|
||||
|
||||
export const useHandleGridContextMenu = (
|
||||
itemType: LibraryItem,
|
||||
contextMenuItems: SetContextMenuItems,
|
||||
resetGridCache: () => void,
|
||||
context?: any,
|
||||
) => {
|
||||
const handleContextMenu = (
|
||||
e: any,
|
||||
data: Song[] | QueueSong[] | AlbumArtist[] | Artist[] | Album[],
|
||||
) => {
|
||||
if (!e) return;
|
||||
const clickEvent = e as MouseEvent;
|
||||
clickEvent.preventDefault();
|
||||
|
||||
openContextMenu({
|
||||
context,
|
||||
data,
|
||||
dataNodes: undefined,
|
||||
menuItems: contextMenuItems,
|
||||
resetGridCache,
|
||||
type: itemType,
|
||||
xPos: clickEvent.clientX + 15,
|
||||
yPos: clickEvent.clientY + 5,
|
||||
});
|
||||
};
|
||||
|
||||
return handleContextMenu;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue