Skip to content

Commit 14353c7

Browse files
committed
feat(labs): fm test screen/-s
Signed-off-by: Infi <[email protected]>
1 parent 7009c90 commit 14353c7

File tree

5 files changed

+104
-3
lines changed

5 files changed

+104
-3
lines changed

app/src/main/java/chat/revolt/ndk/FinalMarkdown.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ data class FinalMarkdownNodeTest(
99

1010
@Suppress("KotlinJniMissingFunction")
1111
object FinalMarkdown {
12-
external fun init()
12+
external fun init(debug: Boolean)
1313
external fun process(input: String): FinalMarkdownNodeTest
1414
}

app/src/main/java/chat/revolt/ndk/NativeLibraries.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package chat.revolt.ndk
22

3+
import chat.revolt.BuildConfig
4+
35
annotation class NativeLibrary(val name: String) {
46
companion object {
57
const val LIB_NAME_NATIVE_MARKDOWN = "stendal"
@@ -12,6 +14,6 @@ object NativeLibraries {
1214
System.loadLibrary(NativeLibrary.LIB_NAME_NATIVE_MARKDOWN)
1315
System.loadLibrary(NativeLibrary.LIB_NAME_NATIVE_MARKDOWN_V2)
1416
Stendal.init()
15-
FinalMarkdown.init()
17+
FinalMarkdown.init(BuildConfig.DEBUG)
1618
}
1719
}

app/src/main/java/chat/revolt/screens/labs/LabsHomeScreen.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,15 @@ fun LabsHomeScreen(navController: NavController, topNav: NavController) {
178178
}
179179
)
180180
HorizontalDivider()
181+
ListItem(
182+
headlineContent = {
183+
Text("Final Markdown")
184+
},
185+
modifier = Modifier.clickable {
186+
navController.navigate("sandboxes/finalmarkdown")
187+
}
188+
)
189+
HorizontalDivider()
181190
ListItem(
182191
headlineContent = {
183192
Text("Gradient Editor")

app/src/main/java/chat/revolt/screens/labs/LabsRootScreen.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import androidx.navigation.compose.rememberNavController
1414
import chat.revolt.api.settings.FeatureFlags
1515
import chat.revolt.screens.labs.ui.mockups.NewLoginExperienceMockup
1616
import chat.revolt.screens.labs.ui.sandbox.CoreLibSandbox
17+
import chat.revolt.screens.labs.ui.sandbox.FinalMarkdownSandbox
1718
import chat.revolt.screens.labs.ui.sandbox.GradientEditorSandbox
1819
import chat.revolt.screens.labs.ui.sandbox.JBMSandbox
1920
import chat.revolt.screens.labs.ui.sandbox.NewCardSandboxScreen
@@ -74,13 +75,15 @@ fun LabsRootScreen(topNav: NavController) {
7475
composable("sandboxes/jbm") {
7576
JBMSandbox(labsNav)
7677
}
78+
composable("sandboxes/finalmarkdown") {
79+
FinalMarkdownSandbox(labsNav)
80+
}
7781
composable("sandboxes/gradienteditor") {
7882
GradientEditorSandbox(labsNav)
7983
}
8084
composable("sandboxes/librevolt") {
8185
CoreLibSandbox(labsNav)
8286
}
83-
8487
composable("sandboxes/newcard") {
8588
NewCardSandboxScreen(labsNav)
8689
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package chat.revolt.screens.labs.ui.sandbox
2+
3+
import androidx.compose.foundation.layout.fillMaxWidth
4+
import androidx.compose.material3.Text
5+
import androidx.compose.material3.TextButton
6+
import androidx.compose.material3.TextField
7+
import androidx.compose.runtime.Composable
8+
import androidx.compose.runtime.LaunchedEffect
9+
import androidx.compose.runtime.getValue
10+
import androidx.compose.runtime.mutableStateOf
11+
import androidx.compose.runtime.remember
12+
import androidx.compose.runtime.setValue
13+
import androidx.compose.ui.Modifier
14+
import androidx.compose.ui.text.style.TextOverflow
15+
import androidx.navigation.NavController
16+
import chat.revolt.ndk.FinalMarkdown
17+
import chat.revolt.settings.dsl.SettingsPage
18+
19+
@Composable
20+
fun FinalMarkdownSandbox(navController: NavController) {
21+
var mdSource by remember { mutableStateOf("") }
22+
var submitMdSource by remember { mutableStateOf<String?>(null) }
23+
24+
LaunchedEffect(submitMdSource) {
25+
submitMdSource?.let {
26+
FinalMarkdown.process(it)
27+
}
28+
}
29+
30+
SettingsPage(
31+
navController = navController,
32+
title = {
33+
Text(
34+
text = "Final Markdown Sandbox",
35+
maxLines = 1,
36+
overflow = TextOverflow.Ellipsis,
37+
)
38+
}
39+
) {
40+
Subcategory(
41+
title = { Text("Source", maxLines = 1, overflow = TextOverflow.Ellipsis) },
42+
) {
43+
TextField(
44+
value = mdSource,
45+
onValueChange = { mdSource = it },
46+
label = { Text("Markdown source") },
47+
modifier = Modifier.fillMaxWidth()
48+
)
49+
50+
TextButton(onClick = {
51+
submitMdSource = mdSource
52+
}) {
53+
Text("Submit")
54+
}
55+
TextButton(onClick = {
56+
submitMdSource = """# Full range of MD now supported!
57+
1. Text with **bold**, *italics*, and ***both***!
58+
2. You ~~can't see me~~.
59+
3. [I'm a link to another website.](<https://revolt.chat>)
60+
4. I'm a spoiler with ||**bold text inside it**||
61+
- I'm a sub-item on this list...
62+
- Let's go even deeper...
63+
64+
`Inline code`
65+
66+
```js
67+
let x = "I'm a multi-line code block!";
68+
```
69+
70+
> > ${'$'}${'$'}E = mc^2${'$'}${'$'}
71+
>
72+
> — Albert Einstein
73+
74+
| Timestamp | Mention | Channel Link | Message Link |
75+
|:-:|:-:|:-:|:-:|
76+
| <t:1663846662:f> | <@01EX2NCWQ0CHS3QJF0FEQS1GR4> | <#01H73F4RAHTPBHKJ1XBQDXK3NQ> | https://revolt.chat/server/01F7ZSBSFHQ8TA81725KQCSDDP/channel/01F92C5ZXBQWQ8KY7J8KY917NM/01J25XZM9JXVVJDDKFPB7Q48HZ |"""
77+
}) {
78+
Text("Submit test document")
79+
}
80+
Subcategory(
81+
title = { Text("Output", maxLines = 1, overflow = TextOverflow.Ellipsis) },
82+
) {
83+
Text("TBD!")
84+
}
85+
}
86+
}
87+
}

0 commit comments

Comments
 (0)