Skip to content

Commit f0ef6ee

Browse files
committed
Rubric score input fix
1 parent f7325a3 commit f0ef6ee

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

libs/pandautils/src/main/java/com/instructure/pandautils/features/speedgrader/grade/rubric/SpeedGraderRubricScreen.kt

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,9 @@ fun SpeedGraderRubricContent(uiState: SpeedGraderRubricUiState) {
111111
.padding(vertical = 12.dp, horizontal = 16.dp)
112112
) {
113113
Text(
114-
modifier = Modifier.padding(bottom = 14.dp).testTag("speedGraderRubricsLabel"),
114+
modifier = Modifier
115+
.padding(bottom = 14.dp)
116+
.testTag("speedGraderRubricsLabel"),
115117
text = stringResource(R.string.rubricsTitle),
116118
fontSize = 16.sp,
117119
fontWeight = FontWeight.SemiBold,
@@ -316,8 +318,19 @@ private fun RubricCriterion(
316318
if (expanded) {
317319
CanvasDivider()
318320
}
319-
320-
var enteredPoint by remember(assessment) { mutableStateOf(assessment?.points) }
321+
var textFieldScore by remember(assessment) {
322+
mutableStateOf(assessment?.points?.stringValueWithoutTrailingZeros.orEmpty())
323+
}
324+
var enteredPoint by remember(assessment) {
325+
mutableStateOf(assessment?.points)
326+
}
327+
LaunchedEffect(textFieldScore) {
328+
val scoreAsDouble = textFieldScore.toDoubleOrNull()
329+
if (scoreAsDouble != enteredPoint) {
330+
enteredPoint = scoreAsDouble
331+
onPointChanged(enteredPoint.orDefault(), rubricCriterion.id)
332+
}
333+
}
321334
Row(
322335
modifier = Modifier
323336
.fillMaxWidth()
@@ -332,11 +345,8 @@ private fun RubricCriterion(
332345
Spacer(modifier = Modifier.weight(1f))
333346
BasicTextFieldWithHintDecoration(
334347
modifier = Modifier.padding(end = 8.dp),
335-
value = enteredPoint?.stringValueWithoutTrailingZeros.orEmpty(),
336-
onValueChange = { point ->
337-
enteredPoint = point.toDoubleOrNull()
338-
onPointChanged(enteredPoint.orDefault(), rubricCriterion.id)
339-
},
348+
value = textFieldScore,
349+
onValueChange = { textFieldScore = it },
340350
hint = stringResource(R.string.rubricScoreHint),
341351
textColor = LocalCourseColor.current,
342352
hintColor = colorResource(R.color.textPlaceholder),

0 commit comments

Comments
 (0)