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 { EditPlaylistAction } from '/@/renderer/features/context-menu/actions/edit-playlist-action';
import { GetInfoAction } from '/@/renderer/features/context-menu/actions/get-info-action';
import { PlayAction } from '/@/renderer/features/context-menu/actions/play-action';
import { ContextMenuPreview } from '/@/renderer/features/context-menu/components/context-menu-preview';
import { usePermissions } from '/@/renderer/store';
import { ContextMenu } from '/@/shared/components/context-menu/context-menu';
import { LibraryItem, Playlist } from '/@/shared/types/domain-types';
interface PlaylistContextMenuProps {
items: Playlist[];
type: LibraryItem.PLAYLIST;
}
export const PlaylistContextMenu = ({ items, type }: PlaylistContextMenuProps) => {
const { ids } = useMemo(() => {
const ids = items.map((item) => item.id);
return { ids };
}, [items]);
const { userId, ...permissions } = usePermissions();
const canEditPublic = permissions.playlists.editPublic;
const includesNonOwnedPublic = items.some((item) => item.public && item.ownerId !== userId);
const canEditPlaylist = canEditPublic || !includesNonOwnedPublic;
const canDeletePlaylist = canEditPublic || !includesNonOwnedPublic;
return (
}
>
);
};