Add overtime calculation and display to the App component
This commit is contained in:
1 parent
c2965b4aa8
commit
b541fcd11b
1 file changed
+17
-1
+17
-1
@@ -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>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in new issue
Block a user