Fix sidebar update pill cached popover flow (#2142)
* test: cover cached update pill first-click flow * fix: use cached sidebar update popover
This commit is contained in:
parent
049d296267
commit
99ca3c9b9a
5 changed files with 286 additions and 92 deletions
|
|
@ -7,6 +7,7 @@ class UpdateViewModel: ObservableObject {
|
|||
@Published var state: UpdateState = .idle
|
||||
@Published var overrideState: UpdateState?
|
||||
@Published var detectedUpdateVersion: String?
|
||||
@Published private(set) var detectedUpdateItem: SUAppcastItem?
|
||||
#if DEBUG
|
||||
@Published var debugOverrideText: String?
|
||||
#endif
|
||||
|
|
@ -19,15 +20,22 @@ class UpdateViewModel: ObservableObject {
|
|||
effectiveState.isIdle && detectedUpdateVersion != nil
|
||||
}
|
||||
|
||||
var hasCachedDetectedUpdateDetails: Bool {
|
||||
detectedUpdateItem != nil
|
||||
}
|
||||
|
||||
var showsPill: Bool {
|
||||
!effectiveState.isIdle || showsDetectedBackgroundUpdate
|
||||
}
|
||||
|
||||
func recordDetectedUpdate(_ item: SUAppcastItem) {
|
||||
detectedUpdateVersion = Self.normalizedDetectedUpdateVersion(from: item.displayVersionString)
|
||||
let version = Self.normalizedDetectedUpdateVersion(from: item.displayVersionString)
|
||||
detectedUpdateItem = version == nil ? nil : item
|
||||
detectedUpdateVersion = version
|
||||
}
|
||||
|
||||
func clearDetectedUpdate() {
|
||||
detectedUpdateItem = nil
|
||||
detectedUpdateVersion = nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue