package components.questiondialog import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.border import androidx.compose.foundation.layout.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em import components.QuestionResolution import components.questiondialog.assets.HintText import components.questiondialog.buttons.DismissButton import components.questiondialog.player.DeferredDoubleQuestionDialogPlayer import components.questiondialog.player.QuestionDialogPlayer import data.* @Suppress("FunctionName") @Composable fun QuestionDialogButtons( topic: String, topicColor: ColorData?, questionData: QuestionData, players: List, onPointsChange: (Player, Long) -> Unit, onResolve: (QuestionResolution) -> Unit, secondRoundDouble: Boolean ) { val fontSize = 5.em var questionAnswered by remember { mutableStateOf(QuestionResolution(false, null)) } Box( modifier = Modifier.fillMaxHeight().fillMaxWidth() .border( border = BorderStroke(50.dp, topicColor.toColor()) ) .padding(150.dp), contentAlignment = Alignment.Center, ) { Column( modifier = Modifier.fillMaxWidth().fillMaxHeight(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceAround ) { HintText( topicName = topic, points = questionData.actualUsagePoints(secondRoundDouble), deferredDouble = questionData.isDeferredDouble, hint = questionData.hint ) for (player in players) { if (questionData.isDeferredDouble) { DeferredDoubleQuestionDialogPlayer( player = player, fontSize = fontSize, allowedToAnswer = !(questionAnswered.answered) || player == questionAnswered.player, onPointsChange = onPointsChange, questionPoints = questionData.actualUsagePoints(secondRoundDouble).toLong(), onQuestionDone = { onResolve(questionAnswered) }, onQuestionAnswered = { questionAnswered = QuestionResolution(true, it) } ) } else { QuestionDialogPlayer( player = player, fontSize = fontSize, onPointsChange = onPointsChange, questionPoints = questionData.actualUsagePoints(secondRoundDouble).toLong(), onQuestionAnswered = { val answer = QuestionResolution(true, it) questionAnswered = answer onResolve(answer) } ) } } Spacer(Modifier.height(20.dp)) DismissButton( fontSize = fontSize, onResolve = { onResolve( QuestionResolution(true, null) ) } ) } } }