refactor: replace LazyVerticalGrid with Column/Row layout in AllergenSelectionGrid for improved performance and layout control
This commit is contained in:
parent
1656b189f4
commit
a9eb582c93
@ -7,12 +7,10 @@ import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.lazy.grid.GridCells
|
||||
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
||||
import androidx.compose.foundation.lazy.grid.items
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
@ -71,16 +69,22 @@ fun AllergenSelectionGrid(
|
||||
modifier: Modifier = Modifier
|
||||
) {
|
||||
val dimens = LocalDimens.current
|
||||
val columns = 3
|
||||
val rows = AllergenType.entries.toList().chunked(columns)
|
||||
|
||||
LazyVerticalGrid(
|
||||
columns = GridCells.Fixed(3),
|
||||
Column(
|
||||
modifier = modifier.fillMaxWidth(),
|
||||
horizontalArrangement = Arrangement.spacedBy(dimens.spacingSm),
|
||||
verticalArrangement = Arrangement.spacedBy(dimens.spacingSm)
|
||||
) {
|
||||
items(AllergenType.entries.toList()) { allergen ->
|
||||
rows.forEach { row ->
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
horizontalArrangement = Arrangement.spacedBy(dimens.spacingSm)
|
||||
) {
|
||||
row.forEach { allergen ->
|
||||
val currentLevel = selectedAllergens[allergen] ?: AllergenLevel.NONE
|
||||
AllergenSelectionChip(
|
||||
modifier = Modifier.weight(1f),
|
||||
allergen = allergen,
|
||||
level = currentLevel,
|
||||
onClick = {
|
||||
@ -93,6 +97,11 @@ fun AllergenSelectionGrid(
|
||||
}
|
||||
)
|
||||
}
|
||||
repeat(columns - row.size) {
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user