-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathMain.kt
33 lines (27 loc) · 1.33 KB
/
Main.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package storytale.gallery.demo
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.window.ComposeViewport
import androidx.navigation.ExperimentalBrowserHistoryApi
import androidx.navigation.bindToNavigation
import androidx.navigation.compose.rememberNavController
import kotlinx.browser.window
import org.jetbrains.compose.resources.ExperimentalResourceApi
import org.jetbrains.compose.resources.preloadFont
import org.jetbrains.compose.storytale.gallery.material3.StorytaleGalleryApp
import org.jetbrains.compose.storytale.gallery.story.code.JetBrainsMonoRegularRes
import org.jetbrains.compose.storytale.generated.MainViewController
@OptIn(ExperimentalResourceApi::class, ExperimentalBrowserHistoryApi::class)
fun main() {
MainViewController() // Storytale compiler will initialize the stories
val useEmbedded = window.location.search.contains("embedded=true")
ComposeViewport(viewportContainerId = "composeApplication") {
val hasResourcePreloadCompleted = preloadFont(JetBrainsMonoRegularRes).value != null
val navHostController = rememberNavController()
if (hasResourcePreloadCompleted) {
StorytaleGalleryApp(isEmbedded = useEmbedded, navHostController)
LaunchedEffect(Unit) {
window.bindToNavigation(navHostController)
}
}
}
}