feat(reads): integrate long-form into deck layout with zoom and reactions
- Wire Article, Editor, Drafts into DeckColumnType + DeckColumnContainer - Add Drafts to sidebar nav, Add Column dialog, and Window menu - Add article navigation (onNavigateToArticle) in SinglePaneLayout - Add NoteActionsRow to ReadsScreen LongFormCards (zaps, reactions, replies) - Add Cmd+/Cmd- zoom in ArticleReaderScreen via fontScale on RenderMarkdown - Add kind 30023 to ProfileSubscription for long-form in user profiles - Add fontScale param to RenderMarkdown using scaled LocalDensity Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+20
-1
@@ -24,8 +24,10 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.platform.LocalUriHandler
|
||||
import androidx.compose.ui.platform.UriHandler
|
||||
import androidx.compose.ui.unit.Density
|
||||
import com.halilibo.richtext.commonmark.CommonMarkdownParseOptions
|
||||
import com.halilibo.richtext.commonmark.CommonmarkAstNodeParser
|
||||
import com.halilibo.richtext.markdown.BasicMarkdown
|
||||
@@ -39,6 +41,7 @@ fun RenderMarkdown(
|
||||
content: String,
|
||||
onLinkClick: (String) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
fontScale: Float = 1.0f,
|
||||
) {
|
||||
val astNode =
|
||||
remember(content) {
|
||||
@@ -57,7 +60,23 @@ fun RenderMarkdown(
|
||||
}
|
||||
}
|
||||
|
||||
CompositionLocalProvider(LocalUriHandler provides uriHandler) {
|
||||
val currentDensity = LocalDensity.current
|
||||
val scaledDensity =
|
||||
remember(fontScale, currentDensity) {
|
||||
if (fontScale == 1.0f) {
|
||||
currentDensity
|
||||
} else {
|
||||
Density(
|
||||
density = currentDensity.density * fontScale,
|
||||
fontScale = currentDensity.fontScale,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
CompositionLocalProvider(
|
||||
LocalUriHandler provides uriHandler,
|
||||
LocalDensity provides scaledDensity,
|
||||
) {
|
||||
RichText(
|
||||
modifier = modifier,
|
||||
style = RichTextStyle(),
|
||||
|
||||
Reference in New Issue
Block a user