import { useEffect, useState } from 'react' import { db } from '../db' import { DEFAULT_RATING_TREND_WEIGHT_STEP } from '../config/constants' import { previewWeights } from '../utils/ratingTrend' export default function RatingWeightConfig() { const [weightStep, setWeightStep] = useState(DEFAULT_RATING_TREND_WEIGHT_STEP) const [saved, setSaved] = useState(false) useEffect(() => { const load = async () => { let settings = await db.appSettings.get(1) if (!settings) { await db.appSettings.add({ id: 1, ratingTrendWeightStep: DEFAULT_RATING_TREND_WEIGHT_STEP }) settings = await db.appSettings.get(1) } setWeightStep(settings?.ratingTrendWeightStep ?? DEFAULT_RATING_TREND_WEIGHT_STEP) } load() }, []) const save = async () => { await db.appSettings.put({ id: 1, ratingTrendWeightStep: weightStep }) setSaved(true) setTimeout(() => setSaved(false), 2500) } return (

Zeitgewichtung des Bewertungs-Vorschlags

Steuert, wie stark spätere Meetings in den Bewertungs-Vorschlag auf der Auswertungs- und Feedback-Seite einfließen. 0 = alle Meetings gleich gewichtet, höher = stärkere Gewichtung späterer Bewertungen.

{weightStep.toFixed(1)}
setWeightStep(Number(e.target.value))} className="w-full" />
Beispiel bei 3 bewerteten Meetings
{previewWeights(3, weightStep).map((w, i) => ( Meeting {i + 1}: ×{w.toFixed(1)} ))}
{saved && (
Gespeichert.
)}
) }