@@ -9,6 +9,9 @@ import Combine
9
9
import UIKit
10
10
11
11
final class StickerProgressView : UIView {
12
+
13
+ var stickers : [ StickerTitle ]
14
+
12
15
var cancellable = Set < AnyCancellable > ( )
13
16
14
17
private let workationProgressView : UIProgressView = {
@@ -68,13 +71,13 @@ final class StickerProgressView: UIView {
68
71
private lazy var lockStack : UIStackView = {
69
72
let stackView = UIStackView ( arrangedSubviews: [
70
73
UIView ( ) ,
71
- weekStack ( image: UIImage ( named: " sampleSticker " ) , isUnlocked: true , week: 1 ) ,
74
+ weekStack ( image: UIImage ( named: stickers [ 0 ] . rawValue ) , isUnlocked: UserManager . shared . activeMyInfo ? . progressDay ?? 0 >= 7 , week: 1 ) ,
72
75
UIView ( ) ,
73
- weekStack ( image: UIImage ( named: " sampleSticker " ) , isUnlocked: true , week: 2 ) ,
76
+ weekStack ( image: UIImage ( named: stickers [ 1 ] . rawValue ) , isUnlocked: UserManager . shared . activeMyInfo ? . progressDay ?? 0 >= 14 , week: 2 ) ,
74
77
UIView ( ) ,
75
- weekStack ( image: UIImage ( named: " sampleSticker " ) , isUnlocked: false , week: 3 ) ,
78
+ weekStack ( image: UIImage ( named: stickers [ 2 ] . rawValue ) , isUnlocked: UserManager . shared . activeMyInfo ? . progressDay ?? 0 >= 21 , week: 3 ) ,
76
79
UIView ( ) ,
77
- weekStack ( image: UIImage ( named: " sampleSticker " ) , isUnlocked: false , week: 4 ) ,
80
+ weekStack ( image: UIImage ( named: stickers [ 3 ] . rawValue ) , isUnlocked: UserManager . shared . activeMyInfo ? . progressDay ?? 0 >= 28 , week: 4 ) ,
78
81
UIView ( )
79
82
] )
80
83
stackView. axis = . horizontal
@@ -84,8 +87,9 @@ final class StickerProgressView: UIView {
84
87
return stackView
85
88
} ( )
86
89
87
- override init ( frame: CGRect ) {
88
- super. init ( frame: frame)
90
+ init ( stickers: [ StickerTitle ] ) {
91
+ self . stickers = stickers
92
+ super. init ( frame: . zero)
89
93
90
94
setupLayout ( )
91
95
bind ( )
@@ -131,47 +135,10 @@ final class StickerProgressView: UIView {
131
135
guard let self = self , var user = user else { return }
132
136
DispatchQueue . main. async {
133
137
let offsetDate = Date ( ) . timeIntervalSince ( user. startDate)
134
- let day = Int ( offsetDate/ 86400 )
135
- self . workationProgressView. progress = Float ( day > 0 ? day/ 35 : 0 )
138
+ let day = Float ( offsetDate/ 86400 )
139
+ self . workationProgressView. setProgress ( day > 0 ? day/ 35 : 0 , animated : true )
136
140
}
137
141
}
138
142
. store ( in: & cancellable)
139
143
}
140
144
}
141
-
142
- #if canImport(SwiftUI) && DEBUG
143
- import SwiftUI
144
-
145
- struct StickerProgressViewPreview : PreviewProvider {
146
- static var previews : some View {
147
- UIViewPreview {
148
- let view = StickerProgressView ( frame: . zero)
149
- return view
150
- }
151
- . frame ( width: 310 , height: 90 )
152
- . previewLayout ( . sizeThatFits)
153
- }
154
- }
155
- #endif
156
-
157
- #if canImport(SwiftUI) && DEBUG
158
- import SwiftUI
159
- struct UIViewPreview < View: UIView > : UIViewRepresentable {
160
- let view : View
161
-
162
- init ( _ builder: @escaping ( ) -> View ) {
163
- view = builder ( )
164
- }
165
-
166
- // MARK: - UIViewRepresentable
167
-
168
- func makeUIView( context: Context ) -> UIView {
169
- return view
170
- }
171
-
172
- func updateUIView( _ view: UIView , context: Context ) {
173
- view. setContentHuggingPriority ( . defaultHigh, for: . horizontal)
174
- view. setContentHuggingPriority ( . defaultHigh, for: . vertical)
175
- }
176
- }
177
- #endif
0 commit comments