Skip to content

Commit 27a843b

Browse files
committed
Add switches for retaining state and including counter in RecompositionPage
1 parent bdbdb34 commit 27a843b

File tree

1 file changed

+34
-8
lines changed

1 file changed

+34
-8
lines changed

sample/shared/src/commonMain/kotlin/com/mikepenz/markdown/sample/RecompositionPage.kt

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@ package com.mikepenz.markdown.sample
22

33
import androidx.compose.foundation.layout.Arrangement
44
import androidx.compose.foundation.layout.Column
5+
import androidx.compose.foundation.layout.Row
56
import androidx.compose.foundation.layout.fillMaxSize
67
import androidx.compose.foundation.layout.safeContentPadding
78
import androidx.compose.material3.Button
89
import androidx.compose.material3.MaterialTheme
10+
import androidx.compose.material3.Switch
911
import androidx.compose.material3.Text
1012
import androidx.compose.runtime.Composable
1113
import androidx.compose.runtime.DisposableEffect
1214
import androidx.compose.runtime.getValue
1315
import androidx.compose.runtime.mutableIntStateOf
16+
import androidx.compose.runtime.mutableStateOf
1417
import androidx.compose.runtime.remember
1518
import androidx.compose.runtime.setValue
1619
import androidx.compose.ui.Alignment
@@ -42,23 +45,46 @@ fun RecompositionPage(
4245
horizontalAlignment = Alignment.CenterHorizontally,
4346
modifier = modifier.fillMaxSize().safeContentPadding()
4447
) {
48+
var retainState by remember {
49+
mutableStateOf(true)
50+
}
51+
var includeCounter by remember {
52+
mutableStateOf(false)
53+
}
4554
var counter by remember {
4655
mutableIntStateOf(0)
4756
}
4857

49-
Text("Count: $counter", color = MaterialTheme.colorScheme.onBackground)
50-
51-
Button(onClick = { counter++ }) {
52-
Text("Increase")
58+
Row(horizontalArrangement = Arrangement.spacedBy(8.dp), verticalAlignment = Alignment.CenterVertically) {
59+
Text("Include Counter:")
60+
Switch(includeCounter, onCheckedChange = { includeCounter = it })
5361
}
62+
Row(horizontalArrangement = Arrangement.spacedBy(8.dp), verticalAlignment = Alignment.CenterVertically) {
63+
Text("Retain State:")
64+
Switch(retainState, onCheckedChange = { retainState = it })
65+
}
66+
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
67+
Button(onClick = { counter++ }) {
68+
Text("Increase")
69+
}
5470

55-
Button(onClick = { counter-- }) {
56-
Text("Decrease")
71+
Button(onClick = { counter-- }) {
72+
Text("Decrease")
73+
}
5774
}
5875

76+
Text("Count: $counter", color = MaterialTheme.colorScheme.onBackground)
77+
5978
val markdownState = rememberMarkdownState(
60-
content = "## My markdown text"
61-
)
79+
if (includeCounter) counter else 0,
80+
retainState = retainState
81+
) {
82+
if (includeCounter) {
83+
"## My markdown text $counter"
84+
} else {
85+
"## My markdown text"
86+
}
87+
}
6288
Markdown(
6389
markdownState = markdownState,
6490
dimens = markdownDimens(),

0 commit comments

Comments
 (0)