34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
export default function useSettingsActions({
|
|
settings,
|
|
setSettings,
|
|
setSettingsNotice,
|
|
showNotification
|
|
}) {
|
|
const onSettingsChange = (field, value) => {
|
|
setSettings((prev) => ({
|
|
...prev,
|
|
[field]: value
|
|
}));
|
|
};
|
|
|
|
const saveSettings = async () => {
|
|
if (!window.api) {
|
|
setSettingsNotice({ text: "Electron API недоступен. Откройте приложение в Electron.", tone: "error" });
|
|
showNotification("Electron API недоступен. Откройте приложение в Electron.", "error");
|
|
return;
|
|
}
|
|
try {
|
|
showNotification("Сохраняем настройки...", "info");
|
|
const updated = await window.api.saveSettings(settings);
|
|
setSettings(updated);
|
|
setSettingsNotice({ text: "Настройки сохранены.", tone: "success" });
|
|
} catch (error) {
|
|
const message = error.message || String(error);
|
|
setSettingsNotice({ text: message, tone: "error" });
|
|
showNotification(message, "error");
|
|
}
|
|
};
|
|
|
|
return { onSettingsChange, saveSettings };
|
|
}
|