Commit 1132790778

1132790778bf29a552b596801be767c483cfca74

parent: 44312d0fdf

Verified · cmc

cmc <hello@cleberg.net> · 2026-09-30 02:05 UTC

Open the new issue after creating it

Layout: unified · split

gitbay/Views/Issues/IssueListView.swift +9 −1
@@ -9,8 +9,12 @@ struct IssueListView: View {
9 @State private var draftTitle = "" 9 @State private var draftTitle = ""
10 @State private var draftBody = "" 10 @State private var draftBody = ""
11 @State private var draftFormat = "md" 11 @State private var draftFormat = "md"
12 @State private var createdIssue: Int64?
13
14 private let client: GitbayClient
12 15
13 init(client: GitbayClient, repo: String) { 16 init(client: GitbayClient, repo: String) {
17 self.client = client
14 _model = State(initialValue: IssueListViewModel(client: client, repoPath: repo)) 18 _model = State(initialValue: IssueListViewModel(client: client, repoPath: repo))
15 _createModel = State(initialValue: IssueCreateViewModel(client: client, repoPath: repo)) 19 _createModel = State(initialValue: IssueCreateViewModel(client: client, repoPath: repo))
16 } 20 }
@@ -92,16 +96,20 @@ struct IssueListView: View {
92 ) { 96 ) {
93 createModel.format = draftFormat 97 createModel.format = draftFormat
94 Task { 98 Task {
95 if await createModel.create(title: draftTitle, body: draftBody) != nil { 99 if let number = await createModel.create(title: draftTitle, body: draftBody) {
96 draftTitle = "" 100 draftTitle = ""
97 draftBody = "" 101 draftBody = ""
98 draftFormat = "md" 102 draftFormat = "md"
99 composing = false 103 composing = false
104 createdIssue = number
100 await model.load() 105 await model.load()
101 } 106 }
102 } 107 }
103 } 108 }
104 } 109 }
110 .navigationDestination(item: $createdIssue) { number in
111 IssueView(client: client, repo: model.repoPath, number: number)
112 }
105 .task { await model.loadIfNeeded() } 113 .task { await model.loadIfNeeded() }
106 .task { await createModel.loadTemplates() } 114 .task { await createModel.loadTemplates() }
107 .refreshable { await model.load() } 115 .refreshable { await model.load() }