refactor(chat): improve ChatScaffold button click and theme safety

This commit is contained in:
844143714@qq,com 2026-05-19 21:30:33 +08:00
parent 21750acd2c
commit 338ecdfd43
1 changed files with 8 additions and 6 deletions

View File

@ -8,6 +8,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.Add
import androidx.compose.material3.* import androidx.compose.material3.*
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@ -17,6 +18,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel
import com.stand.standapp.ui.chat.ChatViewModel import com.stand.standapp.ui.chat.ChatViewModel
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun ChatScaffold( fun ChatScaffold(
viewModel: ChatViewModel = viewModel(), viewModel: ChatViewModel = viewModel(),
@ -54,14 +56,14 @@ fun ChatScaffold(
items(sessions) { session -> items(sessions) { session ->
val isSelected = session.id == currentSessionId val isSelected = session.id == currentSessionId
Surface( Surface(
onClick = {
viewModel.switchSession(session.id)
scope.launch { drawerState.close() }
},
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(vertical = 4.dp) .padding(vertical = 4.dp),
.clickable { color = if (isSelected) MaterialTheme.colorScheme.surfaceVariant else Color.Transparent,
viewModel.switchSession(session.id)
scope.launch { drawerState.close() }
},
color = if (isSelected) Color(0xFFE5E7EB) else Color.Transparent,
shape = RoundedCornerShape(8.dp) shape = RoundedCornerShape(8.dp)
) { ) {
Text( Text(