diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt index a59cfddfa..fdd282da6 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt @@ -24,10 +24,20 @@ import org.jetbrains.jewel.ui.component.Divider fun MarkdownDemo() { Row(Modifier.trackActivation().fillMaxSize().background(JewelTheme.globalColors.panelBackground)) { var currentMarkdown by remember { mutableStateOf(JewelReadme) } - MarkdownEditor(currentMarkdown, { currentMarkdown = it }, Modifier.fillMaxHeight().weight(1f)) + var linksAreEnabled by remember { mutableStateOf(true) } + MarkdownEditor( + currentMarkdown = currentMarkdown, + onMarkdownChange = { currentMarkdown = it }, + onLinksEnabledChange = { linksAreEnabled = it }, + modifier = Modifier.fillMaxHeight().weight(1f), + ) Divider(Orientation.Vertical, Modifier.fillMaxHeight()) - MarkdownPreview(currentMarkdown, Modifier.fillMaxHeight().weight(1f)) + MarkdownPreview( + modifier = Modifier.fillMaxHeight().weight(1f), + rawMarkdown = currentMarkdown, + linksAreEnabled = linksAreEnabled, + ) } } diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownEditor.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownEditor.kt index 14594856f..26884ffd1 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownEditor.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownEditor.kt @@ -25,6 +25,7 @@ import com.darkrockstudios.libraries.mpfilepicker.JvmFile import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons import org.jetbrains.jewel.ui.Orientation +import org.jetbrains.jewel.ui.component.Checkbox import org.jetbrains.jewel.ui.component.Divider import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.OutlinedButton @@ -36,22 +37,29 @@ import org.jetbrains.jewel.ui.component.TextArea internal fun MarkdownEditor( currentMarkdown: String, onMarkdownChange: (String) -> Unit, + onLinksEnabledChange: (Boolean) -> Unit, modifier: Modifier = Modifier, ) { Column(modifier) { ControlsRow( - onMarkdownChange, - Modifier.fillMaxWidth().background(JewelTheme.globalColors.panelBackground).padding(8.dp), + modifier = Modifier.fillMaxWidth().background(JewelTheme.globalColors.panelBackground).padding(8.dp), + onMarkdownChange = onMarkdownChange, + onLinksEnabledChange = onLinksEnabledChange, ) Divider(orientation = Orientation.Horizontal) - Editor(currentMarkdown, onMarkdownChange, Modifier.fillMaxWidth().weight(1f)) + Editor( + currentMarkdown = currentMarkdown, + onMarkdownChange = onMarkdownChange, + modifier = Modifier.fillMaxWidth().weight(1f), + ) } } @Composable private fun ControlsRow( - onMarkdownChange: (String) -> Unit, modifier: Modifier = Modifier, + onMarkdownChange: (String) -> Unit, + onLinksEnabledChange: (Boolean) -> Unit, ) { Row( modifier.horizontalScroll(rememberScrollState()), @@ -118,6 +126,20 @@ private fun ControlsRow( } } } + + var linksAreEnabled by remember { mutableStateOf(true) } + Row( + verticalAlignment = Alignment.CenterVertically, + ) { + Text("Links enabled") + Checkbox( + checked = linksAreEnabled, + onCheckedChange = { + linksAreEnabled = it + onLinksEnabledChange(it) + }, + ) + } } } @@ -125,7 +147,7 @@ private fun ControlsRow( private fun Editor( currentMarkdown: String, onMarkdownChange: (String) -> Unit, - modifier: Modifier, + modifier: Modifier = Modifier, ) { val monospacedTextStyle = JewelTheme.defaultTextStyle.copy(fontFamily = FontFamily.Monospace) Box(modifier.padding(16.dp)) { diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownPreview.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownPreview.kt index 5db9d4d51..1f3247d1e 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownPreview.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownPreview.kt @@ -43,8 +43,9 @@ import java.net.URI @Composable internal fun MarkdownPreview( - rawMarkdown: String, modifier: Modifier = Modifier, + rawMarkdown: String, + linksAreEnabled: Boolean, ) { val isDark = JewelTheme.isDark @@ -91,8 +92,8 @@ internal fun MarkdownPreview( contentPadding = PaddingValues(16.dp), state = lazyListState, selectable = true, + enabled = linksAreEnabled, onUrlClick = { url -> Desktop.getDesktop().browse(URI.create(url)) }, - onTextClick = { }, ) VerticalScrollbar(