Update from Git Manager GUI
This commit is contained in:
@@ -5,6 +5,30 @@ export default function Settings() {
|
||||
const [giteaToken, setGiteaToken] = useState('');
|
||||
const [giteaURL, setGiteaURL] = useState('');
|
||||
|
||||
function normalizeAndValidateGiteaUrl(rawUrl) {
|
||||
const value = (rawUrl || '').trim();
|
||||
if (!value) return { ok: true, value: '' };
|
||||
|
||||
let parsed;
|
||||
try {
|
||||
parsed = new URL(value);
|
||||
} catch (_) {
|
||||
return {
|
||||
ok: false,
|
||||
error: 'Ungültige Gitea-URL. Beispiel für IPv6: http://[2001:db8::1]:3000'
|
||||
};
|
||||
}
|
||||
|
||||
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
||||
return {
|
||||
ok: false,
|
||||
error: 'Die Gitea-URL muss mit http:// oder https:// beginnen.'
|
||||
};
|
||||
}
|
||||
|
||||
return { ok: true, value: value.replace(/\/$/, '') };
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
window.electronAPI.loadCredentials().then(data => {
|
||||
if (data) {
|
||||
@@ -16,7 +40,13 @@ export default function Settings() {
|
||||
}, []);
|
||||
|
||||
const save = () => {
|
||||
window.electronAPI.saveCredentials({ githubToken, giteaToken, giteaURL });
|
||||
const checkedUrl = normalizeAndValidateGiteaUrl(giteaURL);
|
||||
if (!checkedUrl.ok) {
|
||||
alert(checkedUrl.error);
|
||||
return;
|
||||
}
|
||||
|
||||
window.electronAPI.saveCredentials({ githubToken, giteaToken, giteaURL: checkedUrl.value });
|
||||
alert('Settings saved securely!');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user