This commit is contained in:
piradata 2024-05-16 02:52:10 -03:00
parent 72aa822655
commit 653afa7210

View file

@ -1,7 +1,7 @@
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import ISO6391 from 'iso-639-1' import ISO6391 from "iso-639-1";
import { TextField, Button, CheckboxField, Select} from "@renderer/components"; import { TextField, Button, CheckboxField, Select } from "@renderer/components";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import * as styles from "./settings-general.css"; import * as styles from "./settings-general.css";
import type { UserPreferences } from "@types"; import type { UserPreferences } from "@types";
@ -18,29 +18,29 @@ export function SettingsGeneral({
userPreferences, userPreferences,
updateUserPreferences, updateUserPreferences,
}: SettingsGeneralProps) { }: SettingsGeneralProps) {
const { t } = useTranslation("settings"); const { t } = useTranslation("settings");
const [form, setForm] = useState( const [form, setForm] = useState({
{ downloadsPath: "",
downloadsPath: '', downloadNotificationsEnabled: false,
downloadNotificationsEnabled: false, repackUpdatesNotificationsEnabled: false,
repackUpdatesNotificationsEnabled: false, language: "",
language: '', });
}
); const [defaultDownloadsPath, setdefaultDownloadsPath] = useState("");
const [defaultDownloadsPath, setdefaultDownloadsPath] = useState('');
useEffect(() => { useEffect(() => {
async function fetchdefaultDownloadsPath() { async function fetchdefaultDownloadsPath() {
setdefaultDownloadsPath(await window.electron.getDefaultDownloadsPath()) setdefaultDownloadsPath(await window.electron.getDefaultDownloadsPath());
} }
fetchdefaultDownloadsPath(); fetchdefaultDownloadsPath();
}, []); }, []);
useEffect(updateFormWithUserPreferences, [userPreferences, defaultDownloadsPath]); useEffect(updateFormWithUserPreferences, [
userPreferences,
defaultDownloadsPath,
]);
const handleLanguageChange = (event) => { const handleLanguageChange = (event) => {
const value = event.target.value; const value = event.target.value;
@ -69,14 +69,16 @@ export function SettingsGeneral({
} }
}; };
function updateFormWithUserPreferences(){ function updateFormWithUserPreferences() {
if (userPreferences) { if (userPreferences) {
setForm((prev) => ({ setForm((prev) => ({
...prev, ...prev,
downloadsPath: userPreferences.downloadsPath ?? defaultDownloadsPath, downloadsPath: userPreferences.downloadsPath ?? defaultDownloadsPath,
downloadNotificationsEnabled: userPreferences.downloadNotificationsEnabled, downloadNotificationsEnabled:
repackUpdatesNotificationsEnabled: userPreferences.repackUpdatesNotificationsEnabled, userPreferences.downloadNotificationsEnabled,
language: userPreferences.language repackUpdatesNotificationsEnabled:
userPreferences.repackUpdatesNotificationsEnabled,
language: userPreferences.language,
})); }));
} }
} }
@ -103,8 +105,10 @@ export function SettingsGeneral({
<h3>{t("language")}</h3> <h3>{t("language")}</h3>
<> <>
<Select value={form.language} onChange={handleLanguageChange}> <Select value={form.language} onChange={handleLanguageChange}>
{Object.keys(languageResources).map(language => ( {Object.keys(languageResources).map((language) => (
<option key={language} value={language}>{ISO6391.getName(language)}</option> <option key={language} value={language}>
{ISO6391.getName(language)}
</option>
))} ))}
</Select> </Select>
</> </>