// ============================================================
// 最小化系统菜单
//
// 策略：已全面采用 H5 自定义导航栏，系统菜单仅保留 macOS 必需的 Edit 菜单
// （否则 Cmd+C/V/A 等系统级快捷键会失效）。
//
// macOS   → 仅 Edit 菜单（undo/redo/cut/copy/paste/selectAll）
// Windows → 完全移除系统菜单栏
// Linux   → 完全移除系统菜单栏
// ============================================================

import { app, Menu, type MenuItemConstructorOptions } from 'electron';
import { isMacOS } from '../utils/platform';
import { APP_NAME } from '../../../shared/constants/app';
import { APP_VERSION } from '../../../shared/constants/version';

/**
 * macOS 最小 Edit 菜单
 * 必须保留，否则 Cmd+C / Cmd+V / Cmd+A / Cmd+Z 等快捷键全部失效
 */
function buildMinimalEditMenu(): MenuItemConstructorOptions {
   return {
      label: 'Edit',
      submenu: [
         { label: '撤销', accelerator: 'Cmd+Z', role: 'undo' },
         { label: '重做', accelerator: 'Shift+Cmd+Z', role: 'redo' },
         { type: 'separator' },
         { label: '剪切', accelerator: 'Cmd+X', role: 'cut' },
         { label: '复制', accelerator: 'Cmd+C', role: 'copy' },
         { label: '粘贴', accelerator: 'Cmd+V', role: 'paste' },
         { label: '全选', accelerator: 'Cmd+A', role: 'selectAll' },
      ],
   };
}

/**
 * 设置应用菜单
 * macOS → 最小 Edit 菜单
 * Windows/Linux → 无菜单（导航栏由 H5 组件实现）
 */
export function setupAppMenu(): void {
   if (isMacOS()) {
      const template: MenuItemConstructorOptions[] = [buildMinimalEditMenu()];
      const menu = Menu.buildFromTemplate(template);
      Menu.setApplicationMenu(menu);
   } else {
      // Windows / Linux：完全移除菜单栏
      Menu.setApplicationMenu(null);
   }

   // 关于面板信息（macOS 原生 About / Windows 自定义）
   app.setAboutPanelOptions({
      applicationName: APP_NAME,
      applicationVersion: APP_VERSION,
      version: '',
      credits: 'Powered by Electron + React 19 + TypeScript',
   });
}
