Changed files:\napp/build.gradle.kts app/src/main/java/com/kawomi/githugandroid/Exercise.kt app/src/main/java/com/kawomi/githugandroid/GitHugApp.kt app/src/main/java/com/kawomi/githugandroid/Header.kt app/src/main/java/com/kawomi/githugandroid/Levels.kt app/src/main/java/com/kawomi/githugandroid/Panes.kt app/src/main/java/com/kawomi/githugandroid/Terminal.kt app/src/main/java/com/kawomi/githugandroid/Visual.kt
68 lines
2.4 KiB
Kotlin
68 lines
2.4 KiB
Kotlin
package com.kawomi.githugandroid
|
|
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.foundation.layout.Row
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
import androidx.compose.material3.Button
|
|
import androidx.compose.material3.ButtonDefaults
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.material3.TextButton
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.graphics.Color
|
|
import androidx.compose.ui.text.font.FontFamily
|
|
import androidx.compose.ui.text.font.FontWeight
|
|
import androidx.compose.ui.unit.dp
|
|
|
|
@Composable
|
|
fun ExercisePane(
|
|
level: Level,
|
|
visibleHint: String?,
|
|
suggestionsExpanded: Boolean,
|
|
onToggleSuggestions: () -> Unit,
|
|
onHint: () -> Unit,
|
|
onReset: () -> Unit,
|
|
) {
|
|
Column(
|
|
modifier = Modifier.fillMaxWidth(),
|
|
verticalArrangement = Arrangement.spacedBy(12.dp),
|
|
) {
|
|
Text(level.title, style = MaterialTheme.typography.titleLarge, color = TextPrimary)
|
|
Text(level.description, color = TextSecondary)
|
|
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
|
Button(
|
|
onClick = onHint,
|
|
colors = ButtonDefaults.buttonColors(
|
|
containerColor = Accent,
|
|
contentColor = Color.Black,
|
|
),
|
|
) {
|
|
Text("Hint")
|
|
}
|
|
TextButton(
|
|
onClick = onToggleSuggestions,
|
|
colors = ButtonDefaults.textButtonColors(contentColor = Accent),
|
|
) {
|
|
Text("Suggestions")
|
|
}
|
|
TextButton(
|
|
onClick = onReset,
|
|
colors = ButtonDefaults.textButtonColors(contentColor = Accent),
|
|
) {
|
|
Text("Reset level")
|
|
}
|
|
}
|
|
if (suggestionsExpanded && level.commandSuggestions.isNotEmpty()) {
|
|
Text("Suggestions", color = TextPrimary, fontWeight = FontWeight.Bold)
|
|
level.commandSuggestions.forEach { suggestion ->
|
|
Text(suggestion, color = TextSecondary, fontFamily = FontFamily.Monospace)
|
|
}
|
|
}
|
|
if (visibleHint != null) {
|
|
Text("Hint", color = TextPrimary, fontWeight = FontWeight.Bold)
|
|
Text(visibleHint, color = TextSecondary)
|
|
}
|
|
}
|
|
} |