package cc.unitmesh.devins.ui.app import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ExitToApp import androidx.compose.material.icons.filled.Person import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import cc.unitmesh.devins.ui.session.SessionViewModel /** * ProfileScreen - 个人信息界面 */ @OptIn(ExperimentalMaterial3Api::class) @Composable fun ProfileScreen( viewModel: SessionViewModel, onLogout: () -> Unit ) { val currentUser by viewModel.currentUser.collectAsState() Scaffold( topBar = { TopAppBar( title = { Text("我的") } ) } ) { paddingValues -> Column( modifier = Modifier .fillMaxSize() .padding(paddingValues) .padding(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp) ) { // User info card Card( modifier = Modifier.fillMaxWidth(), colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.primaryContainer ) ) { Row( modifier = Modifier .fillMaxWidth() .padding(24.dp), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(16.dp) ) { Icon( Icons.Default.Person, contentDescription = "用户", modifier = Modifier.size(64.dp), tint = MaterialTheme.colorScheme.onPrimaryContainer ) Column { Text( text = currentUser ?: "未知用户", style = MaterialTheme.typography.headlineSmall, color = MaterialTheme.colorScheme.onPrimaryContainer ) Spacer(modifier = Modifier.height(4.dp)) Text( text = "AutoDev 用户", style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onPrimaryContainer ) } } } // Settings section Text( text = "设置", style = MaterialTheme.typography.titleMedium, modifier = Modifier.padding(top = 8.dp) ) // Logout button Card( modifier = Modifier.fillMaxWidth(), onClick = onLogout ) { Row( modifier = Modifier .fillMaxWidth() .padding(16.dp), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(16.dp) ) { Icon( Icons.Default.ExitToApp, contentDescription = "退出登录", tint = MaterialTheme.colorScheme.error ) Text( text = "退出登录", style = MaterialTheme.typography.bodyLarge, color = MaterialTheme.colorScheme.error ) } } Spacer(modifier = Modifier.weight(1f)) // App info Column( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally ) { Text( text = "AutoDev", style = MaterialTheme.typography.titleMedium, color = MaterialTheme.colorScheme.onSurfaceVariant ) Text( text = "Version 0.1.5", style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant ) } } } }