Загрузка данных
var showBottomSheet by remember { mutableStateOf(false) }
var showNewChatDialog by remember { mutableStateOf(false) }
var newChatName by remember { mutableStateOf("") }
var showMessageMenuFor by remember { mutableStateOf<ChatMessage?>(null) }
var editMessageData by remember { mutableStateOf<ChatMessage?>(null) }
var editedText by remember { mutableStateOf("") }
val userBubbleColor = if (isDarkTheme) Color.DarkGray else Color.Gray
val userTextColor = Color.White
val monikaTextColor = MaterialTheme.colorScheme.onBackground
fun autoSaveCurrentChat() {
if (currentChatId != null) {
val index = savedChats.indexOfFirst { it.id == currentChatId }
if (index != -1) {
savedChats[index] = savedChats[index].copy(messages = messages.toList())
ChatManager.saveChats(context, savedChats)
}
}
}
LaunchedEffect(messages.size) {
if (messages.isNotEmpty()) listState.animateScrollToItem(messages.size - 1)
}
CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl) {
ModalNavigationDrawer(
drawerState = rightDrawerState,
drawerContent = {
CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Ltr) {
ModalDrawerSheet(modifier = Modifier.width(300.dp)) {
Column(Modifier.padding(16.dp)) {
Box(modifier = Modifier.fillMaxWidth().height(100.dp), contentAlignment = Alignment.Center) {
Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth()) {
Icon(Icons.Default.AccountCircle, "Профиль", modifier = Modifier.size(64.dp), tint = Color.Gray)
Spacer(modifier = Modifier.width(12.dp))
Column {
Text("Профиль", fontWeight = FontWeight.Bold)
Text("Войти/Зарегистрироваться", fontSize = 10.sp, color = Color.Gray)
}
}
Text("Скоро....", color = Color.Red, fontSize = 24.sp, fontWeight = FontWeight.Bold, modifier = Modifier.rotate(-45f))
}
}
HorizontalDivider()
val themeDisplayText = when(themeModeStr) { "LIGHT" -> "светлая"; "DARK" -> "темная"; else -> "системная" }
Text(
text = "Смена темы: $themeDisplayText",
modifier = Modifier.fillMaxWidth().clickable {
themeModeStr = when (themeModeStr) { "SYSTEM" -> "LIGHT"; "LIGHT" -> "DARK"; "DARK" -> "SYSTEM"; else -> "SYSTEM" }
themePrefs.edit().putString("theme", themeModeStr).apply()
}.padding(16.dp)
)
Spacer(modifier = Modifier.weight(1f))
Text("Team Lazy Cat™ - Monika AI.\nVersion: Beta 1.5 Patch 5 Panda 2", fontSize = 10.sp, color = Color.Gray, modifier = Modifier.padding(16.dp))
}
}
}
) {