From f2fdfac4ad2ee0d7ed245140846accdef852a93f Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 4 Apr 2021 17:23:27 +0530 Subject: [PATCH] android: add Comments UI composables (cherry picked from commit 65c6f8ff52c8ecde84c7b5a505ba5a401da3a22a) --- .../claw/android/comments/CommentEntry.kt | 22 +++++++++++++++++++ .../claw/android/comments/Comments.kt | 19 ++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 android/src/main/kotlin/dev/msfjarvis/claw/android/comments/CommentEntry.kt create mode 100644 android/src/main/kotlin/dev/msfjarvis/claw/android/comments/Comments.kt diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/comments/CommentEntry.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/comments/CommentEntry.kt new file mode 100644 index 00000000..2d376dce --- /dev/null +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/comments/CommentEntry.kt @@ -0,0 +1,22 @@ +package dev.msfjarvis.claw.android.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.claw.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/android/src/main/kotlin/dev/msfjarvis/claw/android/comments/Comments.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/comments/Comments.kt new file mode 100644 index 00000000..3fe0ffc4 --- /dev/null +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/comments/Comments.kt @@ -0,0 +1,19 @@ +package dev.msfjarvis.claw.android.comments + +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.runtime.Composable +import dev.msfjarvis.claw.model.LobstersPostDetails + +@Composable +private fun CommentsPageInternal( + details: LobstersPostDetails, +) { + LazyColumn { items(details.comments) { CommentEntry(it) } } +} + +@Composable +fun CommentsPage( + postId: String, + getDetails: suspend (String) -> LobstersPostDetails, +) {}