Skip to content

Commit

Permalink
feat/#223 약속 상세에서 준비 정보 입력 화면으로 화면 이동 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
youz2me committed Jul 18, 2024
1 parent dd7fa95 commit b6b3582
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@ class ReadyStatusView: BaseView {
$0.clipsToBounds = true
}

private let popUpImageView: UIImageView = UIImageView(image: .imgTextPopup).then {
let popUpImageView: UIImageView = UIImageView(image: .imgTextPopup).then {
$0.contentMode = .scaleAspectFit
$0.isHidden = true
}

private let ourReadyStatusLabel: UILabel = UILabel().then {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,12 @@ class ReadyStatusViewController: BaseViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

// TODO: 서버 통신해서 데이터 바인딩 필요

DispatchQueue.main.async {
self.updateReadyInfoView(flag: self.readyStatusViewModel.isReadyInfoEntered.value)
self.updateReadyInfoView(
flag: self.readyStatusViewModel.isReadyInfoEntered.value
)
self.rootView.ourReadyStatusCollectionView.reloadData()
}
}
Expand All @@ -51,6 +55,7 @@ class ReadyStatusViewController: BaseViewController {
}

override func setupAction() {
// TODO: 각 함수에서 서버 통신 할 수 있도록 설정
rootView.myReadyStatusProgressView.readyStartButton.addTarget(
self,
action: #selector(readyStartButtonDidTapped),
Expand All @@ -66,16 +71,24 @@ class ReadyStatusViewController: BaseViewController {
action: #selector(arrivalButtonDidTapped),
for: .touchUpInside
)
rootView.enterReadyButtonView.addGestureRecognizer(
UITapGestureRecognizer(
target: self,
action: #selector(enterReadyButtonDidTapped)
)
)
}

@objc
func readyStartButtonDidTapped() {
// TODO: 늦었을 때 꾸물거릴 시간이 없어요 팝업 뜨도록 설정
readyStatusViewModel.myReadyStatus.value = .ready
rootView.myReadyStatusProgressView.readyStartButton.isEnabled.toggle()
}

@objc
func moveStartButtonDidTapped() {
// TODO: 늦었을 때 꾸물거릴 시간이 없어요 팝업 뜨도록 설정
readyStatusViewModel.myReadyStatus.value = .move
rootView.myReadyStatusProgressView.moveStartButton.isEnabled.toggle()
}
Expand All @@ -85,6 +98,17 @@ class ReadyStatusViewController: BaseViewController {
readyStatusViewModel.myReadyStatus.value = .done
rootView.myReadyStatusProgressView.arrivalButton.isEnabled.toggle()
}

/// 눌렀을 때 준비 정보 입력하기 화면으로 넘어가도록 설정
@objc
func enterReadyButtonDidTapped() {
let setReadyInfoViewController = SetReadyInfoViewController()

navigationController?.pushViewController(
setReadyInfoViewController,
animated: true
)
}
}

extension ReadyStatusViewController: UICollectionViewDelegate {
Expand Down Expand Up @@ -161,11 +185,18 @@ private extension ReadyStatusViewController {
}
}

/// flag에 따라 준비 정보 입력 버튼 표시 유무 변경
func updateReadyInfoView(flag: Bool) {
rootView.enterReadyButtonView.isHidden = flag
rootView.readyPlanInfoView.isHidden = !flag
}

// TODO: 버튼 눌렀을 때 연결될 수 있도록 설정
/// 준비 시작이나 이동 시작 시간이 늦었을 때 팝업 표시 여부 변경
func updatePopUpImageView(isLate: Bool) {
rootView.popUpImageView.isHidden = !isLate
}

func updateReadyStartButton(status: ReadyStatus) {
switch status {
case .none:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,29 @@ final class SetReadyInfoViewController: BaseViewController {

// MARK: - LifeCycle

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

navigationController?.isNavigationBarHidden = false
}

override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)

navigationController?.isNavigationBarHidden = true
}

override func loadView() {
self.view = rootView
}

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = .white

setupNavigationBarBackButton()
setupNavigationBarTitle(with: "준비 정보 입력하기")

bindViewModel()
}

Expand Down

0 comments on commit b6b3582

Please sign in to comment.