mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-16 21:50:35 +02:00
Add base context menu provider/component
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import { createUseExternalEvents } from '@mantine/utils';
|
||||
import { LibraryItem } from '/@/renderer/types';
|
||||
|
||||
export type OpenContextMenuProps = {
|
||||
data: any[];
|
||||
menuItems: SetContextMenuItems;
|
||||
type: LibraryItem;
|
||||
xPos: number;
|
||||
yPos: number;
|
||||
};
|
||||
|
||||
export type ContextMenuEvents = {
|
||||
closeContextMenu: () => void;
|
||||
openContextMenu: (args: OpenContextMenuProps) => void;
|
||||
};
|
||||
|
||||
export type ContextMenuItem =
|
||||
| 'play'
|
||||
| 'playLast'
|
||||
| 'playNext'
|
||||
| 'addToPlaylist'
|
||||
| 'addToFavorites'
|
||||
| 'removeFromFavorites'
|
||||
| 'setRating';
|
||||
|
||||
export type SetContextMenuItems = {
|
||||
disabled?: boolean;
|
||||
id: ContextMenuItem;
|
||||
onClick?: () => void;
|
||||
}[];
|
||||
|
||||
export const [useContextMenuEvents, createEvent] =
|
||||
createUseExternalEvents<ContextMenuEvents>('context-menu');
|
||||
|
||||
export const openContextMenu = createEvent('openContextMenu');
|
||||
export const closeContextMenu = createEvent('closeContextMenu');
|
||||
Reference in New Issue
Block a user