feat: use m3e loading indicator in member list

This commit is contained in:
infi 2026-06-17 20:49:22 +02:00
parent 0c2cd61aa1
commit 693e9d4ba4
1 changed files with 15 additions and 7 deletions

View File

@ -11,8 +11,9 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.LoadingIndicator
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.ModalBottomSheet
import androidx.compose.material3.Text import androidx.compose.material3.Text
@ -197,7 +198,10 @@ class MemberListSheetViewModel(
} }
} }
@OptIn(ExperimentalFoundationApi::class, ExperimentalMaterial3Api::class) @OptIn(
ExperimentalFoundationApi::class, ExperimentalMaterial3Api::class,
ExperimentalMaterial3ExpressiveApi::class
)
@Composable @Composable
fun MemberListSheet( fun MemberListSheet(
channelId: String, channelId: String,
@ -286,7 +290,7 @@ fun MemberListSheet(
.fillMaxWidth() .fillMaxWidth()
.height(200.dp) .height(200.dp)
) { ) {
CircularProgressIndicator(modifier = Modifier.align(Alignment.Center)) LoadingIndicator(modifier = Modifier.align(Alignment.Center))
} }
return@Column return@Column
@ -313,8 +317,10 @@ fun MemberListSheet(
} }
is MemberListSheetItem.MemberItem -> { is MemberListSheetItem.MemberItem -> {
val isFirst = index == 0 || viewModel.fullItemList[index - 1] is MemberListSheetItem.CategoryItem val isFirst =
val isLast = index == viewModel.fullItemList.size - 1 || viewModel.fullItemList[index + 1] is MemberListSheetItem.CategoryItem index == 0 || viewModel.fullItemList[index - 1] is MemberListSheetItem.CategoryItem
val isLast =
index == viewModel.fullItemList.size - 1 || viewModel.fullItemList[index + 1] is MemberListSheetItem.CategoryItem
item(key = item.member.id!!.user) { item(key = item.member.id!!.user) {
MemberListItem( MemberListItem(
user = StoatAPI.userCache[item.member.id!!.user], user = StoatAPI.userCache[item.member.id!!.user],
@ -340,8 +346,10 @@ fun MemberListSheet(
} }
is MemberListSheetItem.UserItem -> { is MemberListSheetItem.UserItem -> {
val isFirst = index == 0 || viewModel.fullItemList[index - 1] is MemberListSheetItem.CategoryItem val isFirst =
val isLast = index == viewModel.fullItemList.size - 1 || viewModel.fullItemList[index + 1] is MemberListSheetItem.CategoryItem index == 0 || viewModel.fullItemList[index - 1] is MemberListSheetItem.CategoryItem
val isLast =
index == viewModel.fullItemList.size - 1 || viewModel.fullItemList[index + 1] is MemberListSheetItem.CategoryItem
item(key = item.user.id!!) { item(key = item.user.id!!) {
MemberListItem( MemberListItem(
user = item.user, user = item.user,