From e1523ed62e16b6ecfde1a1d6dd69599910c7085a Mon Sep 17 00:00:00 2001 From: Robert Jaros Date: Wed, 16 Aug 2017 01:58:43 +0200 Subject: Initial commit --- src/main/kotlin/pl/treksoft/kvision/main.kt | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/kotlin/pl/treksoft/kvision/main.kt (limited to 'src/main/kotlin/pl/treksoft/kvision/main.kt') diff --git a/src/main/kotlin/pl/treksoft/kvision/main.kt b/src/main/kotlin/pl/treksoft/kvision/main.kt new file mode 100644 index 00000000..01ce118f --- /dev/null +++ b/src/main/kotlin/pl/treksoft/kvision/main.kt @@ -0,0 +1,40 @@ +package pl.treksoft.kvision + +import kotlin.browser.* +import kotlin.dom.* + +fun main(args: Array) { + var application: ApplicationBase? = null + + val state: dynamic = module.hot?.let { hot -> + hot.accept() + + hot.dispose { data -> + data.appState = application?.dispose() + application = null + } + + hot.data + } + + if (document.body != null) { + application = start(state) + } else { + application = null + document.addEventListener("DOMContentLoaded", { application = start(state) }) + } +} + +fun start(state: dynamic): ApplicationBase? { + if (document.body?.hasClass("kvision") ?: false) { + val application = MainApplication() + + @Suppress("UnsafeCastFromDynamic") + application.start(state?.appState ?: emptyMap()) + + return application + } else { + return null + } +} + -- cgit