UI fix 4/5: Button variant migration — OutlinedButton/TextButton for secondary + tertiary
Primary confirmation buttons remain as Button (M3 filled default). Secondary actions (Cancel, Dismiss) → OutlinedButton. Inline links → TextButton. Reduces visual hierarchy ambiguity. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -35,7 +35,7 @@ fun ErrorState(message: String, onRetry: () -> Unit) {
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
Text(message, style = MaterialTheme.typography.bodyLarge, color = Color.Gray)
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
Button(onClick = onRetry) {
|
||||
OutlinedButton(onClick = onRetry) {
|
||||
Text("Retry")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -578,7 +578,7 @@ fun DocumentImageViewer(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
) {
|
||||
Button(
|
||||
OutlinedButton(
|
||||
onClick = { selectedIndex = (selectedIndex - 1 + images.size) % images.size },
|
||||
enabled = selectedIndex > 0
|
||||
) {
|
||||
@@ -586,7 +586,7 @@ fun DocumentImageViewer(
|
||||
Spacer(modifier = Modifier.width(OrganicSpacing.sm))
|
||||
Text("Previous")
|
||||
}
|
||||
Button(
|
||||
OutlinedButton(
|
||||
onClick = { selectedIndex = (selectedIndex + 1) % images.size },
|
||||
enabled = selectedIndex < images.size - 1
|
||||
) {
|
||||
|
||||
@@ -552,7 +552,7 @@ fun DocumentFormScreen(
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.spacedBy(OrganicSpacing.compact)
|
||||
) {
|
||||
Button(
|
||||
OutlinedButton(
|
||||
onClick = { cameraPicker() },
|
||||
modifier = Modifier.weight(1f),
|
||||
enabled = selectedImages.size < maxImages
|
||||
@@ -562,7 +562,7 @@ fun DocumentFormScreen(
|
||||
Text(stringResource(Res.string.documents_form_camera))
|
||||
}
|
||||
|
||||
Button(
|
||||
OutlinedButton(
|
||||
onClick = { imagePicker() },
|
||||
modifier = Modifier.weight(1f),
|
||||
enabled = selectedImages.size < maxImages
|
||||
|
||||
@@ -796,7 +796,7 @@ private fun ErrorPane(
|
||||
OutlinedButton(onClick = onSkip) {
|
||||
Text("Skip for now")
|
||||
}
|
||||
Button(onClick = onRetry) {
|
||||
OutlinedButton(onClick = onRetry) {
|
||||
Icon(Icons.Default.Refresh, contentDescription = null, modifier = Modifier.size(18.dp))
|
||||
Spacer(modifier = Modifier.width(OrganicSpacing.xs))
|
||||
Text("Retry")
|
||||
|
||||
@@ -301,7 +301,7 @@ private fun ErrorView(message: String, onRetry: () -> Unit) {
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||
)
|
||||
Button(onClick = onRetry) { Text("Retry") }
|
||||
OutlinedButton(onClick = onRetry) { Text("Retry") }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -465,7 +465,7 @@ private fun LoadErrorView(
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||
)
|
||||
Button(onClick = onRetry) {
|
||||
OutlinedButton(onClick = onRetry) {
|
||||
Text(stringResource(Res.string.templates_retry))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user