50 lines
1.5 KiB
Kotlin
50 lines
1.5 KiB
Kotlin
package components
|
|
|
|
import androidx.compose.foundation.layout.*
|
|
import androidx.compose.material.Button
|
|
import androidx.compose.material.Surface
|
|
import androidx.compose.material.Text
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Alignment
|
|
import androidx.compose.ui.Modifier
|
|
import data.Player
|
|
import data.toColor
|
|
|
|
@Suppress("FunctionName")
|
|
@Composable
|
|
fun EndCard(
|
|
playerPointMap: MutableMap<Player, Long>,
|
|
close: () -> Unit
|
|
) {
|
|
Box(
|
|
contentAlignment = Alignment.Center,
|
|
modifier = Modifier.fillMaxWidth()
|
|
.fillMaxHeight()
|
|
) {
|
|
val firstThreePlaces = playerPointMap.entries
|
|
.sortedBy { it.value }
|
|
.map { it.key }
|
|
.take(3)
|
|
val firstPlayer = firstThreePlaces.first()
|
|
Column(
|
|
horizontalAlignment = Alignment.CenterHorizontally,
|
|
verticalArrangement = Arrangement.Center
|
|
) {
|
|
Text(text = "Congratulations, ${firstPlayer.name}!")
|
|
for ((index, player) in firstThreePlaces.withIndex()) {
|
|
Row(horizontalArrangement = Arrangement.SpaceBetween) {
|
|
Text(text = "Place ${index + 1}")
|
|
Surface(color = player.color.toColor()) {
|
|
Text(text = player.name)
|
|
}
|
|
}
|
|
}
|
|
Button(
|
|
onClick = close
|
|
) {
|
|
Text(text = "Close")
|
|
}
|
|
}
|
|
}
|
|
}
|