diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index 352775a3c0..cb53c71756 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -781,25 +781,29 @@ fun BadgeDisplay(baseNote: Note) { @Composable fun FileHeaderDisplay(note: Note) { val event = (note.event as? FileHeaderEvent) ?: return - val fullUrl = event.url() ?: return - val blurHash = event.blurhash() - val hash = event.hash() - val description = event.content - val removedParamsFromUrl = fullUrl.split("?")[0].lowercase() - val isImage = imageExtensions.any { removedParamsFromUrl.endsWith(it) } - val isVideo = videoExtensions.any { removedParamsFromUrl.endsWith(it) } - if (isImage || isVideo) { - val content = if (isImage) { - ZoomableImage(fullUrl, description, hash, blurHash) - } else { - ZoomableVideo(fullUrl, description, hash) + var content by remember { mutableStateOf(null) } + + LaunchedEffect(key1 = event.id) { + withContext(Dispatchers.IO) { + val blurHash = event.blurhash() + val hash = event.hash() + val description = event.content + val removedParamsFromUrl = fullUrl.split("?")[0].lowercase() + val isImage = imageExtensions.any { removedParamsFromUrl.endsWith(it) } + val isVideo = videoExtensions.any { removedParamsFromUrl.endsWith(it) } + content = if (isImage) { + ZoomableImage(fullUrl, description, hash, blurHash) + } else { + ZoomableVideo(fullUrl, description, hash) + } } - ZoomableContentView(content = content, listOf(content)) - } else { - UrlPreview(fullUrl, "$fullUrl ") } + + content?.let { + ZoomableContentView(content = it, listOf(it)) + } ?: UrlPreview(fullUrl, "$fullUrl ") } @Composable