Open task views in a sheet over the left pane
This commit is contained in:
@@ -8,8 +8,6 @@ let goKeys: Set<String> = ["k", "n", "p", "l", "s", "/"]
|
||||
|
||||
@MainActor
|
||||
func runGo(_ key: String, _ store: Store, _ overlays: Overlays) {
|
||||
overlays.image = nil
|
||||
overlays.diagram = nil
|
||||
switch key {
|
||||
case "k":
|
||||
overlays.openSwitcher(store)
|
||||
@@ -21,9 +19,12 @@ func runGo(_ key: String, _ store: Store, _ overlays: Overlays) {
|
||||
case "p":
|
||||
overlays.window?.makeFirstResponder(nil)
|
||||
overlays.projectFocus += 1
|
||||
store.focusTab(.project)
|
||||
if let id = store.selectedTaskId {
|
||||
store.sheet = Sheet(owner: .task(id), view: .tab(.project))
|
||||
}
|
||||
case "l":
|
||||
overlays.switcher?.close()
|
||||
store.sheet = nil
|
||||
overlays.leftTab = .lead
|
||||
overlays.leadFocus += 1
|
||||
case "s":
|
||||
@@ -50,7 +51,7 @@ func createTask(_ projectId: String, _ body: Components.Schemas.TaskCreate, _ st
|
||||
do {
|
||||
let task = try await store.api.client.createTask(path: .init(projectId: projectId), body: .json(body)).created.body.json
|
||||
store.composerFocus = task.id
|
||||
store.focusTask(task.id, .transcript)
|
||||
store.focusTask(task.id)
|
||||
} catch {
|
||||
overlays.showAlert(errorText(error))
|
||||
}
|
||||
@@ -71,11 +72,11 @@ private let shortcuts: [(String, [(String, String)])] = [
|
||||
("⌘K", "Switch task, or create one"),
|
||||
("⌘N", "New task in the current project"),
|
||||
("⌘P", "Open the Project tab"),
|
||||
("⌘L", "Open the Lead tab and its composer"),
|
||||
("⌘L", "Open the Lead tab and its composer, closing any view opened over a pane"),
|
||||
("⌘S", "Merge the right pane's task, or discard it when the agent suggests discarding"),
|
||||
("⌘[ ⌘]", "Bring the previous or next server's window forward"),
|
||||
("⌘/", "Show these shortcuts"),
|
||||
("Esc", "Close the switcher or a dialog"),
|
||||
("Esc", "Close the switcher, a dialog, or a view opened over a pane"),
|
||||
]),
|
||||
("Task switcher", [
|
||||
("Tab", "Switch between the text and the list"),
|
||||
@@ -298,7 +299,7 @@ final class SwitcherModel {
|
||||
store.showQuestion(taskId)
|
||||
} else {
|
||||
store.composerFocus = taskId
|
||||
store.focusTask(taskId, .transcript)
|
||||
store.focusTask(taskId)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,7 +317,7 @@ final class SwitcherModel {
|
||||
let ids = try await uploadImages(store.api, imgs)
|
||||
let task = try await store.api.client.createTask(path: .init(projectId: projectId), body: .json(.init(prompt: message.isEmpty ? nil : message, images: ids, model: store.defaultModel))).created.body.json
|
||||
store.composerFocus = task.id
|
||||
store.focusTask(task.id, .transcript)
|
||||
store.focusTask(task.id)
|
||||
} catch {
|
||||
overlays.openSwitcher(store)
|
||||
if let s = overlays.switcher {
|
||||
|
||||
Reference in New Issue
Block a user