From f2db2b88c25595b3b47acdddc640f5d98ae089a1 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 29 May 2023 19:46:54 -0400 Subject: [PATCH] Improves rendering of Markdown summaries --- .../amethyst/ui/components/RichTextViewer.kt | 39 +++++++++++++++---- .../amethyst/ui/screen/ThreadFeedView.kt | 5 ++- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt index e28aac2e1..aef2f5aff 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt @@ -392,11 +392,22 @@ private fun RenderContentAsMarkdown(content: String, backgroundColor: Color, tag } @Composable -private fun ObserveNIP19( +fun ObserveNIP19( + it: Nip19.Return, + onRefresh: () -> Unit +) { + if (it.type == Nip19.Type.NOTE || it.type == Nip19.Type.EVENT || it.type == Nip19.Type.ADDRESS) { + ObserveNIP19Event(it, onRefresh) + } else if (it.type == Nip19.Type.USER) { + ObserveNIP19User(it, onRefresh) + } +} + +@Composable +private fun ObserveNIP19Event( it: Nip19.Return, onRefresh: () -> Unit ) { - var baseUser by remember(it) { mutableStateOf(null) } var baseNote by remember(it) { mutableStateOf(null) } LaunchedEffect(key1 = it.hex) { @@ -406,12 +417,6 @@ private fun ObserveNIP19( baseNote = note } } - - if (it.type == Nip19.Type.USER) { - LocalCache.checkGetOrCreateUser(it.hex)?.let { user -> - baseUser = user - } - } } } @@ -423,6 +428,24 @@ private fun ObserveNIP19( } } } +} + +@Composable +private fun ObserveNIP19User( + it: Nip19.Return, + onRefresh: () -> Unit +) { + var baseUser by remember(it) { mutableStateOf(null) } + + LaunchedEffect(key1 = it.hex) { + withContext(Dispatchers.IO) { + if (it.type == Nip19.Type.USER) { + LocalCache.checkGetOrCreateUser(it.hex)?.let { user -> + baseUser = user + } + } + } + } baseUser?.let { user -> val userState by user.live().metadata.observeAsState() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt index 326b9693c..ef5229ad2 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt @@ -307,7 +307,7 @@ fun NoteMaster( if (noteEvent is BadgeDefinitionEvent) { BadgeDisplay(baseNote = note) } else if (noteEvent is LongTextNoteEvent) { - Row(modifier = Modifier.padding(start = 12.dp, end = 12.dp, top = 10.dp)) { + Row(modifier = Modifier.padding(start = 12.dp, end = 12.dp, top = 10.dp, bottom = 12.dp)) { Column { noteEvent.image()?.let { AsyncImage( @@ -337,7 +337,8 @@ fun NoteMaster( text = it, modifier = Modifier .fillMaxWidth() - .padding(top = 10.dp) + .padding(top = 10.dp), + color = Color.Gray ) } }