feat(blogs): Extended items
This commit is contained in:
parent
83759f5a37
commit
9e1e64f3fc
@ -99,6 +99,7 @@ class User(
|
||||
|
||||
class Post(
|
||||
val id: Int,
|
||||
val blogId: Int,
|
||||
val authorId: Int,
|
||||
val enableComments: Boolean,
|
||||
val numComments: Int,
|
||||
@ -287,6 +288,7 @@ suspend fun getBlogposts(): ArrayList<Post> {
|
||||
out.add(
|
||||
Post(
|
||||
id = el.getString("ID").toInt(),
|
||||
blogId = el.getString("BLOG_ID").toInt(),
|
||||
authorId = el.getString("AUTHOR_ID").toInt(),
|
||||
enableComments = el.getString("ENABLE_COMMENTS") == "Y",
|
||||
numComments = el.getString("NUM_COMMENTS").toInt(),
|
||||
@ -340,3 +342,7 @@ suspend fun getUser(id: Int): User {
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getComments(id: Int) {
|
||||
|
||||
}
|
@ -3,6 +3,7 @@ package ru.sweetbread.unn.ui.composes
|
||||
import android.text.util.Linkify
|
||||
import android.util.Log
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
@ -23,6 +24,7 @@ import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.NonRestartableComposable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableIntStateOf
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
@ -83,6 +85,7 @@ val defUser = User(
|
||||
@Composable
|
||||
fun Blogposts(viewModel: PostViewModel = viewModel()) {
|
||||
val posts by viewModel.posts.collectAsState()
|
||||
var extended by remember { mutableIntStateOf(0) }
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
viewModel.loadPosts()
|
||||
@ -96,8 +99,12 @@ fun Blogposts(viewModel: PostViewModel = viewModel()) {
|
||||
Modifier
|
||||
.padding(8.dp)
|
||||
.clip(RoundedCornerShape(16.dp))
|
||||
.background(MaterialTheme.colorScheme.secondaryContainer),
|
||||
post = it
|
||||
.background(MaterialTheme.colorScheme.secondaryContainer)
|
||||
.clickable {
|
||||
extended = if (extended == it.id) 0 else it.id
|
||||
},
|
||||
post = it,
|
||||
extended == it.id
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -161,7 +168,7 @@ fun UserItem(modifier: Modifier = Modifier, user: User, info: String? = null) {
|
||||
|
||||
@Composable
|
||||
@NonRestartableComposable
|
||||
fun PostItem(modifier: Modifier = Modifier, post: Post) {
|
||||
fun PostItem(modifier: Modifier = Modifier, post: Post, extended: Boolean = false) {
|
||||
var user: User? by remember { mutableStateOf(null) }
|
||||
val processor = remember { BBProcessorFactory.getInstance().create() }
|
||||
var html: String by remember { mutableStateOf("") }
|
||||
@ -193,7 +200,7 @@ fun PostItem(modifier: Modifier = Modifier, post: Post) {
|
||||
}
|
||||
},
|
||||
update = {
|
||||
it.maxLines = 25
|
||||
it.maxLines = if (extended) Int.MAX_VALUE else 5
|
||||
it.text = HtmlCompat.fromHtml(html, 0)
|
||||
}
|
||||
)
|
||||
@ -242,6 +249,7 @@ fun UserItemPreview() {
|
||||
fun PostItemPreview() {
|
||||
val post = Post(
|
||||
id = 154923,
|
||||
blogId = 121212,
|
||||
authorId = 165945,
|
||||
enableComments = true,
|
||||
numComments = 0,
|
||||
|
Loading…
x
Reference in New Issue
Block a user