Skip to content

Commit 490eb39

Browse files
committed
✨ 스티커 획득 뷰 추가
1 parent 0c90671 commit 490eb39

File tree

4 files changed

+26
-53
lines changed

4 files changed

+26
-53
lines changed

Workade/Managers/FirestoreManager.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,13 @@ class FirestoreDAO {
9292
try await dto.getDocuments(collectionName: region.rawValue).count
9393
}
9494

95-
func getActiveUser(region: Region, uid: String) async throws -> ActiveUser {
95+
func getActiveUser(region: Region, uid: String) async throws {
9696
let document = try await dto.getDocument(collectionName: region.rawValue, documentName: uid)
9797
let data = document.data()
9898
let decoder = JSONDecoder()
9999
let jsonData = try JSONSerialization.data(withJSONObject: data)
100100
let activeUser = try decoder.decode(ActiveUser.self, from: jsonData)
101-
102-
return activeUser
101+
UserManager.shared.activeMyInfo = activeUser
103102
}
104103

105104
func getActiveUsers(region: Region) async throws -> [Job: [ActiveUser]]? {

Workade/SceneDelegate.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,12 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
2323
window?.rootViewController = UINavigationController(rootViewController: ExploreViewController())
2424
window?.makeKeyAndVisible()
2525
Task {
26-
// try Auth.auth().signOut()
26+
// try Auth.auth().signOut()
2727
guard let uid = Auth.auth().currentUser?.uid,
2828
let user = try await FirestoreDAO.shared.getUser(userID: uid),
2929
let region = user.activeRegion
3030
else { return }
31-
async let count = try? await FirestoreDAO.shared.getActiveUsersNumber(region: region)
32-
await window?.rootViewController?.navigationController?.pushViewController(WorkationViewController(region: region, peopleCount: count ?? 0), animated: false)
31+
try await FirestoreDAO.shared.getActiveUser(region: region, uid: uid)
3332
}
3433

3534
if let url = connectionOptions.urlContexts.first?.url {

Workade/Views&ViewModels/Workation/StickerProgress/StickerProgressView.swift

Lines changed: 12 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ import Combine
99
import UIKit
1010

1111
final class StickerProgressView: UIView {
12+
13+
var stickers: [StickerTitle]
14+
1215
var cancellable = Set<AnyCancellable>()
1316

1417
private let workationProgressView: UIProgressView = {
@@ -68,13 +71,13 @@ final class StickerProgressView: UIView {
6871
private lazy var lockStack: UIStackView = {
6972
let stackView = UIStackView(arrangedSubviews: [
7073
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),
7275
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),
7477
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),
7679
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),
7881
UIView()
7982
])
8083
stackView.axis = .horizontal
@@ -84,8 +87,9 @@ final class StickerProgressView: UIView {
8487
return stackView
8588
}()
8689

87-
override init(frame: CGRect) {
88-
super.init(frame: frame)
90+
init(stickers: [StickerTitle]) {
91+
self.stickers = stickers
92+
super.init(frame: .zero)
8993

9094
setupLayout()
9195
bind()
@@ -131,47 +135,10 @@ final class StickerProgressView: UIView {
131135
guard let self = self, var user = user else { return }
132136
DispatchQueue.main.async {
133137
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)
136140
}
137141
}
138142
.store(in: &cancellable)
139143
}
140144
}
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

Workade/Views&ViewModels/Workation/WorkationViewController.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ final class WorkationViewController: UIViewController {
295295
label.textColor = .theme.primary
296296
label.text = "스티커"
297297

298-
let progressView = StickerProgressView()
298+
let progressView = StickerProgressView(stickers: canGetStickers)
299299

300300
let stackView = UIStackView(arrangedSubviews: [label, progressView])
301301
stackView.axis = .vertical
@@ -492,7 +492,15 @@ extension WorkationViewController {
492492
if storedStep < step {
493493
let getStickers = [StickerTitle](canGetStickers[storedStep..<step])
494494
let stickers = getStickers.map { StickerModel(date: Date(), title: $0, region: self.region) }
495-
self.present(StickerSheetViewController(stickers: stickers), animated: true)
495+
let stickerShetViewController = StickerSheetViewController(stickers: stickers)
496+
self.present(stickerShetViewController, animated: true)
497+
let dimView = UIView(frame: UIScreen.main.bounds)
498+
dimView.backgroundColor = .theme.primary.withAlphaComponent(0.8)
499+
view.addSubview(dimView)
500+
view.bringSubviewToFront(dimView)
501+
stickerShetViewController.viewDidDismiss = {
502+
dimView.removeFromSuperview()
503+
}
496504
}
497505
}
498506
}

0 commit comments

Comments
 (0)