diff --git a/mosogepsch/src/jsMain/kotlin/Main.kt b/mosogepsch/src/jsMain/kotlin/Main.kt index 35cf2191e249745c21603adb11de8dfc0a4872e8..f698cd5d3678c205c108e3d88410df44e26acd0d 100644 --- a/mosogepsch/src/jsMain/kotlin/Main.kt +++ b/mosogepsch/src/jsMain/kotlin/Main.kt @@ -5,8 +5,10 @@ import app.softwork.bootstrapcompose.Color import components.* import kotlinx.browser.localStorage import kotlinx.browser.window +import localization.English import localization.Hungarian import localization.LocalLang +import localization.Localization import org.jetbrains.compose.web.css.* import org.jetbrains.compose.web.dom.* import org.jetbrains.compose.web.renderComposable @@ -32,7 +34,7 @@ fun main() { ?: window.matchMedia("(prefers-color-scheme: dark)").matches var mosogepStyle by mutableStateOf(Style(dark)) - val lang = Hungarian() + var lang by mutableStateOf<Localization>(Hungarian()) renderComposable(rootElementId = "root") { Style(mosogepStyle) Style(CardStyle) @@ -71,14 +73,30 @@ fun main() { ) Text("MosógépSCH") } - switch( - label = "Sötét téma", - value = mosogepStyle.dark, - onSet = { - mosogepStyle = Style(it) - localStorage["darkMode"] = "$it" - } - ) + Div( + attrs = { classes(mosogepStyle.options) } + ) { + switch( + label = "Sötét téma", + value = mosogepStyle.dark, + onSet = { + mosogepStyle = Style(it) + localStorage["darkMode"] = "$it" + } + ) + // todo make this a dropdown menu + switch( + label = "magyar", + value = lang is Hungarian, + onSet = { + if (lang is Hungarian) { + lang = English() + } else { + lang = Hungarian() + } + } + ) + } } } Main(attrs = { diff --git a/mosogepsch/src/jsMain/kotlin/localization/English.kt b/mosogepsch/src/jsMain/kotlin/localization/English.kt index c5bb88ad8e82af5b7eec468c3d7531c3a9b25453..01faadf3f0b0e9ffc1e6f4fc0fb00b746012c4cc 100644 --- a/mosogepsch/src/jsMain/kotlin/localization/English.kt +++ b/mosogepsch/src/jsMain/kotlin/localization/English.kt @@ -47,6 +47,6 @@ fun Localization.machineStatus(status: MachineStatus): String = when(status) { MachineStatus.NotAvailable -> notAvailable } -val LocalLang = compositionLocalOf { Hungarian() } +val LocalLang = compositionLocalOf<Localization> { Hungarian() } fun Int.padded() = this.toString().padStart(2, '0') \ No newline at end of file diff --git a/mosogepsch/src/jsMain/kotlin/styles/Style.kt b/mosogepsch/src/jsMain/kotlin/styles/Style.kt index 44ff2444c5c293792bde8207e4d0f427022f3fdb..20199d2666cf580191e04eb28381e76d151132e6 100644 --- a/mosogepsch/src/jsMain/kotlin/styles/Style.kt +++ b/mosogepsch/src/jsMain/kotlin/styles/Style.kt @@ -42,6 +42,11 @@ class Style(val dark: Boolean = false): StyleSheet() { flexGrow(0) property("z-index", 2000) } + val options by style { + display(DisplayStyle.Flex) + flexDirection(FlexDirection.Row) + gap(1.em) + } } val LocalStyle = compositionLocalOf { Style() } \ No newline at end of file