Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] 마이페이지 > 모집 중인 모임 기능 구현 #222

Merged
merged 19 commits into from
Mar 19, 2023

Conversation

soobin-k
Copy link
Contributor

📌 PR 요약

마이페이지 > 모집 중인 모임 기능 구현

🌱 작업한 내용

  • 모임 없을때 noneView 추가
  • 모집 중인 모임 UI 작업
  • 지원자 조회 API 연결
  • 모임 상세 조회 API 연결
  • 지원자 승낙 API 연결
  • 지원자 거절 API 연결
  • 기타 이슈 수정

🌱 PR 포인트

CustomAlertView

  • PLUB 커스텀 알림창을 공통으로 쓸 수 있도록 만들어 보았습니다.
    • 확인 버튼을 누를 때만 completionHandler와 연결
    • AlertModel의 알림창 제목, 확인 버튼 이름만 필수값입니다.
    • 주로 마이페이지에서 자주 사용되는 것 같습니다.
    • 텍스트 영역 레이아웃이 피그마와 상이한 부분이 있는데, 이는 다음 pr때 고도화해서 올리겠습니다.
struct AlertModel {
  let title: String // 알림창 제목
  let message: String? // 알림창 내용
  let cancelButton: String? // 취소 버튼 이름
  let confirmButton: String // 확인 버튼 이름
  let height: Int? // 알림창 높이
}

final class CustomAlertView: UIView {
  private let model: AlertModel
  private let disposeBag = DisposeBag()
  
  typealias CompletionHandler = () -> Void
  private var completionHandler: CompletionHandler?

    confirmButton.rx.tap
      .asDriver()
      .drive(with: self) { owner, _ in
        owner.completionHandler?()
        owner.dismiss()
      }
      .disposed(by: disposeBag)
}

// 사용 코드
    let alert = CustomAlertView(
      AlertModel(
        title: "해당 지원자를\n거절하시겠어요?",
        message: nil,
        cancelButton: "취소",
        confirmButton: "거절하기",
        height: 210
      )
    ) { [weak self] in
      guard let self = self else { return }
      self.viewModel.refuseApplicant.onNext((
        sectionIndex: sectionIndex,
        accountID: accountID
      ))
    }
    alert.show()

스크린샷 2023-03-19 오전 4 54 52

📸 스크린샷

  • 모임 없을 경우
RPReplay_Final1679149476.MP4
  • 모집 중인 모임
    • 영상속 받기 버튼 누르고 잠시 딜레이가 있는데 breakpoint 때문입니다. 참고 부탁드립니다.
RPReplay_Final1679175419.MP4

📮 관련 이슈

@soobin-k soobin-k requested review from dlrjswns and WhiteHyun and removed request for dlrjswns March 18, 2023 22:08
@soobin-k soobin-k self-assigned this Mar 18, 2023
@soobin-k soobin-k requested a review from dlrjswns March 18, 2023 22:08
@soobin-k soobin-k added 🍎 ConfigureUI 화면 프로토타입 UI 구현 D+1 PR올린 다음날 까지는 리뷰 부탁드립니다 👤 MyPage labels Mar 18, 2023
Comment on lines +125 to +128
let date = DateFormatter().then {
$0.dateFormat = "yyyy-MM-dd HH:mm:ss"
$0.locale = Locale(identifier: "ko_KR")
}.date(from: time) ?? Date()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[단순 의견] 해당 DateFormatter()가 다른 곳에서도 많이 쓰이는데, 따로 Extension으로 빼서 사용하는 건 어떻게 생각하시나요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

너무 좋은 것 같습니다 이건 따로 이슈로 작성해서 올릴게요!

}
}

struct Application: Codable {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Application이라는 녀석이 Profile을 얘기하는 건가요?

Copy link
Member

@WhiteHyun WhiteHyun Mar 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

만약 그렇다면, Application보다는 UserProfile을 쓰는 건 어떤가요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Application은 모임의 지원서를 의미합니다! 음 Profile과는 다른 의미라고 생각됩니다.

@soobin-k soobin-k merged commit 557eae2 into develop Mar 19, 2023
@soobin-k soobin-k deleted the feat/130-MyPage/Recruiting branch March 19, 2023 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🍎 ConfigureUI 화면 프로토타입 UI 구현 D+1 PR올린 다음날 까지는 리뷰 부탁드립니다 👤 MyPage
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants