trixnity-messenger-playground

A playground for trixnity-messenger based on jetbrains compose-html
git clone git://archive.git.mtrnord.blog/MTRNord/trixnity-messenger-playground.git
Log | Files | Refs | README

commit 722cf89331294a195c4504b0de07f83540e124bf
parent f86b19c49b4889d3cc644a542415826f78c8670e
Author: MTRNord <mtrnord1@gmail.com>
Date:   Fri, 29 Sep 2023 11:51:26 +0200

Fix: Cleanup

Diffstat:
Msrc/jsMain/kotlin/Main.kt | 13+------------
Msrc/jsMain/kotlin/pages/Login.kt | 8+++++++-
Msrc/jsMain/kotlin/pages/Main.kt | 3---
3 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/src/jsMain/kotlin/Main.kt b/src/jsMain/kotlin/Main.kt @@ -62,10 +62,6 @@ fun Base(rootViewModel: RootViewModel) { // Trixnity messenger router val routerState by rootViewModel.rootStack.subscribeAsState() when (val route = routerState.active.instance) { - is RootRouter.RootWrapper.None -> { - None() - } - is RootRouter.RootWrapper.MatrixClientInitialization -> { Init(route.matrixClientInitializationViewModel) } // show initialization of the MatrixClient (aka loading screen) @@ -89,15 +85,8 @@ fun Base(rootViewModel: RootViewModel) { @Composable fun Init(matrixClientInitializationViewModel: MatrixClientInitializationViewModel) { - val initState by matrixClientInitializationViewModel.currentState.collectAsState(); + val initState by matrixClientInitializationViewModel.currentState.collectAsState() Div({ style { padding(25.px) } }) { Text(initState) } -} - -@Composable -fun None() { - Div({ style { padding(25.px) } }) { - Text("Initializing matrix") - } } \ No newline at end of file diff --git a/src/jsMain/kotlin/pages/Login.kt b/src/jsMain/kotlin/pages/Login.kt @@ -7,6 +7,7 @@ import com.varabyte.kobweb.compose.ui.modifiers.* import com.varabyte.kobweb.silk.components.forms.InputGroup import com.varabyte.kobweb.silk.components.forms.TextInput import de.connect2x.trixnity.messenger.viewmodel.connecting.AddMatrixAccountMethod +import de.connect2x.trixnity.messenger.viewmodel.connecting.AddMatrixAccountState import de.connect2x.trixnity.messenger.viewmodel.connecting.AddMatrixAccountViewModel import de.connect2x.trixnity.messenger.viewmodel.connecting.PasswordLoginViewModel import kotlinx.coroutines.flow.update @@ -20,6 +21,7 @@ fun PasswordLogin(passwordLoginViewModel: PasswordLoginViewModel) { val username by passwordLoginViewModel.username.collectAsState(); val password by passwordLoginViewModel.password.collectAsState(); val canLogin by passwordLoginViewModel.canLogin.collectAsState(); + val loginState by passwordLoginViewModel.addMatrixAccountState.collectAsState(); Row( Modifier .display(DisplayStyle.Flex) @@ -64,7 +66,7 @@ fun PasswordLogin(passwordLoginViewModel: PasswordLoginViewModel) { } }) } - if (canLogin) { + if (canLogin && loginState !is AddMatrixAccountState.Connecting) { Button(attrs = { onClick { if (username.isNotBlank() && password.isNotBlank() && canLogin) { @@ -74,6 +76,10 @@ fun PasswordLogin(passwordLoginViewModel: PasswordLoginViewModel) { }) { Text("Login") } + } else if (loginState is AddMatrixAccountState.Connecting) { + Div({ + classes("lds-dual-ring") + }) } } } diff --git a/src/jsMain/kotlin/pages/Main.kt b/src/jsMain/kotlin/pages/Main.kt @@ -17,14 +17,11 @@ import de.connect2x.trixnity.messenger.viewmodel.room.timeline.TimelineRouter import de.connect2x.trixnity.messenger.viewmodel.roomlist.RoomListElementViewModel import de.connect2x.trixnity.messenger.viewmodel.roomlist.RoomListRouter import de.connect2x.trixnity.messenger.viewmodel.roomlist.RoomListViewModel -import io.github.oshai.kotlinlogging.KotlinLogging import net.folivo.trixnity.core.model.RoomId import org.jetbrains.compose.web.css.* import org.jetbrains.compose.web.dom.Div import org.jetbrains.compose.web.dom.Text -private val log = KotlinLogging.logger { } - @Composable fun Main(mainViewModel: MainViewModel) { suspend {