File tree Expand file tree Collapse file tree 2 files changed +23
-0
lines changed
Sources/ComponentsKit/Components/Avatar Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments