ios: fix keyboard behavior

This commit is contained in:
2026-05-03 21:52:49 -07:00
parent d1140d21d4
commit 4bc0773d35
3 changed files with 45 additions and 10 deletions

View File

@@ -62,6 +62,14 @@ struct SybilWorkspaceView: View {
return "chat:none"
}
private var shouldAutoFocusComposer: Bool {
viewModel.displayedMessages.isEmpty
}
private var composerFocusPolicyID: String {
"\(transcriptScrollContextID):\(composerFocusRequest):\(shouldAutoFocusComposer)"
}
private var canSwipeToCreateChat: Bool {
guard onRequestNewChat != nil else {
return false
@@ -124,8 +132,8 @@ struct SybilWorkspaceView: View {
}
resetNewChatSwipe(animated: false)
}
.task(id: composerFocusRequest) {
await focusComposerIfRequested()
.task(id: composerFocusPolicyID) {
await applyComposerFocusPolicy()
}
}
@@ -346,15 +354,13 @@ struct SybilWorkspaceView: View {
}
@MainActor
private func focusComposerIfRequested() async {
guard composerFocusRequest > 0 else {
private func applyComposerFocusPolicy() async {
guard shouldAutoFocusComposer else {
composerFocused = false
return
}
await Task.yield()
try? await Task.sleep(for: .milliseconds(80))
guard viewModel.showsComposer, !viewModel.isSearchMode else {
guard shouldAutoFocusComposer, viewModel.showsComposer else {
return
}
composerFocused = true