mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 12:57:04 +05:30
fix: improve TagList UI
This commit is contained in:
parent
d2f0630fe2
commit
d31da62cfe
1 changed files with 21 additions and 8 deletions
|
@ -6,7 +6,9 @@
|
|||
*/
|
||||
package dev.msfjarvis.claw.common.tags
|
||||
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
|
@ -19,9 +21,13 @@ import androidx.compose.material3.Icon
|
|||
import androidx.compose.material3.ListItem
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import com.deliveryhero.whetstone.compose.injectedViewModel
|
||||
import dev.msfjarvis.claw.common.NetworkState
|
||||
import dev.msfjarvis.claw.common.NetworkState.Error
|
||||
import dev.msfjarvis.claw.common.NetworkState.Loading
|
||||
import dev.msfjarvis.claw.common.NetworkState.Success
|
||||
import dev.msfjarvis.claw.common.ui.ProgressBar
|
||||
import dev.msfjarvis.claw.model.Tag
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
|
@ -36,15 +42,22 @@ fun TagList(
|
|||
|
||||
LazyColumn(modifier = modifier.fillMaxWidth().padding(contentPadding)) {
|
||||
when (allTagsState) {
|
||||
is NetworkState.Loading -> {
|
||||
item { Text("Loading tags...") }
|
||||
is Loading -> {
|
||||
item {
|
||||
Box(modifier = Modifier.fillMaxSize()) {
|
||||
ProgressBar(modifier = Modifier.align(Alignment.Center))
|
||||
}
|
||||
}
|
||||
}
|
||||
is NetworkState.Error -> {
|
||||
item { Text("Failed to load tags") }
|
||||
is Error -> {
|
||||
item {
|
||||
Box(modifier = Modifier.fillMaxSize()) {
|
||||
Text("Failed to load tags", modifier = Modifier.align(Alignment.Center))
|
||||
}
|
||||
}
|
||||
}
|
||||
is NetworkState.Success<*> -> {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val allTags = (allTagsState as NetworkState.Success<ImmutableList<Tag>>).data
|
||||
is Success<*> -> {
|
||||
@Suppress("UNCHECKED_CAST") val allTags = (allTagsState as Success<ImmutableList<Tag>>).data
|
||||
items(allTags) { tag ->
|
||||
val isSelected = filteredTags.contains(tag.tag)
|
||||
ListItem(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue