You've already forked RekomenciMobile
fixed order on diff screen
This commit is contained in:
+16
-7
@@ -64,7 +64,7 @@ fun ErrorCollectorScope.ResumeHistoryScreen(
|
||||
val colorScheme = MaterialTheme.colorScheme
|
||||
val expandedState = remember { mutableStateMapOf<Int, Boolean>() }
|
||||
val selected = remember { mutableStateMapOf<String, ResumeModel>() }
|
||||
val selectedOrder = remember { mutableListOf<String>() }
|
||||
val selectedIndices = remember { mutableStateMapOf<String, Int>() }
|
||||
|
||||
Box(
|
||||
modifier = Modifier.fillMaxSize()
|
||||
@@ -131,10 +131,10 @@ fun ErrorCollectorScope.ResumeHistoryScreen(
|
||||
onSelectToggle = {
|
||||
if (isSelected) {
|
||||
selected.remove(version.id)
|
||||
selectedOrder.remove(version.id)
|
||||
selectedIndices.remove(version.id)
|
||||
} else if (selected.size < 2) {
|
||||
selected[version.id] = version
|
||||
selectedOrder.add(version.id)
|
||||
selectedIndices[version.id] = index
|
||||
}
|
||||
}
|
||||
)
|
||||
@@ -143,14 +143,17 @@ fun ErrorCollectorScope.ResumeHistoryScreen(
|
||||
}
|
||||
}
|
||||
|
||||
if (selected.size == 2) {
|
||||
if (selected.size > 0) {
|
||||
ExtendedFloatingActionButton(
|
||||
modifier = Modifier
|
||||
.align(Alignment.BottomCenter)
|
||||
.padding(bottom = Paddings.large),
|
||||
onClick = {
|
||||
val first = selected[selectedOrder.getOrNull(0)]
|
||||
val second = selected[selectedOrder.getOrNull(1)]
|
||||
if (selected.size == 2) {
|
||||
val ordered = selected.toList()
|
||||
.sortedByDescending { (id, _) -> selectedIndices[id] ?: Int.MIN_VALUE }
|
||||
val first = ordered.getOrNull(0)?.second
|
||||
val second = ordered.getOrNull(1)?.second
|
||||
val gson = Gson()
|
||||
navController.navigate(
|
||||
AppDestination.ResumeDiff.route,
|
||||
@@ -159,6 +162,7 @@ fun ErrorCollectorScope.ResumeHistoryScreen(
|
||||
putString(AppDestination.ResumeDiff.ARG_SECOND, gson.toJson(second))
|
||||
}
|
||||
)
|
||||
}
|
||||
},
|
||||
icon = {
|
||||
Icon(
|
||||
@@ -166,7 +170,12 @@ fun ErrorCollectorScope.ResumeHistoryScreen(
|
||||
contentDescription = "compare"
|
||||
)
|
||||
},
|
||||
text = { Text(text = "Сравнить") },
|
||||
text = {
|
||||
Text(
|
||||
text = if (selected.size == 2) "Сравнить" else "Выберите ещё 1",
|
||||
style = typography.titleMedium
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user