/* Innstillinger for legacy-automater — leser og skriver til v1 Firestore settings-doc.
Brukes for å konfigurere Vipps-credentials, admin-mobile-nummer, lyd-/lys-
toggler, gass-alarm-flagg, etc. for v1-automater som fortsatt kjører
RPi-stacken og leser sine settings fra Firestore.
*/
const LegacySettings = ({ machine, lang }) => {
const [loading, setLoading] = React.useState(true);
const [error, setError] = React.useState(null);
const [fields, setFields] = React.useState({});
const [edits, setEdits] = React.useState({});
const [saving, setSaving] = React.useState(false);
const [savedAt, setSavedAt] = React.useState(null);
React.useEffect(() => {
let cancelled = false;
setLoading(true);
window.api.legacyGetSettings(machine.id).then(r => {
if (cancelled) return;
setFields(r.fields || {});
setLoading(false);
}).catch(e => { setError(e.message); setLoading(false); });
return () => { cancelled = true; };
}, [machine.id]);
const set = (k, v) => setEdits(prev => ({ ...prev, [k]: v }));
const val = (k) => (edits[k] !== undefined ? edits[k] : fields[k]);
const save = async (keys) => {
setSaving(true); setError(null);
const updates = {};
keys.forEach(k => { if (edits[k] !== undefined) updates[k] = edits[k]; });
if (Object.keys(updates).length === 0) {
setSaving(false);
alert('Ingen endringer å lagre');
return;
}
try {
await window.api.legacySaveSettings(machine.id, updates);
setFields(prev => ({ ...prev, ...updates }));
setEdits(prev => { const c = { ...prev }; keys.forEach(k => delete c[k]); return c; });
setSavedAt(new Date().toLocaleTimeString('no-NO'));
} catch (e) { setError(e.message); }
setSaving(false);
};
if (loading) return
Laster v1-settings…
;
return (
<>
ℹ Disse innstillingene skrives direkte til v1 Firestore locations/{machine.firestoreLocId}/settings/….
v1 RPi leser dem live via snapshot-listener og oppdateres uten omstart.
Sensitive felt (vipps-credentials, admin-mobile) — endre med varsomhet.