Added Divider components and weekly balance display to App UI

This commit is contained in:
Tobias committed 2026-09-06 17:03:23 +02:00
1 parent ba89425dc1
commit b91c9b1377
2 files changed
+84 -87

No files matched your search

+78 -85
View File
@@ -6,21 +6,13 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="58b952d2-2253-4e80-8b30-0eef029dc0b0" name="Changes" comment="Add &quot;not working&quot; day option with UI updates and logic adjustments for overtime calculations"> <list default="true" id="58b952d2-2253-4e80-8b30-0eef029dc0b0" name="Changes" comment="Add &quot;not working&quot; day option with UI updates and logic adjustments for overtime calculations">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../zkpa4fs_qt/.gitignore" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/App.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/App.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../zkpa4fs_qt/CMakeLists.txt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../zkpa4fs_qt/main.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../zkpa4fs_qt/mainwindow.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../zkpa4fs_qt/mainwindow.h" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../zkpa4fs_qt/mainwindow.ui" beforeDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="EmbeddingIndexingInfo">
<option name="fileBasedEmbeddingIndicesEnabled" value="true" />
</component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="ROOT_SYNC" value="DONT_SYNC" /> <option name="ROOT_SYNC" value="DONT_SYNC" />
@@ -32,61 +24,61 @@
</component> </component>
<component name="NextEditCompletionFeaturesState"> <component name="NextEditCompletionFeaturesState">
<decayedCancelled> <decayedCancelled>
<entry key="MS100" value="1.8713045682459133" /> <entry key="MS100" value="1.0" />
<entry key="MS500" value="4.964967647318563" /> <entry key="MS500" value="1.0000000000000004" />
<entry key="S2" value="8.805592398314435" /> <entry key="S2" value="1.000183175894356" />
<entry key="S5" value="11.082456613391365" /> <entry key="S5" value="1.0495012393969352" />
<entry key="S10" value="12.530544974000518" /> <entry key="S10" value="1.3797432006566308" />
<entry key="S30" value="14.118828062383605" /> <entry key="S30" value="3.771046996987498" />
<entry key="S60" value="15.63646976095219" /> <entry key="S60" value="8.575438672297661" />
<entry key="M2" value="20.246618537135184" /> <entry key="M2" value="18.233717061553882" />
<entry key="M5" value="33.84735052751462" /> <entry key="M5" value="40.119129023783174" />
<entry key="M10" value="48.556239670135945" /> <entry key="M10" value="62.29294974441068" />
<entry key="M15" value="59.009452824465505" /> <entry key="M15" value="76.83173198915503" />
<entry key="M30" value="77.92148978783722" /> <entry key="M30" value="101.89450541302114" />
<entry key="H1" value="93.69131188798369" /> <entry key="H1" value="122.46244872875756" />
<entry key="H2" value="104.17280333673239" /> <entry key="H2" value="136.15394802087735" />
<entry key="H4" value="110.25778245209355" /> <entry key="H4" value="144.13071183546847" />
<entry key="D1" value="115.82727919175183" /> <entry key="D1" value="151.45478859879904" />
<entry key="W1" value="116.83122123494417" /> <entry key="W1" value="152.7775448131677" />
</decayedCancelled> </decayedCancelled>
<decayedSelected> <decayedSelected>
<entry key="MS100" value="0.0" /> <entry key="MS100" value="0.0" />
<entry key="MS500" value="8.773163218858977E-96" /> <entry key="MS500" value="1.3535410739568989E-101" />
<entry key="S2" value="1.7210324234014676E-24" /> <entry key="S2" value="6.244094877346385E-26" />
<entry key="S5" value="3.121157042292262E-10" /> <entry key="S5" value="1.0186461012432033E-10" />
<entry key="S10" value="1.766680585820295E-5" /> <entry key="S10" value="1.3583341802084378E-5" />
<entry key="S30" value="0.026254218199129004" /> <entry key="S30" value="0.04132608441783188" />
<entry key="S60" value="0.17585861750115833" /> <entry key="S60" value="0.3390795529481237" />
<entry key="M2" value="0.5220943281874633" /> <entry key="M2" value="1.0588829457020548" />
<entry key="M5" value="1.1532805198395977" /> <entry key="M5" value="2.4316779261788106" />
<entry key="M10" value="1.7339695029459006" /> <entry key="M10" value="3.554387859181491" />
<entry key="M15" value="2.134085130196612" /> <entry key="M15" value="4.212670249673795" />
<entry key="M30" value="2.803871142351243" /> <entry key="M30" value="5.233708195980851" />
<entry key="H1" value="3.3122258339662363" /> <entry key="H1" value="5.985967558308104" />
<entry key="H2" value="3.6297103499357672" /> <entry key="H2" value="6.453709027277454" />
<entry key="H4" value="3.807678764689653" /> <entry key="H4" value="6.716063252393146" />
<entry key="D1" value="3.9668966795193827" /> <entry key="D1" value="6.951087528377853" />
<entry key="W1" value="3.995244523264256" /> <entry key="W1" value="6.992972327007955" />
</decayedSelected> </decayedSelected>
<decayedShown> <decayedShown>
<entry key="MS100" value="1.8260807679260624" /> <entry key="MS100" value="0.8888426811665702" />
<entry key="MS500" value="4.9318949024448315" /> <entry key="MS500" value="0.9767085289622274" />
<entry key="S2" value="8.769221040722588" /> <entry key="S2" value="0.9942594231244901" />
<entry key="S5" value="11.053500944573344" /> <entry key="S5" value="1.042124828012803" />
<entry key="S10" value="12.50969598045732" /> <entry key="S10" value="1.3619993943416138" />
<entry key="S30" value="14.13444811981906" /> <entry key="S30" value="3.7770854774510365" />
<entry key="S60" value="15.801193817213477" /> <entry key="S60" value="8.862528708355534" />
<entry key="M2" value="20.75131890622663" /> <entry key="M2" value="19.23240100443268" />
<entry key="M5" value="34.979814451664154" /> <entry key="M5" value="42.500163223193866" />
<entry key="M10" value="50.272658135844964" /> <entry key="M10" value="65.81012832576681" />
<entry key="M15" value="61.12871681391976" /> <entry key="M15" value="81.01482899515614" />
<entry key="M30" value="80.71538833020347" /> <entry key="M30" value="107.10968827714524" />
<entry key="H1" value="96.99757289149343" /> <entry key="H1" value="128.4377532590625" />
<entry key="H2" value="107.79922175194329" /> <entry key="H2" value="142.60188381263703" />
<entry key="H4" value="114.06372768959129" /> <entry key="H4" value="150.843763418603" />
<entry key="D1" value="119.79387380644174" /> <entry key="D1" value="158.40535538770985" />
<entry key="W1" value="120.82642227050502" /> <entry key="W1" value="159.77044226854383" />
</decayedShown> </decayedShown>
</component> </component>
<component name="ProjectColorInfo">{ <component name="ProjectColorInfo">{
@@ -98,32 +90,32 @@
<option name="hideEmptyMiddlePackages" value="true" /> <option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" /> <option name="showLibraryContents" value="true" />
</component> </component>
<component name="PropertiesComponent">{ <component name="PropertiesComponent"><![CDATA[{
&quot;keyToString&quot;: { "keyToString": {
&quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;, "ModuleVcsDetector.initialDetectionPerformed": "true",
&quot;RunOnceActivity.MCP Project settings loaded&quot;: &quot;true&quot;, "RunOnceActivity.MCP Project settings loaded": "true",
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;, "RunOnceActivity.ShowReadmeOnStart": "true",
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;, "RunOnceActivity.git.unshallow": "true",
&quot;RunOnceActivity.typescript.service.memoryLimit.init&quot;: &quot;true&quot;, "RunOnceActivity.typescript.service.memoryLimit.init": "true",
&quot;codeWithMe.voiceChat.enabledByDefault&quot;: &quot;false&quot;, "codeWithMe.voiceChat.enabledByDefault": "false",
&quot;com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1&quot;: &quot;true&quot;, "com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
&quot;git-widget-placeholder&quot;: &quot;main&quot;, "git-widget-placeholder": "main",
&quot;javascript.preferred.runtime.type.id&quot;: &quot;node&quot;, "javascript.preferred.runtime.type.id": "node",
&quot;junie.onboarding.icon.badge.shown&quot;: &quot;true&quot;, "junie.onboarding.icon.badge.shown": "true",
&quot;last_opened_file_path&quot;: &quot;C:/Users/t.landgraf/GitProjects/work_tracker&quot;, "last_opened_file_path": "C:/Users/t.landgraf/GitProjects/work_tracker",
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;, "node.js.detected.package.eslint": "true",
&quot;node.js.detected.package.jshint&quot;: &quot;true&quot;, "node.js.detected.package.jshint": "true",
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;, "node.js.detected.package.tslint": "true",
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;, "node.js.selected.package.eslint": "(autodetect)",
&quot;node.js.selected.package.jshint&quot;: &quot;&quot;, "node.js.selected.package.jshint": "",
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;, "node.js.selected.package.tslint": "(autodetect)",
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;, "nodejs_package_manager_path": "npm",
&quot;npm.dev.executor&quot;: &quot;Run&quot;, "npm.dev.executor": "Run",
&quot;settings.editor.selected.configurable&quot;: &quot;preferences.keymap&quot;, "settings.editor.selected.configurable": "preferences.keymap",
&quot;to.speed.mode.migration.done&quot;: &quot;true&quot;, "to.speed.mode.migration.done": "true",
&quot;ts.external.directory.path&quot;: &quot;C:\\Users\\t.landgraf\\AppData\\Local\\Programs\\WebStorm\\plugins\\javascript-plugin\\jsLanguageServicesImpl\\external&quot; "ts.external.directory.path": "/home/tobias/.local/share/JetBrains/Toolbox/apps/webstorm/plugins/javascript-plugin/jsLanguageServicesImpl/external"
} }
}</component> }]]></component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS"> <key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\t.landgraf\GitProjects\work_tracker" /> <recent name="C:\Users\t.landgraf\GitProjects\work_tracker" />
@@ -150,7 +142,7 @@
<component name="SharedIndexes"> <component name="SharedIndexes">
<attachedChunks> <attachedChunks>
<set> <set>
<option value="bundled-js-predefined-d6986cc7102b-4abd2a77f808-JavaScript-WS-262.9437.145" /> <option value="bundled-js-predefined-d6986cc7102b-4abd2a77f808-JavaScript-WS-262.10315.144" />
</set> </set>
</attachedChunks> </attachedChunks>
</component> </component>
@@ -163,6 +155,7 @@
<updated>1786104887278</updated> <updated>1786104887278</updated>
<workItem from="1786130663426" duration="632000" /> <workItem from="1786130663426" duration="632000" />
<workItem from="1786642848722" duration="5798000" /> <workItem from="1786642848722" duration="5798000" />
<workItem from="1788705944044" duration="1008000" />
</task> </task>
<task id="LOCAL-00001" summary="Implemented basic app with Mantine SegmentedControl"> <task id="LOCAL-00001" summary="Implemented basic app with Mantine SegmentedControl">
<option name="closed" value="true" /> <option name="closed" value="true" />
+6 -2
View File
@@ -1,4 +1,4 @@
import { SegmentedControl, Center, Stack, Button, Text, NumberInput, Space } from '@mantine/core'; import { SegmentedControl, Center, Stack, Button, Text, NumberInput, Divider } from '@mantine/core';
import { TimePicker } from '@mantine/dates'; import { TimePicker } from '@mantine/dates';
import * as React from 'react'; import * as React from 'react';
@@ -211,7 +211,11 @@ function App() {
<Text c={"red"}>Fehlende Minuten für 8 Stunden: {-record.overtimeMinutes} Minuten</Text> <Text c={"red"}>Fehlende Minuten für 8 Stunden: {-record.overtimeMinutes} Minuten</Text>
)} )}
<Space h={"xl"} /> <Divider />
<Text fw={700} size="lg" c="orange">
Aktuelles Überstunden-Guthaben: {getWeeklyBalance()} Minuten
</Text>
<Divider />
<Button color="red" variant="outline" onClick={handleResetWorkdays}> <Button color="red" variant="outline" onClick={handleResetWorkdays}>
Arbeitstage zurücksetzen Arbeitstage zurücksetzen
</Button> </Button>