pref: 加载初始状态改为 false

This commit is contained in:
HuanCheng65 2023-01-06 11:31:53 +08:00
parent 657ef76505
commit cab0283f7c
No known key found for this signature in database
GPG Key ID: E9031EF91A805148
8 changed files with 52 additions and 30 deletions

View File

@ -399,7 +399,10 @@ fun PageEditProfile(
viewModel: EditProfileViewModel,
onBackPressed: () -> Unit
) {
val isLoading by viewModel.uiState.collectPartialAsState(EditProfileState::isLoading, initial = true)
val isLoading by viewModel.uiState.collectPartialAsState(
EditProfileState::isLoading,
initial = false
)
if (!isLoading) {
val uiState by viewModel.uiState.collectAsState()
var sex by remember { mutableStateOf(uiState.sex) }

View File

@ -164,7 +164,7 @@ fun HotTopicListPage(
) {
val isRefreshing by viewModel.uiState.collectPartialAsState(
prop1 = HotTopicListUiState::isRefreshing,
initial = true
initial = false
)
val topicList by viewModel.uiState.collectPartialAsState(
prop1 = HotTopicListUiState::topicList,

View File

@ -38,7 +38,7 @@ fun ConcernPage(
val context = LocalContext.current
val isRefreshing by viewModel.uiState.collectPartialAsState(
prop1 = ConcernUiState::isRefreshing,
initial = true
initial = false
)
val isLoadingMore by viewModel.uiState.collectPartialAsState(
prop1 = ConcernUiState::isLoadingMore,

View File

@ -78,7 +78,7 @@ fun HotPage(
val navigator = LocalNavigator.current
val isLoading by viewModel.uiState.collectPartialAsState(
prop1 = HotUiState::isRefreshing,
initial = true
initial = false
)
val topicList by viewModel.uiState.collectPartialAsState(
prop1 = HotUiState::topicList,

View File

@ -70,7 +70,7 @@ fun PersonalizedPage(
val context = LocalContext.current
val isRefreshing by viewModel.uiState.collectPartialAsState(
prop1 = PersonalizedUiState::isRefreshing,
initial = true
initial = false
)
val isLoadingMore by viewModel.uiState.collectPartialAsState(
prop1 = PersonalizedUiState::isLoadingMore,

View File

@ -214,6 +214,7 @@ private fun ForumItem(
showAvatar: Boolean,
isTopForum: Boolean = false
) {
val navigator = LocalNavigator.current
val context = LocalContext.current
val menuState = rememberMenuState()
var willUnfollow by remember {
@ -276,18 +277,7 @@ private fun ForumItem(
}
},
onClick = {
PreloadUtil.startActivityWithPreload(
context,
Intent(
context,
ForumActivity::class.java
).putExtra(ForumActivity.EXTRA_FORUM_NAME, item.forumName),
ForumLoader(
item.forumName,
1,
getSortType(context, item.forumName)
)
)
navigator.navigate(ForumPageDestination(item.forumName))
}
) {
Row(
@ -364,7 +354,7 @@ fun HomePage(
val context = LocalContext.current
val isLoading by viewModel.uiState.collectPartialAsState(
prop1 = HomeUiState::isLoading,
initial = true
initial = false
)
val forums by viewModel.uiState.collectPartialAsState(
prop1 = HomeUiState::forums,

View File

@ -2,21 +2,31 @@ package com.huanchengfly.tieba.post.ui.page.main.notifications.list
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.Text
import androidx.compose.material.pullrefresh.PullRefreshIndicator
import androidx.compose.material.pullrefresh.pullRefresh
import androidx.compose.material.pullrefresh.rememberPullRefreshState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.google.accompanist.swiperefresh.SwipeRefresh
import com.google.accompanist.swiperefresh.rememberSwipeRefreshState
import com.huanchengfly.tieba.post.R
import com.huanchengfly.tieba.post.activities.FloorActivity
import com.huanchengfly.tieba.post.activities.ThreadActivity
@ -24,10 +34,16 @@ import com.huanchengfly.tieba.post.activities.UserActivity
import com.huanchengfly.tieba.post.arch.collectPartialAsState
import com.huanchengfly.tieba.post.arch.pageViewModel
import com.huanchengfly.tieba.post.ui.common.theme.compose.ExtendedTheme
import com.huanchengfly.tieba.post.ui.widgets.compose.*
import com.huanchengfly.tieba.post.ui.widgets.compose.Avatar
import com.huanchengfly.tieba.post.ui.widgets.compose.EmoticonText
import com.huanchengfly.tieba.post.ui.widgets.compose.LazyLoad
import com.huanchengfly.tieba.post.ui.widgets.compose.LoadMoreLayout
import com.huanchengfly.tieba.post.ui.widgets.compose.Sizes
import com.huanchengfly.tieba.post.ui.widgets.compose.UserHeader
import com.huanchengfly.tieba.post.utils.DateTimeUtils
import com.huanchengfly.tieba.post.utils.StringUtil
@OptIn(ExperimentalMaterialApi::class)
@Composable
fun NotificationsListPage(
type: NotificationsType,
@ -43,7 +59,7 @@ fun NotificationsListPage(
val context = LocalContext.current
val isRefreshing by viewModel.uiState.collectPartialAsState(
prop1 = NotificationsListUiState::isRefreshing,
initial = true
initial = false
)
val isLoadingMore by viewModel.uiState.collectPartialAsState(
prop1 = NotificationsListUiState::isLoadingMore,
@ -61,10 +77,11 @@ fun NotificationsListPage(
prop1 = NotificationsListUiState::currentPage,
initial = 1
)
val swipeRefreshState = rememberSwipeRefreshState(isRefreshing = isRefreshing)
SwipeRefresh(
state = swipeRefreshState,
onRefresh = { viewModel.send(NotificationsListUiIntent.Refresh) },
val pullRefreshState = rememberPullRefreshState(
refreshing = isRefreshing,
onRefresh = { viewModel.send(NotificationsListUiIntent.Refresh) })
Box(
modifier = Modifier.pullRefresh(pullRefreshState)
) {
LoadMoreLayout(
isLoading = isLoadingMore,
@ -125,11 +142,16 @@ fun NotificationsListPage(
Spacer(modifier = Modifier.height(16.dp))
EmoticonText(
text = quoteText,
modifier = Modifier.fillMaxWidth()
modifier = Modifier
.fillMaxWidth()
.clip(RoundedCornerShape(6.dp))
.clickable {
if ("1" == it.isFloor && it.quotePid != null) {
FloorActivity.launch(context, it.threadId!!, postId = it.quotePid)
FloorActivity.launch(
context,
it.threadId!!,
postId = it.quotePid
)
} else {
ThreadActivity.launch(context, it.threadId!!)
}
@ -144,5 +166,11 @@ fun NotificationsListPage(
}
}
}
PullRefreshIndicator(
refreshing = isRefreshing,
state = pullRefreshState,
modifier = Modifier.align(Alignment.TopCenter)
)
}
}

View File

@ -24,6 +24,7 @@ import androidx.compose.material.icons.outlined.AccountCircle
import androidx.compose.material.icons.outlined.Block
import androidx.compose.material.icons.outlined.CheckCircle
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@ -104,7 +105,7 @@ fun BlockSettingsPage(
)
val isLoading by viewModel.uiState.collectPartialAsState(
prop1 = BlockSettingsUiState::isLoading,
initial = true
initial = false
)
MyScaffold(
backgroundColor = Color.Transparent,