add new context menu implementation

This commit is contained in:
jeffvli
2025-11-15 04:22:06 -08:00
parent ec0590c79a
commit 8eb90ebf06
47 changed files with 2826 additions and 1593 deletions
@@ -0,0 +1,31 @@
import { useMemo } from 'react';
import { AddToPlaylistAction } from '/@/renderer/features/context-menu/actions/add-to-playlist-action';
import { DeletePlaylistAction } from '/@/renderer/features/context-menu/actions/delete-playlist-action';
import { GetInfoAction } from '/@/renderer/features/context-menu/actions/get-info-action';
import { PlayAction } from '/@/renderer/features/context-menu/actions/play-action';
import { ContextMenu } from '/@/shared/components/context-menu/context-menu';
import { LibraryItem, Playlist } from '/@/shared/types/domain-types';
interface PlaylistContextMenuProps {
items: Playlist[];
}
export const PlaylistContextMenu = ({ items }: PlaylistContextMenuProps) => {
const { ids } = useMemo(() => {
const ids = items.map((item) => item.id);
return { ids };
}, [items]);
return (
<ContextMenu.Content>
<PlayAction ids={ids} itemType={LibraryItem.ALBUM} />
<ContextMenu.Divider />
<AddToPlaylistAction items={ids} itemType={LibraryItem.ALBUM} />
<ContextMenu.Divider />
<GetInfoAction disabled={items.length === 0} item={items[0]} />
<ContextMenu.Divider />
<DeletePlaylistAction items={items} />
</ContextMenu.Content>
);
};