// ============================================================
// media-ref-menu.ts — 媒体参考输入框右键菜单定义
//
// 两个子场景：
//   [预览图上右击]
//     打开文件列表 | 复制文件到粘贴板
//   [空白区右击]
//     删除已选素材（需搭配左键单击多选）
//
// 菜单项由调用方根据右击位置（target）动态选择使用哪组定义。
// ============================================================

import type { ContextMenuItems } from '@/shared/components/ContextMenu';

export interface MediaRefMenuOptions {
    /** 是否有已选素材（影响"删除已选素材"的禁用状态） */
    hasSelection: boolean;

    onOpenFileList: () => void;
    onCopyToClipboard: () => void;
    onDeleteSelected: () => void;
}

/** 在预览图上右击（文件可点区域） */
export function getMediaRefImageMenu(opts: MediaRefMenuOptions): ContextMenuItems {
    return [
        {
            key: 'open-file-list',
            label: '打开文件列表',
            onClick: opts.onOpenFileList,
        },
        {
            key: 'copy-to-clipboard',
            label: '复制文件到粘贴板',
            onClick: opts.onCopyToClipboard,
        },
    ];
}

/** 在空白区域右击（批量操作） */
export function getMediaRefBlankMenu(opts: MediaRefMenuOptions): ContextMenuItems {
    return [
        {
            key: 'delete-selected',
            label: '删除已选素材',
            onClick: opts.onDeleteSelected,
            disabled: !opts.hasSelection,
            danger: true,
        },
    ];
}
