From 65c6f8ff52c8ecde84c7b5a505ba5a401da3a22a Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 4 Apr 2021 17:23:27 +0530 Subject: [PATCH] app: add Comments UI composables Signed-off-by: Harsh Shandilya --- .../lobsters/ui/comments/CommentEntry.kt | 22 +++++++++++++++++++ .../lobsters/ui/comments/Comments.kt | 21 ++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 app/src/main/java/dev/msfjarvis/lobsters/ui/comments/CommentEntry.kt create mode 100644 app/src/main/java/dev/msfjarvis/lobsters/ui/comments/Comments.kt diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/comments/CommentEntry.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/comments/CommentEntry.kt new file mode 100644 index 00000000..a9cc3606 --- /dev/null +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/comments/CommentEntry.kt @@ -0,0 +1,22 @@ +package dev.msfjarvis.lobsters.ui.comments + +import android.text.Html +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.unit.dp +import dev.msfjarvis.lobsters.model.Comment + +@Composable +fun CommentEntry( + comment: Comment, +) { + Row(modifier = Modifier.padding(start = (10 * (comment.indentLevel.toFloat() - 1)).dp)) { + Text( + text = buildAnnotatedString { @Suppress("DEPRECATION") Html.fromHtml(comment.comment) }, + ) + } +} diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/comments/Comments.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/comments/Comments.kt new file mode 100644 index 00000000..93143605 --- /dev/null +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/comments/Comments.kt @@ -0,0 +1,21 @@ +package dev.msfjarvis.lobsters.ui.comments + +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material.CircularProgressIndicator +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import dev.msfjarvis.lobsters.model.LobstersPostDetails + +@Composable +private fun CommentsPageInternal( + details: LobstersPostDetails, +) { + LazyColumn { items(details.comments) { CommentEntry(it) } } +} + +@Composable +fun CommentsPage(postId: String, getDetails: suspend (String) -> LobstersPostDetails) { +}