Commit 1132790778
Verified · cmc
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() } |