Skip to content

Commit

Permalink
Add fixes after merge latest changes
Browse files Browse the repository at this point in the history
  • Loading branch information
ivan-magda committed Nov 9, 2023
1 parent 37b6e99 commit b8f8109
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,7 @@ struct StepView: View {
case .showProblemOfDaySolvedModal(let showProblemOfDaySolvedModalViewAction):
presentDailyStepCompletedModal(
earnedGemsText: showProblemOfDaySolvedModalViewAction.earnedGemsText,
streakText: showProblemOfDaySolvedModalViewAction.streakText,
streak: showProblemOfDaySolvedModalViewAction.streak?.intValue
shareStreakData: showProblemOfDaySolvedModalViewAction.shareStreakData
)
case .showShareStreakModal(let showShareStreakModalViewAction):
presentShareStreakModal(streak: Int(showShareStreakModalViewAction.streak))
Expand Down Expand Up @@ -153,13 +152,11 @@ extension StepView {

private func presentDailyStepCompletedModal(
earnedGemsText: String,
streakText: String?,
streak: Int?
shareStreakData: StepCompletionFeatureShareStreakData
) {
let modal = ProblemOfDaySolvedModalViewController(
earnedGemsText: earnedGemsText,
streakText: streakText,
streak: streak,
shareStreakData: StepCompletionFeatureShareStreakDataKs(shareStreakData),
delegate: viewModel
)
panModalPresenter.presentPanModal(modal)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import PanModal
import shared
import SnapKit
import UIKit

Expand Down Expand Up @@ -40,8 +41,7 @@ final class ProblemOfDaySolvedModalViewController: PanModalPresentableViewContro
private(set) var appearance = Appearance()

private let earnedGemsText: String
private let streakText: String?
private let streak: Int?
private let shareStreakData: StepCompletionFeatureShareStreakDataKs

private lazy var contentStackView: UIStackView = {
let stackView = UIStackView()
Expand All @@ -62,13 +62,11 @@ final class ProblemOfDaySolvedModalViewController: PanModalPresentableViewContro

init(
earnedGemsText: String,
streakText: String?,
streak: Int?,
shareStreakData: StepCompletionFeatureShareStreakDataKs,
delegate: ProblemOfDaySolvedModalViewControllerDelegate?
) {
self.earnedGemsText = earnedGemsText
self.streakText = streakText
self.streak = streak
self.shareStreakData = shareStreakData
self.delegate = delegate
super.init()
}
Expand Down Expand Up @@ -198,13 +196,16 @@ final class ProblemOfDaySolvedModalViewController: PanModalPresentableViewContro
)
)

if let streakText {
switch shareStreakData {
case .content(let data):
itemsStackView.addArrangedSubview(
makeItemView(
imageResource: .navigationBarStreakCompleted,
text: streakText
text: data.streakText
)
)
case .empty:
break
}
}

Expand Down Expand Up @@ -232,19 +233,20 @@ final class ProblemOfDaySolvedModalViewController: PanModalPresentableViewContro
make.height.equalTo(appearance.buttonHeight)
}

guard streakText != nil && streak != nil else {
return
}

let shareStreakButton = UIKitRoundedRectangleButton(style: .outline)
shareStreakButton.setTitle(Strings.StepQuiz.ProblemOfDaySolvedModal.shareStreakButton, for: .normal)
shareStreakButton.addTarget(self, action: #selector(shareStreakButtonTapped), for: .touchUpInside)

stackView.addArrangedSubview(shareStreakButton)
shareStreakButton.translatesAutoresizingMaskIntoConstraints = false
shareStreakButton.snp.makeConstraints { make in
make.width.equalToSuperview()
make.height.equalTo(appearance.buttonHeight)
switch shareStreakData {
case .content:
let shareStreakButton = UIKitRoundedRectangleButton(style: .outline)
shareStreakButton.setTitle(Strings.StepQuiz.ProblemOfDaySolvedModal.shareStreakButton, for: .normal)
shareStreakButton.addTarget(self, action: #selector(shareStreakButtonTapped), for: .touchUpInside)

stackView.addArrangedSubview(shareStreakButton)
shareStreakButton.translatesAutoresizingMaskIntoConstraints = false
shareStreakButton.snp.makeConstraints { make in
make.width.equalToSuperview()
make.height.equalTo(appearance.buttonHeight)
}
case .empty:
break
}
}

Expand All @@ -256,20 +258,25 @@ final class ProblemOfDaySolvedModalViewController: PanModalPresentableViewContro

@objc
private func shareStreakButtonTapped() {
guard let streak else {
return assertionFailure("ProblemOfDaySolvedModalViewController: streak is nil")
switch shareStreakData {
case .content(let data):
delegate?.problemOfDaySolvedModalViewControllerDidTapShareStreakButton(self, streak: Int(data.streak))
case .empty:
assertionFailure("ProblemOfDaySolvedModalViewController: unexpected state")
}

delegate?.problemOfDaySolvedModalViewControllerDidTapShareStreakButton(self, streak: streak)
}
}

@available(iOS 17, *)
#Preview {
ProblemOfDaySolvedModalViewController(
earnedGemsText: "+3 gems",
streakText: "5 days streak",
streak: 5,
shareStreakData: .content(
StepCompletionFeatureShareStreakDataContent(
streakText: "5 days streak",
streak: 5
)
),
delegate: nil
)
}
Expand All @@ -278,8 +285,7 @@ final class ProblemOfDaySolvedModalViewController: PanModalPresentableViewContro
#Preview {
ProblemOfDaySolvedModalViewController(
earnedGemsText: "+3 gems",
streakText: nil,
streak: nil,
shareStreakData: .empty,
delegate: nil
)
}

0 comments on commit b8f8109

Please sign in to comment.