关注、粉丝列表点击关注按钮增加游客登录判断

This commit is contained in:
2025-09-01 16:03:12 +08:00
parent 118a6cf986
commit 6721d715e7
2 changed files with 30 additions and 10 deletions

View File

@@ -27,9 +27,13 @@ import androidx.compose.ui.unit.sp
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems
import com.aiosman.ravenow.AppState import com.aiosman.ravenow.AppState
import com.aiosman.ravenow.GuestLoginCheckOut
import com.aiosman.ravenow.GuestLoginCheckOutScene
import com.aiosman.ravenow.LocalAppTheme import com.aiosman.ravenow.LocalAppTheme
import com.aiosman.ravenow.LocalNavController
import com.aiosman.ravenow.R import com.aiosman.ravenow.R
import com.aiosman.ravenow.exp.viewModelFactory import com.aiosman.ravenow.exp.viewModelFactory
import com.aiosman.ravenow.ui.NavigationRoute
import com.aiosman.ravenow.ui.comment.NoticeScreenHeader import com.aiosman.ravenow.ui.comment.NoticeScreenHeader
import com.aiosman.ravenow.ui.composables.StatusBarMaskLayout import com.aiosman.ravenow.ui.composables.StatusBarMaskLayout
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@@ -38,6 +42,7 @@ import kotlinx.coroutines.launch
@Composable @Composable
fun FollowerListScreen(userId: Int) { fun FollowerListScreen(userId: Int) {
val appColors = LocalAppTheme.current val appColors = LocalAppTheme.current
val navController = LocalNavController.current
val model: FollowerListViewModel = viewModel(factory = viewModelFactory { val model: FollowerListViewModel = viewModel(factory = viewModelFactory {
FollowerListViewModel(userId) FollowerListViewModel(userId)
}, key = "viewModel_${userId}") }, key = "viewModel_${userId}")
@@ -112,6 +117,10 @@ fun FollowerListScreen(userId: Int) {
userId = user.id, userId = user.id,
isFollowing = user.isFollowing isFollowing = user.isFollowing
) { ) {
// 检查游客模式,如果是游客则跳转登录
if (GuestLoginCheckOut.needLogin(GuestLoginCheckOutScene.FOLLOW_USER)) {
navController.navigate(NavigationRoute.Login.route)
} else {
scope.launch { scope.launch {
if (user.isFollowing) { if (user.isFollowing) {
model.unFollowUser(user.id) model.unFollowUser(user.id)
@@ -123,6 +132,7 @@ fun FollowerListScreen(userId: Int) {
} }
} }
} }
}
PullRefreshIndicator( PullRefreshIndicator(
refreshing = model.isLoading, refreshing = model.isLoading,
state = refreshState, state = refreshState,

View File

@@ -28,9 +28,13 @@ import androidx.compose.ui.unit.sp
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems
import com.aiosman.ravenow.AppState import com.aiosman.ravenow.AppState
import com.aiosman.ravenow.GuestLoginCheckOut
import com.aiosman.ravenow.GuestLoginCheckOutScene
import com.aiosman.ravenow.LocalAppTheme import com.aiosman.ravenow.LocalAppTheme
import com.aiosman.ravenow.LocalNavController
import com.aiosman.ravenow.R import com.aiosman.ravenow.R
import com.aiosman.ravenow.exp.viewModelFactory import com.aiosman.ravenow.exp.viewModelFactory
import com.aiosman.ravenow.ui.NavigationRoute
import com.aiosman.ravenow.ui.comment.NoticeScreenHeader import com.aiosman.ravenow.ui.comment.NoticeScreenHeader
import com.aiosman.ravenow.ui.composables.StatusBarMaskLayout import com.aiosman.ravenow.ui.composables.StatusBarMaskLayout
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@@ -39,6 +43,7 @@ import kotlinx.coroutines.launch
@Composable @Composable
fun FollowingListScreen(userId: Int) { fun FollowingListScreen(userId: Int) {
val appColors = LocalAppTheme.current val appColors = LocalAppTheme.current
val navController = LocalNavController.current
val model : FollowingListViewModel = viewModel(factory = viewModelFactory { val model : FollowingListViewModel = viewModel(factory = viewModelFactory {
FollowingListViewModel(userId) FollowingListViewModel(userId)
}, key = "viewModel_${userId}") }, key = "viewModel_${userId}")
@@ -114,6 +119,10 @@ fun FollowingListScreen(userId: Int) {
userId = user.id, userId = user.id,
isFollowing = user.isFollowing isFollowing = user.isFollowing
) { ) {
// 检查游客模式,如果是游客则跳转登录
if (GuestLoginCheckOut.needLogin(GuestLoginCheckOutScene.FOLLOW_USER)) {
navController.navigate(NavigationRoute.Login.route)
} else {
scope.launch { scope.launch {
if (user.isFollowing) { if (user.isFollowing) {
model.unFollowUser(user.id) model.unFollowUser(user.id)
@@ -125,6 +134,7 @@ fun FollowingListScreen(userId: Int) {
} }
} }
} }
}
PullRefreshIndicator( PullRefreshIndicator(
refreshing = model.isLoading, refreshing = model.isLoading,
state = refreshState, state = refreshState,