mixvideo-v2/apps/desktop/src/pages/Settings.tsx

165 lines
8.7 KiB
TypeScript

import React, { useState } from 'react';
import { ScreenAdaptationSettings } from '../components/ScreenAdaptationSettings';
import { ComfyUISettingsPanel } from '../components/outfit/ComfyUISettingsPanel';
/**
* 设置页面
* 包含各种应用设置选项
*/
const Settings: React.FC = () => {
const [showScreenSettings, setShowScreenSettings] = useState(false);
return (
<div className="min-h-screen bg-gray-50">
<div className="max-w-4xl mx-auto py-8 px-4">
<div className="bg-white rounded-lg shadow-sm">
<div className="px-6 py-4 border-b border-gray-200">
<h1 className="text-2xl font-semibold text-gray-900"></h1>
<p className="text-gray-600 mt-1"></p>
</div>
<div className="p-6">
<div className="space-y-6">
{/* 显示设置 */}
<div className="border border-gray-200 rounded-lg p-4">
<h2 className="text-lg font-medium text-gray-900 mb-4"></h2>
<div className="space-y-4">
<div className="flex items-center justify-between">
<div>
<h3 className="text-sm font-medium text-gray-900"></h3>
<p className="text-sm text-gray-500"></p>
</div>
<button
onClick={() => setShowScreenSettings(true)}
className="bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 transition-colors text-sm"
>
</button>
</div>
</div>
</div>
{/* 性能设置 */}
<div className="border border-gray-200 rounded-lg p-4">
<h2 className="text-lg font-medium text-gray-900 mb-4"></h2>
<div className="space-y-4">
<div className="flex items-center justify-between">
<div>
<h3 className="text-sm font-medium text-gray-900"></h3>
<p className="text-sm text-gray-500">GPU加速以提升性能</p>
</div>
<label className="relative inline-flex items-center cursor-pointer">
<input type="checkbox" className="sr-only peer" defaultChecked />
<div className="w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
</label>
</div>
<div className="flex items-center justify-between">
<div>
<h3 className="text-sm font-medium text-gray-900"></h3>
<p className="text-sm text-gray-500"></p>
</div>
<label className="relative inline-flex items-center cursor-pointer">
<input type="checkbox" className="sr-only peer" defaultChecked />
<div className="w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
</label>
</div>
</div>
</div>
{/* ComfyUI 设置 */}
<div className="border border-gray-200 rounded-lg">
<div className="p-4 border-b border-gray-200">
<h2 className="text-lg font-medium text-gray-900">穿</h2>
<p className="text-sm text-gray-500 mt-1"> ComfyUI </p>
</div>
<div className="p-0">
<ComfyUISettingsPanel />
</div>
</div>
{/* 通知设置 */}
<div className="border border-gray-200 rounded-lg p-4">
<h2 className="text-lg font-medium text-gray-900 mb-4"></h2>
<div className="space-y-4">
<div className="flex items-center justify-between">
<div>
<h3 className="text-sm font-medium text-gray-900"></h3>
<p className="text-sm text-gray-500"></p>
</div>
<label className="relative inline-flex items-center cursor-pointer">
<input type="checkbox" className="sr-only peer" defaultChecked />
<div className="w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
</label>
</div>
<div className="flex items-center justify-between">
<div>
<h3 className="text-sm font-medium text-gray-900"></h3>
<p className="text-sm text-gray-500"></p>
</div>
<label className="relative inline-flex items-center cursor-pointer">
<input type="checkbox" className="sr-only peer" />
<div className="w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
</label>
</div>
</div>
</div>
{/* 数据设置 */}
<div className="border border-gray-200 rounded-lg p-4">
<h2 className="text-lg font-medium text-gray-900 mb-4"></h2>
<div className="space-y-4">
<div className="flex items-center justify-between">
<div>
<h3 className="text-sm font-medium text-gray-900"></h3>
<p className="text-sm text-gray-500"></p>
</div>
<button className="bg-green-600 text-white px-4 py-2 rounded-md hover:bg-green-700 transition-colors text-sm">
</button>
</div>
<div className="flex items-center justify-between">
<div>
<h3 className="text-sm font-medium text-gray-900"></h3>
<p className="text-sm text-gray-500"></p>
</div>
<button className="bg-orange-600 text-white px-4 py-2 rounded-md hover:bg-orange-700 transition-colors text-sm">
</button>
</div>
</div>
</div>
{/* 关于信息 */}
<div className="border border-gray-200 rounded-lg p-4">
<h2 className="text-lg font-medium text-gray-900 mb-4"></h2>
<div className="space-y-2 text-sm text-gray-600">
<p><strong>:</strong> 0.2.1</p>
<p><strong>:</strong> {new Date().toLocaleDateString()}</p>
<p><strong>:</strong> Tauri + React + TypeScript</p>
</div>
</div>
</div>
</div>
</div>
</div>
{/* 屏幕适配设置弹窗 */}
{showScreenSettings && (
<ScreenAdaptationSettings
onClose={() => setShowScreenSettings(false)}
/>
)}
</div>
);
};
export default Settings;