diff --git a/src/main/kotlin/app/ui/dialogs/NewBranchDialog.kt b/src/main/kotlin/app/ui/dialogs/NewBranchDialog.kt index 667646d..7171c90 100644 --- a/src/main/kotlin/app/ui/dialogs/NewBranchDialog.kt +++ b/src/main/kotlin/app/ui/dialogs/NewBranchDialog.kt @@ -5,13 +5,18 @@ import androidx.compose.foundation.layout.* import androidx.compose.material.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusOrder +import androidx.compose.ui.input.key.Key +import androidx.compose.ui.input.key.key +import androidx.compose.ui.input.key.onPreviewKeyEvent import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +@OptIn(ExperimentalComposeUiApi::class) @Composable fun NewBranchDialog( onReject: () -> Unit, @@ -32,7 +37,15 @@ fun NewBranchDialog( .focusOrder(branchFieldFocusRequester) { this.next = buttonFieldFocusRequester } - .width(300.dp), + .width(300.dp) + .onPreviewKeyEvent { + if(it.key == Key.Enter) { + onAccept(branchField) + true + } else { + false + } + }, value = branchField, singleLine = true, label = { Text("New branch name", fontSize = 14.sp) }, diff --git a/src/main/kotlin/app/ui/dialogs/NewTagDialog.kt b/src/main/kotlin/app/ui/dialogs/NewTagDialog.kt index a4b7e37..1c39583 100644 --- a/src/main/kotlin/app/ui/dialogs/NewTagDialog.kt +++ b/src/main/kotlin/app/ui/dialogs/NewTagDialog.kt @@ -5,13 +5,18 @@ import androidx.compose.foundation.layout.* import androidx.compose.material.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusOrder +import androidx.compose.ui.input.key.Key +import androidx.compose.ui.input.key.key +import androidx.compose.ui.input.key.onPreviewKeyEvent import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +@OptIn(ExperimentalComposeUiApi::class) @Composable fun NewTagDialog( onReject: () -> Unit, @@ -32,7 +37,15 @@ fun NewTagDialog( .focusOrder(tagFieldFocusRequester) { this.next = buttonFieldFocusRequester } - .width(300.dp), + .width(300.dp) + .onPreviewKeyEvent { + if(it.key == Key.Enter) { + onAccept(tagField) + true + } else { + false + } + }, value = tagField, singleLine = true, label = { Text("New tag name", fontSize = 14.sp) }, diff --git a/src/main/kotlin/app/ui/dialogs/PasswordDialog.kt b/src/main/kotlin/app/ui/dialogs/PasswordDialog.kt index 1bcf55a..fc0054d 100644 --- a/src/main/kotlin/app/ui/dialogs/PasswordDialog.kt +++ b/src/main/kotlin/app/ui/dialogs/PasswordDialog.kt @@ -5,14 +5,19 @@ import androidx.compose.foundation.layout.* import androidx.compose.material.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusOrder +import androidx.compose.ui.input.key.Key +import androidx.compose.ui.input.key.key +import androidx.compose.ui.input.key.onPreviewKeyEvent import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +@OptIn(ExperimentalComposeUiApi::class) @Composable fun PasswordDialog( onReject: () -> Unit, @@ -39,7 +44,15 @@ fun PasswordDialog( .focusOrder(passwordFieldFocusRequester) { this.next = buttonFieldFocusRequester } - .width(300.dp), + .width(300.dp) + .onPreviewKeyEvent { + if(it.key == Key.Enter) { + onAccept(passwordField) + true + } else { + false + } + }, value = passwordField, singleLine = true, label = { Text("Password", fontSize = 14.sp) }, diff --git a/src/main/kotlin/app/ui/dialogs/UserPasswordDialog.kt b/src/main/kotlin/app/ui/dialogs/UserPasswordDialog.kt index 9644df4..e54113b 100644 --- a/src/main/kotlin/app/ui/dialogs/UserPasswordDialog.kt +++ b/src/main/kotlin/app/ui/dialogs/UserPasswordDialog.kt @@ -5,14 +5,19 @@ import androidx.compose.foundation.layout.* import androidx.compose.material.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusOrder +import androidx.compose.ui.input.key.Key +import androidx.compose.ui.input.key.key +import androidx.compose.ui.input.key.onPreviewKeyEvent import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +@OptIn(ExperimentalComposeUiApi::class) @Composable fun UserPasswordDialog( onReject: () -> Unit, @@ -23,7 +28,9 @@ fun UserPasswordDialog( val userFieldFocusRequester = remember { FocusRequester() } val passwordFieldFocusRequester = remember { FocusRequester() } val buttonFieldFocusRequester = remember { FocusRequester() } - + val acceptDialog = { + onAccept(userField, passwordField) + } Column( modifier = Modifier .background(MaterialTheme.colors.background), @@ -42,7 +49,15 @@ fun UserPasswordDialog( .focusOrder(userFieldFocusRequester) { this.next = passwordFieldFocusRequester } - .width(300.dp), + .width(300.dp) + .onPreviewKeyEvent { + if(it.key == Key.Enter) { + acceptDialog() + true + } else { + false + } + }, value = userField, singleLine = true, label = { Text("User", fontSize = 14.sp) }, @@ -57,7 +72,15 @@ fun UserPasswordDialog( this.previous = userFieldFocusRequester this.next = buttonFieldFocusRequester } - .width(300.dp), + .width(300.dp) + .onPreviewKeyEvent { + if(it.key == Key.Enter) { + acceptDialog() + true + } else { + false + } + }, value = passwordField, singleLine = true, label = { Text("Password", fontSize = 14.sp) },