pref: 加载初始状态改为 false
This commit is contained in:
parent
657ef76505
commit
cab0283f7c
|
|
@ -399,7 +399,10 @@ fun PageEditProfile(
|
||||||
viewModel: EditProfileViewModel,
|
viewModel: EditProfileViewModel,
|
||||||
onBackPressed: () -> Unit
|
onBackPressed: () -> Unit
|
||||||
) {
|
) {
|
||||||
val isLoading by viewModel.uiState.collectPartialAsState(EditProfileState::isLoading, initial = true)
|
val isLoading by viewModel.uiState.collectPartialAsState(
|
||||||
|
EditProfileState::isLoading,
|
||||||
|
initial = false
|
||||||
|
)
|
||||||
if (!isLoading) {
|
if (!isLoading) {
|
||||||
val uiState by viewModel.uiState.collectAsState()
|
val uiState by viewModel.uiState.collectAsState()
|
||||||
var sex by remember { mutableStateOf(uiState.sex) }
|
var sex by remember { mutableStateOf(uiState.sex) }
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ fun HotTopicListPage(
|
||||||
) {
|
) {
|
||||||
val isRefreshing by viewModel.uiState.collectPartialAsState(
|
val isRefreshing by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = HotTopicListUiState::isRefreshing,
|
prop1 = HotTopicListUiState::isRefreshing,
|
||||||
initial = true
|
initial = false
|
||||||
)
|
)
|
||||||
val topicList by viewModel.uiState.collectPartialAsState(
|
val topicList by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = HotTopicListUiState::topicList,
|
prop1 = HotTopicListUiState::topicList,
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ fun ConcernPage(
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val isRefreshing by viewModel.uiState.collectPartialAsState(
|
val isRefreshing by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = ConcernUiState::isRefreshing,
|
prop1 = ConcernUiState::isRefreshing,
|
||||||
initial = true
|
initial = false
|
||||||
)
|
)
|
||||||
val isLoadingMore by viewModel.uiState.collectPartialAsState(
|
val isLoadingMore by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = ConcernUiState::isLoadingMore,
|
prop1 = ConcernUiState::isLoadingMore,
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ fun HotPage(
|
||||||
val navigator = LocalNavigator.current
|
val navigator = LocalNavigator.current
|
||||||
val isLoading by viewModel.uiState.collectPartialAsState(
|
val isLoading by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = HotUiState::isRefreshing,
|
prop1 = HotUiState::isRefreshing,
|
||||||
initial = true
|
initial = false
|
||||||
)
|
)
|
||||||
val topicList by viewModel.uiState.collectPartialAsState(
|
val topicList by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = HotUiState::topicList,
|
prop1 = HotUiState::topicList,
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ fun PersonalizedPage(
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val isRefreshing by viewModel.uiState.collectPartialAsState(
|
val isRefreshing by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = PersonalizedUiState::isRefreshing,
|
prop1 = PersonalizedUiState::isRefreshing,
|
||||||
initial = true
|
initial = false
|
||||||
)
|
)
|
||||||
val isLoadingMore by viewModel.uiState.collectPartialAsState(
|
val isLoadingMore by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = PersonalizedUiState::isLoadingMore,
|
prop1 = PersonalizedUiState::isLoadingMore,
|
||||||
|
|
|
||||||
|
|
@ -214,6 +214,7 @@ private fun ForumItem(
|
||||||
showAvatar: Boolean,
|
showAvatar: Boolean,
|
||||||
isTopForum: Boolean = false
|
isTopForum: Boolean = false
|
||||||
) {
|
) {
|
||||||
|
val navigator = LocalNavigator.current
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val menuState = rememberMenuState()
|
val menuState = rememberMenuState()
|
||||||
var willUnfollow by remember {
|
var willUnfollow by remember {
|
||||||
|
|
@ -276,18 +277,7 @@ private fun ForumItem(
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onClick = {
|
onClick = {
|
||||||
PreloadUtil.startActivityWithPreload(
|
navigator.navigate(ForumPageDestination(item.forumName))
|
||||||
context,
|
|
||||||
Intent(
|
|
||||||
context,
|
|
||||||
ForumActivity::class.java
|
|
||||||
).putExtra(ForumActivity.EXTRA_FORUM_NAME, item.forumName),
|
|
||||||
ForumLoader(
|
|
||||||
item.forumName,
|
|
||||||
1,
|
|
||||||
getSortType(context, item.forumName)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
|
|
@ -364,7 +354,7 @@ fun HomePage(
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val isLoading by viewModel.uiState.collectPartialAsState(
|
val isLoading by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = HomeUiState::isLoading,
|
prop1 = HomeUiState::isLoading,
|
||||||
initial = true
|
initial = false
|
||||||
)
|
)
|
||||||
val forums by viewModel.uiState.collectPartialAsState(
|
val forums by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = HomeUiState::forums,
|
prop1 = HomeUiState::forums,
|
||||||
|
|
|
||||||
|
|
@ -2,21 +2,31 @@ package com.huanchengfly.tieba.post.ui.page.main.notifications.list
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
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.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
|
import androidx.compose.material.ExperimentalMaterialApi
|
||||||
import androidx.compose.material.Text
|
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.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
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.R
|
||||||
import com.huanchengfly.tieba.post.activities.FloorActivity
|
import com.huanchengfly.tieba.post.activities.FloorActivity
|
||||||
import com.huanchengfly.tieba.post.activities.ThreadActivity
|
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.collectPartialAsState
|
||||||
import com.huanchengfly.tieba.post.arch.pageViewModel
|
import com.huanchengfly.tieba.post.arch.pageViewModel
|
||||||
import com.huanchengfly.tieba.post.ui.common.theme.compose.ExtendedTheme
|
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.DateTimeUtils
|
||||||
import com.huanchengfly.tieba.post.utils.StringUtil
|
import com.huanchengfly.tieba.post.utils.StringUtil
|
||||||
|
|
||||||
|
@OptIn(ExperimentalMaterialApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun NotificationsListPage(
|
fun NotificationsListPage(
|
||||||
type: NotificationsType,
|
type: NotificationsType,
|
||||||
|
|
@ -43,7 +59,7 @@ fun NotificationsListPage(
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val isRefreshing by viewModel.uiState.collectPartialAsState(
|
val isRefreshing by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = NotificationsListUiState::isRefreshing,
|
prop1 = NotificationsListUiState::isRefreshing,
|
||||||
initial = true
|
initial = false
|
||||||
)
|
)
|
||||||
val isLoadingMore by viewModel.uiState.collectPartialAsState(
|
val isLoadingMore by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = NotificationsListUiState::isLoadingMore,
|
prop1 = NotificationsListUiState::isLoadingMore,
|
||||||
|
|
@ -61,10 +77,11 @@ fun NotificationsListPage(
|
||||||
prop1 = NotificationsListUiState::currentPage,
|
prop1 = NotificationsListUiState::currentPage,
|
||||||
initial = 1
|
initial = 1
|
||||||
)
|
)
|
||||||
val swipeRefreshState = rememberSwipeRefreshState(isRefreshing = isRefreshing)
|
val pullRefreshState = rememberPullRefreshState(
|
||||||
SwipeRefresh(
|
refreshing = isRefreshing,
|
||||||
state = swipeRefreshState,
|
onRefresh = { viewModel.send(NotificationsListUiIntent.Refresh) })
|
||||||
onRefresh = { viewModel.send(NotificationsListUiIntent.Refresh) },
|
Box(
|
||||||
|
modifier = Modifier.pullRefresh(pullRefreshState)
|
||||||
) {
|
) {
|
||||||
LoadMoreLayout(
|
LoadMoreLayout(
|
||||||
isLoading = isLoadingMore,
|
isLoading = isLoadingMore,
|
||||||
|
|
@ -125,11 +142,16 @@ fun NotificationsListPage(
|
||||||
Spacer(modifier = Modifier.height(16.dp))
|
Spacer(modifier = Modifier.height(16.dp))
|
||||||
EmoticonText(
|
EmoticonText(
|
||||||
text = quoteText,
|
text = quoteText,
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
.clip(RoundedCornerShape(6.dp))
|
.clip(RoundedCornerShape(6.dp))
|
||||||
.clickable {
|
.clickable {
|
||||||
if ("1" == it.isFloor && it.quotePid != null) {
|
if ("1" == it.isFloor && it.quotePid != null) {
|
||||||
FloorActivity.launch(context, it.threadId!!, postId = it.quotePid)
|
FloorActivity.launch(
|
||||||
|
context,
|
||||||
|
it.threadId!!,
|
||||||
|
postId = it.quotePid
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
ThreadActivity.launch(context, it.threadId!!)
|
ThreadActivity.launch(context, it.threadId!!)
|
||||||
}
|
}
|
||||||
|
|
@ -144,5 +166,11 @@ fun NotificationsListPage(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PullRefreshIndicator(
|
||||||
|
refreshing = isRefreshing,
|
||||||
|
state = pullRefreshState,
|
||||||
|
modifier = Modifier.align(Alignment.TopCenter)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -24,6 +24,7 @@ import androidx.compose.material.icons.outlined.AccountCircle
|
||||||
import androidx.compose.material.icons.outlined.Block
|
import androidx.compose.material.icons.outlined.Block
|
||||||
import androidx.compose.material.icons.outlined.CheckCircle
|
import androidx.compose.material.icons.outlined.CheckCircle
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
|
|
@ -104,7 +105,7 @@ fun BlockSettingsPage(
|
||||||
)
|
)
|
||||||
val isLoading by viewModel.uiState.collectPartialAsState(
|
val isLoading by viewModel.uiState.collectPartialAsState(
|
||||||
prop1 = BlockSettingsUiState::isLoading,
|
prop1 = BlockSettingsUiState::isLoading,
|
||||||
initial = true
|
initial = false
|
||||||
)
|
)
|
||||||
MyScaffold(
|
MyScaffold(
|
||||||
backgroundColor = Color.Transparent,
|
backgroundColor = Color.Transparent,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue