From 338ecdfd4386d26816119c23dfef71e2cf3335ce Mon Sep 17 00:00:00 2001 From: "844143714@qq,com" <844143714@qq,com> Date: Tue, 19 May 2026 21:30:33 +0800 Subject: [PATCH] refactor(chat): improve ChatScaffold button click and theme safety --- .../standapp/ui/chat/components/ChatScaffold.kt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/stand/standapp/ui/chat/components/ChatScaffold.kt b/app/src/main/java/com/stand/standapp/ui/chat/components/ChatScaffold.kt index 054b38d..60b86de 100644 --- a/app/src/main/java/com/stand/standapp/ui/chat/components/ChatScaffold.kt +++ b/app/src/main/java/com/stand/standapp/ui/chat/components/ChatScaffold.kt @@ -8,6 +8,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Add import androidx.compose.material3.* +import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -17,6 +18,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel import com.stand.standapp.ui.chat.ChatViewModel import kotlinx.coroutines.launch +@OptIn(ExperimentalMaterial3Api::class) @Composable fun ChatScaffold( viewModel: ChatViewModel = viewModel(), @@ -54,14 +56,14 @@ fun ChatScaffold( items(sessions) { session -> val isSelected = session.id == currentSessionId Surface( + onClick = { + viewModel.switchSession(session.id) + scope.launch { drawerState.close() } + }, modifier = Modifier .fillMaxWidth() - .padding(vertical = 4.dp) - .clickable { - viewModel.switchSession(session.id) - scope.launch { drawerState.close() } - }, - color = if (isSelected) Color(0xFFE5E7EB) else Color.Transparent, + .padding(vertical = 4.dp), + color = if (isSelected) MaterialTheme.colorScheme.surfaceVariant else Color.Transparent, shape = RoundedCornerShape(8.dp) ) { Text(