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:
parent
439551951b
commit
c1655147bb
|
|
@ -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 = [
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user