import { useState, useEffect } from 'react'; const useConfig = () => { const [config, setConfig] = useState({ username: '', password: '', memory: 4096, comfortVersion: '', accessToken: '', clientToken: '', }); const loadInitialConfig = () => { try { const savedConfig = localStorage.getItem('launcher_config'); if (savedConfig) { return JSON.parse(savedConfig); } } catch (error) { console.log('Ошибка загрузки конфигурации:', error); } return { username: '', password: '', memory: 4096, comfortVersion: '', accessToken: '', clientToken: '', }; }; useEffect(() => { const savedConfig = loadInitialConfig(); setConfig(savedConfig); }, []); const saveConfig = ( username: string, memory: number, accessToken = '', clientToken = '', comfortVersion = '', password = '', ) => { try { const newConfig = { username, memory, accessToken: accessToken || config.accessToken, clientToken: clientToken || config.clientToken, comfortVersion: comfortVersion || config.comfortVersion, password: password || config.password, }; setConfig(newConfig); localStorage.setItem('launcher_config', JSON.stringify(newConfig)); } catch (error) { console.log(`Ошибка при сохранении конфигурации: ${error.message}`); } }; const handleInputChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setConfig((prev) => ({ ...prev, [name]: value })); }; return { config, setConfig, saveConfig, handleInputChange }; }; export default useConfig;