import React from 'react';
import ReactDOM from 'react-dom/client';
import { App as AntdApp } from 'antd';

import App from './App';
import { ThemeProvider } from './components/ThemeProvider';
import { AppProvider } from './components/AppProvider';
import { SettingsProvider } from './components/SettingsProvider';
// 全局样式（包含 Tailwind 指令 + 主题扩展 + 重置）
import './theme/globals.css';

ReactDOM.createRoot(document.getElementById('root')!).render(
   <React.StrictMode>
      {/* AppProvider — 全局应用状态（平台/版本/登录态） */}
      <AppProvider>
         {/* ThemeProvider 内部管理 ConfigProvider（亮色/暗色切换） */}
         <ThemeProvider>
            {/* SettingsProvider — 集中管理设置项（存储路径等） */}
            <SettingsProvider>
               {/* AntdApp 提供 message / notification / modal 的静态方法上下文 */}
               <AntdApp>
                  <App />
               </AntdApp>
            </SettingsProvider>
         </ThemeProvider>
      </AppProvider>
   </React.StrictMode>,
);

// 仅在 Electron 环境中监听主进程消息（浏览器预览时跳过）
import { safeIpcOn } from './utils/ipc';
safeIpcOn('main-process-message', (_event: unknown, message: unknown) => {
   console.log('[Main Process Message]:', message);
});
