Skip to content

Commit b3ed278

Browse files
merge with UKAvatar
2 parents f09f40e + 09eb230 commit b3ed278

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

Sources/ComponentsKit/Components/Avatar/SwiftUI/AvatarContent.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ struct AvatarContent: View {
66
var model: AvatarVM
77

88
@StateObject private var imageManager: AvatarImageManager
9+
@Environment(\.colorScheme) private var colorScheme
910

1011
// MARK: - Initialization
1112

@@ -29,6 +30,9 @@ struct AvatarContent: View {
2930
.onChange(of: self.model) { newValue in
3031
self.imageManager.update(model: newValue, size: geometry.size)
3132
}
33+
.onChange(of: self.colorScheme) { _ in
34+
self.imageManager.update(model: self.model, size: geometry.size)
35+
}
3236
}
3337
}
3438
}

Sources/ComponentsKit/Components/Avatar/UIKit/UKAvatar.swift

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ open class UKAvatar: UIImageView, UKComponent {
4646
self.cancellable = self.imageManager.$avatarImage
4747
.receive(on: DispatchQueue.main)
4848
.sink { self.image = $0 }
49+
50+
if #available(iOS 17.0, *) {
51+
self.registerForTraitChanges([UITraitUserInterfaceStyle.self]) { (view: Self, _: UITraitCollection) in
52+
view.handleTraitChanges()
53+
}
54+
}
4955
}
5056

5157
// MARK: - Style
@@ -89,4 +95,17 @@ open class UKAvatar: UIImageView, UKComponent {
8995
let side = min(minProvidedSide, minPreferredSide)
9096
return CGSize(width: side, height: side)
9197
}
98+
99+
open override func traitCollectionDidChange(
100+
_ previousTraitCollection: UITraitCollection?
101+
) {
102+
super.traitCollectionDidChange(previousTraitCollection)
103+
self.handleTraitChanges()
104+
}
105+
106+
// MARK: Helpers
107+
108+
@objc private func handleTraitChanges() {
109+
self.imageManager.update(model: self.model, size: self.bounds.size)
110+
}
92111
}

0 commit comments

Comments
 (0)