// ============================================================
// preview-area-menu.ts — 任务输出预览区域右键菜单定义
//
// 两个子场景：
//   [有预览图]
//     打开文件所在位置 | 复制到粘贴板（图片）
//   [无预览图 / 未选择任务]
//     打开保存路径
//
// 菜单项由调用方根据当前状态动态选择。
// ============================================================

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

export interface PreviewAreaMenuOptions {
    /** 当前是否有预览内容 */
    hasPreview: boolean;

    onOpenFileLocation: () => void;
    onCopyImageToClipboard: () => void;
    onOpenSavePath: () => void;
}

/** 有预览图时 */
export function getPreviewImageMenu(opts: PreviewAreaMenuOptions): ContextMenuItems {
    return [
        {
            key: 'open-file-location',
            label: '打开文件所在位置',
            onClick: opts.onOpenFileLocation,
        },
        {
            key: 'copy-image',
            label: '复制到粘贴板（图片）',
            onClick: opts.onCopyImageToClipboard,
        },
    ];
}

/** 无预览图 / 未选择任务时（直接触发打开保存路径，返回单一项） */
export function getPreviewEmptyMenu(opts: PreviewAreaMenuOptions): ContextMenuItems {
    return [
        {
            key: 'open-save-path',
            label: '打开保存路径',
            onClick: opts.onOpenSavePath,
        },
    ];
}
