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