ios: fix keyboard behavior
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user