Skip to content

Commit 3fcc20b

Browse files
committed
RepoVM 和 UserVM 改成 Observable
1 parent 3890886 commit 3fcc20b

File tree

4 files changed

+19
-14
lines changed

4 files changed

+19
-14
lines changed

SwiftPamphletApp/GitHubAPI/DetailView/RepoView.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ struct RepoView: View {
1212
case normal, readme
1313
}
1414
@EnvironmentObject var appVM: AppVM
15-
@StateObject var vm: RepoVM
15+
@State var vm: RepoVM
1616
@State private var tabSelct = 1
1717
@State var type: EnterType = .normal
1818
var isShowRepoCommitsLink = true

SwiftPamphletApp/GitHubAPI/DetailView/UserView.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import SwiftUI
99

1010
struct UserView: View {
1111
@EnvironmentObject var appVM: AppVM
12-
@StateObject var vm: UserVM
12+
@State var vm: UserVM
1313
var isShowUserEventLink = true
1414
var isCleanUnread = false
1515
@State private var unReadCount = 0

SwiftPamphletApp/GitHubAPI/VM/RepoVM.swift

+9-7
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,21 @@
88
import Foundation
99
import Combine
1010

11+
@Observable
1112
final class RepoVM: APIVMable {
1213
private var cancellables: [AnyCancellable] = []
1314

15+
@ObservationIgnored
1416
public let repoName: String
1517

16-
@Published private(set) var repo: RepoModel
17-
@Published private(set) var commits: [CommitModel]
18-
@Published private(set) var issueEvents: [IssueEventModel]
19-
@Published private(set) var issues: [IssueModel]
20-
@Published private(set) var readme: RepoContent
18+
var repo: RepoModel
19+
var commits: [CommitModel]
20+
var issueEvents: [IssueEventModel]
21+
var issues: [IssueModel]
22+
var readme: RepoContent
2123

22-
@Published var errHint = false
23-
@Published var errMsg = ""
24+
var errHint = false
25+
var errMsg = ""
2426
private let errSj = PassthroughSubject<APISevError, Never>()
2527

2628
private let apiSev: APISev

SwiftPamphletApp/GitHubAPI/VM/UserVM.swift

+8-5
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,21 @@
88
import Foundation
99
import Combine
1010
import AppKit
11+
import Observation
1112

13+
@Observable
1214
final class UserVM: APIVMable {
1315
private var cancellables: [AnyCancellable] = []
1416

17+
@ObservationIgnored
1518
public let userName: String
1619

17-
@Published private(set) var user: UserModel
18-
@Published private(set) var events: [EventModel]
19-
@Published private(set) var receivedEvents: [EventModel]
20+
var user: UserModel
21+
var events: [EventModel]
22+
var receivedEvents: [EventModel]
2023

21-
@Published var errHint = false
22-
@Published var errMsg = ""
24+
var errHint = false
25+
var errMsg = ""
2326
private let errSj = PassthroughSubject<APISevError, Never>()
2427

2528
private let apiSev: APISev

0 commit comments

Comments
 (0)