package com.monika.orangesky
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.monika.orangesky.data.AppDatabase
import com.monika.orangesky.data.Post
import kotlinx.coroutines.launch
@Composable
fun HomeScreen(database: AppDatabase) {
var postContent by remember { mutableStateOf("") }
val scope = rememberCoroutineScope()
val posts by database.postDao().getAllPosts().collectAsState(initial = emptyList())
Column(modifier = Modifier.fillMaxSize().padding(16.dp)) {
OutlinedTextField(
value = postContent,
onValueChange = { postContent = it },
label = { Text("Что нового?") },
modifier = Modifier.fillMaxWidth()
)
Button(
onClick = {
if (postContent.isNotBlank()) {
scope.launch {
database.postDao().insertPost(
Post(username = "Оливер", content = postContent)
)
postContent = ""
}
}
},
modifier = Modifier.fillMaxWidth().padding(vertical = 8.dp)
) {
Text("Опубликовать")
}
Spacer(modifier = Modifier.height(8.dp))
LazyColumn(modifier = Modifier.fillMaxSize()) {
items(posts) { post ->
Card(
modifier = Modifier.fillMaxWidth().padding(vertical = 4.dp)
) {
Column(modifier = Modifier.padding(12.dp)) {
Text(text = "@${post.username}", style = MaterialTheme.colorScheme.primary)
Spacer(modifier = Modifier.height(4.dp))
Text(text = post.content)
}
}
}
}
}
}