refactor(ui): replace Divider with HorizontalDivider in NennungsMaske for consistent styling and updated imports

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
Stefan Mogeritsch 2026-03-21 13:47:33 +01:00
parent 439551951b
commit c1655147bb
3 changed files with 39 additions and 26 deletions

View File

@ -1,4 +1,4 @@
import {useState, useEffect, useRef} from 'react'; import {useEffect, useRef, useState} from 'react';
import Box from '@mui/material/Box'; import Box from '@mui/material/Box';
import TextField from '@mui/material/TextField'; import TextField from '@mui/material/TextField';
import Button from '@mui/material/Button'; import Button from '@mui/material/Button';
@ -9,7 +9,6 @@ import ListItem from '@mui/material/ListItem';
import ListItemButton from '@mui/material/ListItemButton'; import ListItemButton from '@mui/material/ListItemButton';
import ListItemText from '@mui/material/ListItemText'; import ListItemText from '@mui/material/ListItemText';
import Chip from '@mui/material/Chip'; import Chip from '@mui/material/Chip';
import Badge from '@mui/material/Badge';
// Mock-Daten für Pferde // Mock-Daten für Pferde
const mockPferde = [ const mockPferde = [

View File

@ -4,9 +4,9 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.List
import androidx.compose.material.icons.filled.* import androidx.compose.material.icons.filled.*
import androidx.compose.material3.* import androidx.compose.material3.*
import androidx.compose.runtime.* import androidx.compose.runtime.*
@ -84,7 +84,11 @@ fun NennungsMaske(
) )
} }
Divider(modifier = Modifier.fillMaxHeight().width(1.dp)) HorizontalDivider(
modifier = Modifier.fillMaxHeight().width(1.dp),
thickness = DividerDefaults.Thickness,
color = DividerDefaults.color
)
// Rechte Hälfte: Verkauf/Buchungen (40%) // Rechte Hälfte: Verkauf/Buchungen (40%)
Column( Column(
@ -100,7 +104,7 @@ fun NennungsMaske(
} }
} }
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
// --- Zeile 2: Aktions-Buttons (fix) --- // --- Zeile 2: Aktions-Buttons (fix) ---
AktionsButtonLeiste( AktionsButtonLeiste(
@ -110,7 +114,7 @@ fun NennungsMaske(
onAbrechnungOeffnen = onAbrechnungOeffnen, onAbrechnungOeffnen = onAbrechnungOeffnen,
) )
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
// --- Zeile 3: Nennungstabelle + Bewerbsliste (50% Höhe) --- // --- Zeile 3: Nennungstabelle + Bewerbsliste (50% Höhe) ---
Row( Row(
@ -132,7 +136,11 @@ fun NennungsMaske(
) )
} }
Divider(modifier = Modifier.fillMaxHeight().width(1.dp)) HorizontalDivider(
modifier = Modifier.fillMaxHeight().width(1.dp),
thickness = DividerDefaults.Thickness,
color = DividerDefaults.color
)
// Rechts: Bewerbsliste (40%) // Rechts: Bewerbsliste (40%)
Column( Column(
@ -206,7 +214,11 @@ private fun PferdReiterEingabe(
} }
} }
Divider(modifier = Modifier.fillMaxHeight().width(1.dp)) HorizontalDivider(
modifier = Modifier.fillMaxHeight().width(1.dp),
thickness = DividerDefaults.Thickness,
color = DividerDefaults.color
)
// --- Reiter --- // --- Reiter ---
Column(modifier = Modifier.weight(1f)) { Column(modifier = Modifier.weight(1f)) {
@ -308,7 +320,9 @@ private fun SuchfeldMitVorschlaegen(
.clickable { onVorschlagSelected(idx) } .clickable { onVorschlagSelected(idx) }
.padding(horizontal = 8.dp, vertical = 4.dp), .padding(horizontal = 8.dp, vertical = 4.dp),
) )
if (idx < vorschlaege.lastIndex) Divider() if (idx < vorschlaege.lastIndex) {
HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
}
} }
} }
} }
@ -377,7 +391,7 @@ private fun AktionsButtonLeiste(
Spacer(modifier = Modifier.weight(1f)) Spacer(modifier = Modifier.weight(1f))
SmallActionButton("Startliste", Icons.Default.List, "F7", onStartlisteOeffnen) SmallActionButton("Startliste", Icons.AutoMirrored.Filled.List, "F7", onStartlisteOeffnen)
SmallActionButton("Ergebnisse", Icons.Default.EmojiEvents, "F8", onErgebnisseOeffnen) SmallActionButton("Ergebnisse", Icons.Default.EmojiEvents, "F8", onErgebnisseOeffnen)
SmallActionButton("Abrechnung", Icons.Default.Receipt, "F9", onAbrechnungOeffnen) SmallActionButton("Abrechnung", Icons.Default.Receipt, "F9", onAbrechnungOeffnen)
} }
@ -453,7 +467,7 @@ private fun NennungenTabelle(
} }
} }
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
// Tabellen-Header // Tabellen-Header
TabellenHeader( TabellenHeader(
@ -461,7 +475,7 @@ private fun NennungenTabelle(
listOf(30f, 25f, 45f, 1f, 70f, 80f) listOf(30f, 25f, 45f, 1f, 70f, 80f)
) )
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
// Tabellen-Inhalt // Tabellen-Inhalt
if (nennungen.isEmpty()) { if (nennungen.isEmpty()) {
@ -510,7 +524,7 @@ private fun NennungenTabelle(
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
} }
Divider(thickness = 0.5.dp) HorizontalDivider(Modifier, thickness = 0.5.dp, color = DividerDefaults.color)
} }
} }
} }
@ -563,7 +577,7 @@ private fun BewerbslistePanel(
Text("${bewerbe.size} Bewerbe", fontSize = 10.sp, fontWeight = FontWeight.SemiBold) Text("${bewerbe.size} Bewerbe", fontSize = 10.sp, fontWeight = FontWeight.SemiBold)
} }
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
// Tabellen-Header // Tabellen-Header
TabellenHeader( TabellenHeader(
@ -571,15 +585,15 @@ private fun BewerbslistePanel(
listOf(28f, 22f, 45f, 45f, 35f, 1f) listOf(28f, 22f, 45f, 45f, 35f, 1f)
) )
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
// Tabellen-Inhalt // Tabellen-Inhalt
LazyColumn(modifier = Modifier.fillMaxSize()) { LazyColumn(modifier = Modifier.fillMaxSize()) {
itemsIndexed(bewerbe) { idx, bewerb -> itemsIndexed(bewerbe) { idx, bewerb ->
val bereitsGenannt = canNennen && nennungen.any { val bereitsGenannt = canNennen && nennungen.any {
it.bewerbNr == bewerb.nr && it.bewerbNr == bewerb.nr &&
it.pferdName == selectedPferd?.name && it.pferdName == selectedPferd.name &&
it.reiterName == selectedReiter?.vollname it.reiterName == selectedReiter.vollname
} }
val bgColor = when { val bgColor = when {
bereitsGenannt -> Color(0xFFBBDEFB) // Blau = bereits gemeldet bereitsGenannt -> Color(0xFFBBDEFB) // Blau = bereits gemeldet
@ -624,7 +638,7 @@ private fun BewerbslistePanel(
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
} }
Divider(thickness = 0.5.dp) HorizontalDivider(Modifier, thickness = 0.5.dp, color = DividerDefaults.color)
} }
} }
@ -716,12 +730,12 @@ private fun VerkaufTabInhalt(artikel: List<VerkaufArtikel>, onMengeChanged: (Ver
Text("Speichern", fontSize = 10.sp) Text("Speichern", fontSize = 10.sp)
} }
} }
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
TabellenHeader( TabellenHeader(
listOf("KNr", "+", "Menge", "", "Buchungstext", "Betrag", "Gebucht"), listOf("KNr", "+", "Menge", "", "Buchungstext", "Betrag", "Gebucht"),
listOf(30f, 20f, 45f, 20f, 1f, 55f, 55f) listOf(30f, 20f, 45f, 20f, 1f, 55f, 55f)
) )
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
LazyColumn(modifier = Modifier.fillMaxSize()) { LazyColumn(modifier = Modifier.fillMaxSize()) {
itemsIndexed(artikel) { idx, art -> itemsIndexed(artikel) { idx, art ->
val bgColor = when { val bgColor = when {
@ -751,7 +765,7 @@ private fun VerkaufTabInhalt(artikel: List<VerkaufArtikel>, onMengeChanged: (Ver
Text("%.2f".format(art.betrag), fontSize = 10.sp, modifier = Modifier.width(55.dp)) Text("%.2f".format(art.betrag), fontSize = 10.sp, modifier = Modifier.width(55.dp))
Text("%.2f".format(art.gebucht), fontSize = 10.sp, modifier = Modifier.width(55.dp)) Text("%.2f".format(art.gebucht), fontSize = 10.sp, modifier = Modifier.width(55.dp))
} }
Divider(thickness = 0.5.dp) HorizontalDivider(Modifier, thickness = 0.5.dp, color = DividerDefaults.color)
} }
} }
} }
@ -779,9 +793,9 @@ private fun BuchungenTabInhalt() {
Text("Stornieren", fontSize = 10.sp, color = MaterialTheme.colorScheme.error) Text("Stornieren", fontSize = 10.sp, color = MaterialTheme.colorScheme.error)
} }
} }
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
TabellenHeader(listOf("Kopfnr", "Menge", "Buchungstext", "Soll", "Haben"), listOf(55f, 45f, 1f, 55f, 55f)) TabellenHeader(listOf("Kopfnr", "Menge", "Buchungstext", "Soll", "Haben"), listOf(55f, 45f, 1f, 55f, 55f))
Divider() HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
Text("Keine Buchungen vorhanden", fontSize = 11.sp, color = MaterialTheme.colorScheme.onSurfaceVariant) Text("Keine Buchungen vorhanden", fontSize = 11.sp, color = MaterialTheme.colorScheme.onSurfaceVariant)
} }

View File

@ -1,6 +1,8 @@
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.* import androidx.compose.material3.*
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
@ -9,8 +11,6 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import at.mocode.frontend.core.auth.data.AuthTokenManager import at.mocode.frontend.core.auth.data.AuthTokenManager
import at.mocode.frontend.core.auth.presentation.LoginScreen import at.mocode.frontend.core.auth.presentation.LoginScreen
import at.mocode.frontend.core.auth.presentation.LoginViewModel import at.mocode.frontend.core.auth.presentation.LoginViewModel
@ -1316,7 +1316,7 @@ private fun OrganizerProfileScreen(
onValueChange = { vereinsname = it }, onValueChange = { vereinsname = it },
label = { Text("Vereinsname / Veranstalter") }, label = { Text("Vereinsname / Veranstalter") },
singleLine = true, singleLine = true,
modifier = androidx.compose.ui.Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()
) )
OutlinedTextField( OutlinedTextField(
value = vereinskuerzel, value = vereinskuerzel,