fix(common): make text in comments screen selectable

With this change you can now select
- The post title
- The post description if it exists, and
- Each individual comment

Fixes #385
This commit is contained in:
Harsh Shandilya 2023-07-18 23:21:39 +05:30
parent 255439e2b4
commit 778be597dd

View file

@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Public import androidx.compose.material.icons.filled.Public
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@ -70,7 +71,7 @@ internal fun CommentsHeader(
modifier = Modifier.padding(16.dp).fillMaxWidth(), modifier = Modifier.padding(16.dp).fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(8.dp), verticalArrangement = Arrangement.spacedBy(8.dp),
) { ) {
PostTitle(title = postDetails.title) SelectionContainer { PostTitle(title = postDetails.title) }
TagRow(tags = postDetails.tags.toImmutableList()) TagRow(tags = postDetails.tags.toImmutableList())
Spacer(Modifier.height(4.dp)) Spacer(Modifier.height(4.dp))
@ -84,7 +85,9 @@ internal fun CommentsHeader(
} }
if (postDetails.description.isNotBlank()) { if (postDetails.description.isNotBlank()) {
SelectionContainer {
ThemedRichText(htmlConverter.convertHTMLToMarkdown(postDetails.description)) ThemedRichText(htmlConverter.convertHTMLToMarkdown(postDetails.description))
}
Spacer(Modifier.height(4.dp)) Spacer(Modifier.height(4.dp))
} }
Submitter( Submitter(
@ -169,6 +172,7 @@ internal fun CommentEntry(
Modifier.clickable { uriHandler.openUri("https://lobste.rs/u/${comment.user.username}") }, Modifier.clickable { uriHandler.openUri("https://lobste.rs/u/${comment.user.username}") },
) )
if (commentNode.isExpanded) { if (commentNode.isExpanded) {
SelectionContainer {
ThemedRichText( ThemedRichText(
text = htmlConverter.convertHTMLToMarkdown(comment.comment), text = htmlConverter.convertHTMLToMarkdown(comment.comment),
modifier = Modifier.padding(top = 8.dp) modifier = Modifier.padding(top = 8.dp)
@ -177,6 +181,7 @@ internal fun CommentEntry(
} }
} }
} }
}
@Composable @Composable
fun buildCommenterString( fun buildCommenterString(