feat: initial commit - ServerManager Pro v2.0.0

This commit is contained in:
2025-11-26 23:21:44 +03:00
commit af51c68d7f
39 changed files with 23191 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
import React from 'react';
const Settings = () => {
const handleExport = async () => {
if (window.electronAPI) {
const servers = await window.electronAPI.loadServers();
const passwords = await window.electronAPI.loadPasswords();
const templates = await window.electronAPI.loadCommandTemplates();
const data = {
servers: servers.success ? servers.servers : [],
passwords: passwords.success ? passwords.passwords : [],
templates: templates.success ? templates.templates : [],
exportDate: new Date().toISOString()
};
const result = await window.electronAPI.exportData(data);
if (result.success) {
alert('Данные успешно экспортированы!');
} else {
alert(`Ошибка экспорта: ${result.error}`);
}
}
};
const handleImport = async () => {
if (window.electronAPI) {
const result = await window.electronAPI.importData();
if (result.success) {
const data = result.data;
if (data.servers) {
await window.electronAPI.saveServers(data.servers);
}
if (data.passwords) {
await window.electronAPI.savePasswords(data.passwords);
}
if (data.templates) {
await window.electronAPI.saveCommandTemplates(data.templates);
}
alert('Данные успешно импортированы! Перезагрузите приложение.');
} else {
alert(`Ошибка импорта: ${result.error}`);
}
}
};
return (
<div className="p-6">
<div className="mb-6">
<h1 className="text-2xl font-bold text-white">Настройки</h1>
<p className="text-gray-400">Управление данными приложения</p>
</div>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
<div className="bg-gray-800 rounded-lg p-6">
<h3 className="text-lg font-semibold text-white mb-4">Экспорт данных</h3>
<p className="text-gray-400 mb-4">Сохраните все данные в файл для резервного копирования</p>
<button
onClick={handleExport}
className="w-full bg-primary-600 text-white py-2 px-4 rounded-lg hover:bg-primary-700 transition-colors"
>
Экспортировать данные
</button>
</div>
<div className="bg-gray-800 rounded-lg p-6">
<h3 className="text-lg font-semibold text-white mb-4">Импорт данных</h3>
<p className="text-gray-400 mb-4">Восстановите данные из ранее созданного файла</p>
<button
onClick={handleImport}
className="w-full bg-primary-600 text-white py-2 px-4 rounded-lg hover:bg-primary-700 transition-colors"
>
Импортировать данные
</button>
</div>
</div>
<div className="mt-6 bg-gray-800 rounded-lg p-6">
<h3 className="text-lg font-semibold text-white mb-4">Информация о приложении</h3>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4 text-sm">
<div>
<span className="text-gray-400">Версия:</span>
<span className="text-white ml-2">2.0</span>
</div>
<div>
<span className="text-gray-400">Платформа:</span>
<span className="text-white ml-2">{navigator.platform}</span>
</div>
<div>
<span className="text-gray-400">Electron:</span>
<span className="text-white ml-2"></span>
</div>
</div>
</div>
</div>
);
};
export default Settings;