From 17e20b692017683aac148ab20af93d5c8c216a10 Mon Sep 17 00:00:00 2001 From: "Evgeny @ SimpleX Chat" <259188159+evgeny-simplex@users.noreply.github.com> Date: Sat, 11 Jul 2026 19:51:32 +0000 Subject: [PATCH] focus name field --- apps/ios/Shared/Views/UserSettings/UserAddressView.swift | 8 ++++++++ .../common/views/usersettings/SetSimplexNameView.kt | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/apps/ios/Shared/Views/UserSettings/UserAddressView.swift b/apps/ios/Shared/Views/UserSettings/UserAddressView.swift index c7079b669d..27a8b5273a 100644 --- a/apps/ios/Shared/Views/UserSettings/UserAddressView.swift +++ b/apps/ios/Shared/Views/UserSettings/UserAddressView.swift @@ -758,6 +758,7 @@ struct SetSimplexDomainView: View { @State private var original = "" @State private var didSave = false @State private var editing = false + @FocusState private var nameFocused: Bool init(title: LocalizedStringKey, footer: LocalizedStringKey, prompt: String, simplexName: String, save: @escaping (String?) async -> Bool) { self.title = title @@ -784,6 +785,7 @@ struct SetSimplexDomainView: View { if editing { ZStack(alignment: .trailing) { TextField(prompt, text: $simplexName) + .focused($nameFocused) .autocorrectionDisabled(true) .textInputAutocapitalization(.never) .padding(.trailing, isValid ? 0 : 20) @@ -839,12 +841,18 @@ struct SetSimplexDomainView: View { Button("Remove name") { simplexName = "" editing = true + DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { nameFocused = true } } } } } .navigationTitle(title) .navigationBarTitleDisplayMode(.large) + .onAppear { + if editing { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) { nameFocused = true } + } + } .onDisappear { if !didSave, changed, isValid { let domain = normalized(simplexName) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SetSimplexNameView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SetSimplexNameView.kt index a7fa9c5983..106869ce50 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SetSimplexNameView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SetSimplexNameView.kt @@ -133,6 +133,10 @@ fun SetSimplexDomainView( SectionView { if (editing.value) { val focusRequester = remember { FocusRequester() } + LaunchedEffect(Unit) { + delay(300) + focusRequester.requestFocus() + } SectionItemViewSpaceBetween(click = { focusRequester.requestFocus() }) { Box(Modifier.fillMaxWidth(), contentAlignment = Alignment.CenterEnd) { PlainTextEditor(name, placeholder = placeholder, contentPadding = PaddingValues(), focusRequester = focusRequester)