Add overtime calculation and display to the App component

This commit is contained in:
T.Landgraf committed 2026-08-14 08:13:05 +02:00
1 parent c2965b4aa8
commit b541fcd11b
1 file changed
+17 -1
+17 -1
View File
@@ -22,6 +22,7 @@ function App() {
const [workEnd, setWorkEnd] = React.useState<string>(''); const [workEnd, setWorkEnd] = React.useState<string>('');
const [breakMins, setBreakMins] = React.useState<number>(0); const [breakMins, setBreakMins] = React.useState<number>(0);
const [workedHrs, setWorkedHrs] = React.useState<number>(0); const [workedHrs, setWorkedHrs] = React.useState<number>(0);
const [overtimeMinutes, setOvertimeMinutes] = React.useState<number>(0);
const getHourDiff = () => { const getHourDiff = () => {
const start = toMinutes(workStart); const start = toMinutes(workStart);
@@ -36,6 +37,12 @@ function App() {
return fromMinutes(start + 8 * 60 + breakMins); return fromMinutes(start + 8 * 60 + breakMins);
} }
const handleSave = () => {
const hours = getHourDiff();
setWorkedHrs(hours);
setOvertimeMinutes(Math.round((hours - 8) * 60));
}
return ( return (
<Center> <Center>
<Stack> <Stack>
@@ -68,12 +75,21 @@ function App() {
onChange={(val) => setBreakMins(Number(val))} onChange={(val) => setBreakMins(Number(val))}
/> />
<Button onClick={() => setWorkedHrs(getHourDiff())}> <Button onClick={handleSave}>
Speichern Speichern
</Button> </Button>
<Text>Gearbeitete Stunden heute: {workedHrs.toFixed(2)}</Text> <Text>Gearbeitete Stunden heute: {workedHrs.toFixed(2)}</Text>
<Text>Wann du gehen kannst für 8 Stunden: {getWorkEndTime()}</Text> <Text>Wann du gehen kannst für 8 Stunden: {getWorkEndTime()}</Text>
{overtimeMinutes === 0 && (
<Text>Du hast genau 8 Stunden gearbeitet.</Text>
)}
{overtimeMinutes > 0 && (
<Text c="yellow">Überstunden: {overtimeMinutes} Minuten</Text>
)}
{overtimeMinutes < 0 && (
<Text>Fehlende Minuten für 8 Stunden: {-overtimeMinutes} Minuten</Text>
)}
</Stack> </Stack>
</Center> </Center>
); );