members filters as panels
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 48s
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 48s
This commit is contained in:
Binary file not shown.
@@ -5105,6 +5105,8 @@ private fun MembersScreen(
|
||||
var selectedSort by rememberSaveable { mutableStateOf("name") }
|
||||
var sortAscending by rememberSaveable { mutableStateOf(true) }
|
||||
var showTrainingParticipationsColumn by rememberSaveable { mutableStateOf(false) }
|
||||
var memberActionsPanelExpanded by rememberSaveable { mutableStateOf(false) }
|
||||
var memberFiltersPanelExpanded by rememberSaveable { mutableStateOf(false) }
|
||||
var groupFilterMenuOpen by remember { mutableStateOf(false) }
|
||||
var ratingsBusy by remember { mutableStateOf(false) }
|
||||
var membersActionNote by remember { mutableStateOf<String?>(null) }
|
||||
@@ -5668,7 +5670,12 @@ private fun MembersScreen(
|
||||
}
|
||||
}
|
||||
}
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(8.dp), modifier = Modifier.fillMaxWidth()) {
|
||||
MembersTogglePanel(
|
||||
title = tr("members.actions", "Aktionen"),
|
||||
expanded = memberActionsPanelExpanded,
|
||||
onToggle = { memberActionsPanelExpanded = !memberActionsPanelExpanded },
|
||||
) {
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(8.dp), modifier = Modifier.fillMaxWidth()) {
|
||||
OutlinedButton(
|
||||
onClick = { dependencies.applicationScope.launch { dependencies.membersManager.loadMembers(clubId) } },
|
||||
modifier = Modifier
|
||||
@@ -5780,7 +5787,13 @@ private fun MembersScreen(
|
||||
) { Text(tr("members.transferMembers", "Transfer"), style = MaterialTheme.typography.caption) }
|
||||
}
|
||||
}
|
||||
OutlinedTextField(
|
||||
}
|
||||
MembersTogglePanel(
|
||||
title = tr("members.filterSearchSort", "Filter, Suche & Sortierung"),
|
||||
expanded = memberFiltersPanelExpanded,
|
||||
onToggle = { memberFiltersPanelExpanded = !memberFiltersPanelExpanded },
|
||||
) {
|
||||
OutlinedTextField(
|
||||
value = query,
|
||||
onValueChange = { query = it },
|
||||
label = { Text(tr("mobile.search", "Suche")) },
|
||||
@@ -6118,6 +6131,7 @@ private fun MembersScreen(
|
||||
) { Text(tr("members.bulkEndTest", "Test beenden (Liste)"), style = MaterialTheme.typography.caption) }
|
||||
}
|
||||
}
|
||||
}
|
||||
membersActionNote?.let { note ->
|
||||
Text(note, style = MaterialTheme.typography.caption, color = MaterialTheme.colors.primary, modifier = Modifier.padding(bottom = 6.dp))
|
||||
}
|
||||
@@ -7383,6 +7397,44 @@ private fun FormScaffold(
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun MembersTogglePanel(
|
||||
title: String,
|
||||
expanded: Boolean,
|
||||
onToggle: () -> Unit,
|
||||
content: @Composable ColumnScope.() -> Unit,
|
||||
) {
|
||||
Card(
|
||||
modifier = Modifier.fillMaxWidth().padding(bottom = 8.dp),
|
||||
elevation = 1.dp,
|
||||
backgroundColor = MaterialTheme.colors.onSurface.copy(alpha = 0.03f),
|
||||
) {
|
||||
Column(modifier = Modifier.fillMaxWidth()) {
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.clickable(onClick = onToggle)
|
||||
.padding(horizontal = 12.dp, vertical = 8.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.SpaceBetween,
|
||||
) {
|
||||
Text(title, fontWeight = FontWeight.SemiBold, style = MaterialTheme.typography.subtitle2)
|
||||
Icon(
|
||||
imageVector = if (expanded) Icons.Filled.ExpandLess else Icons.Filled.ExpandMore,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(20.dp),
|
||||
)
|
||||
}
|
||||
if (expanded) {
|
||||
Column(
|
||||
modifier = Modifier.fillMaxWidth().padding(horizontal = 12.dp, vertical = 8.dp),
|
||||
content = content,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun Header(text: String) {
|
||||
Text(text, style = MaterialTheme.typography.h5, fontWeight = FontWeight.SemiBold)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[versions]
|
||||
# composeApp (Play Store / „Über die App“-Build)
|
||||
appVersionCode = "26"
|
||||
appVersionName = "1.7.6"
|
||||
appVersionCode = "27"
|
||||
appVersionName = "1.7.7"
|
||||
agp = "9.2.1"
|
||||
android-compileSdk = "35"
|
||||
android-minSdk = "24"
|
||||
|
||||
Reference in New Issue
Block a user