diff --git a/frontend/src/tools/kalkulator3d.jsx b/frontend/src/tools/kalkulator3d.jsx index 02d4ac1..ef38c6d 100644 --- a/frontend/src/tools/kalkulator3d.jsx +++ b/frontend/src/tools/kalkulator3d.jsx @@ -8,6 +8,11 @@ const DEFAULTS = { strompreis_pro_kwh: 0.38, druckerpreis: 550, gesamtdruckstunden: 5000, verschleiss_pro_stunde: 0.25, }; +const LS_CUSTOM = 'dd_kalk3d_custom_defaults'; +const getEffectiveDefaults = () => { + try { const s = localStorage.getItem(LS_CUSTOM); if (s) return { ...DEFAULTS, ...JSON.parse(s) }; } catch {} + return { ...DEFAULTS }; +}; const getFarbFaktor = n => Math.round((1.0 + Math.max(0, n - 1) * 0.1) * 100) / 100; const STUFEN = [ { key:'f', emoji:'💖', label:'Freundschaft', mult:1.0, c:'#ff6b9d' }, @@ -99,7 +104,7 @@ export default function Kalkulator3D({ toast, editData, onEditDone, mobile }) { druckerpreis: editData.druckerpreis, gesamtdruckstunden: editData.gesamtdruckstunden, verschleiss_pro_stunde: editData.verschleiss_pro_stunde, - } : { ...DEFAULTS }); + } : { ...getEffectiveDefaults() }); const [showAdv, setShowAdv] = useState(false); const [name, setName] = useState(editData?.name ?? ''); const [bemerkung, setBemerkung] = useState(editData?.bemerkung ?? ''); @@ -184,7 +189,7 @@ export default function Kalkulator3D({ toast, editData, onEditDone, mobile }) { ▶ Erweiterte Einstellungen - {Object.entries(vars).some(([k,v]) => v !== DEFAULTS[k]) ? 'GEÄNDERT' : 'STANDARD'} + {Object.entries(vars).some(([k,v]) => v !== getEffectiveDefaults()[k]) ? 'GEÄNDERT' : 'STANDARD'} {showAdv && ( @@ -197,7 +202,21 @@ export default function Kalkulator3D({ toast, editData, onEditDone, mobile }) { sv('gesamtdruckstunden',v)} step={100}/> sv('verschleiss_pro_stunde',v)} step={0.01}/> - setVars({...DEFAULTS})} style={{ ...S.btn('#ff6b9d', true), marginTop:10 }}>↺ Standard + + { + localStorage.setItem(LS_CUSTOM, JSON.stringify(vars)); + toast('Als persönlicher Standard gespeichert ✓'); + }} style={{ ...S.btn('#4ecdc4', true), flex:1, textAlign:'center' }}> + ★ Als Standard speichern + + { + localStorage.removeItem(LS_CUSTOM); + setVars({ ...DEFAULTS }); + toast('Auf Werkseinstellungen zurückgesetzt'); + }} style={{ ...S.btn('#ff6b9d', true) }} title="Werkseinstellungen wiederherstellen"> + ↺ + + )}