Skip to content

Commit

Permalink
[CHORE] 버튼에 대한 publisher 삭제 (#604)
Browse files Browse the repository at this point in the history
  • Loading branch information
MMMIIIN committed Feb 18, 2024
1 parent dd6c61b commit 5dc58de
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,9 @@ final class DetailEditViewController: UIViewController {
})
.store(in: &self.cancellable)

self.detailEditView.calendarView.buttonStatePublisher
.sink(receiveValue: { [weak self] value in
self?.detailEditView.setupChangeButton(value)
self.detailEditView.calendarView.startDateTapPublisher.combineLatest(self.detailEditView.calendarView.endDateTapPublisher)
.sink(receiveValue: { [weak self] startText, endText in
self?.detailEditView.setupChangeButton(startText != "" && endText != "")
})
.store(in: &self.cancellable)
}
Expand Down
18 changes: 7 additions & 11 deletions Manito/Manito/Screens/Detail-Wait/UIComponent/CalendarView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ final class CalendarView: UIView {

let startDateTapPublisher: PassthroughSubject<String, Never> = PassthroughSubject()
let endDateTapPublisher: PassthroughSubject<String, Never> = PassthroughSubject()
let buttonStatePublisher: CurrentValueSubject<Bool, Never> = CurrentValueSubject(false)

// MARK: - init

Expand Down Expand Up @@ -112,17 +111,13 @@ final class CalendarView: UIView {
}
self.previousButton.addAction(action, for: .touchUpInside)
}

private func setupNextButton() {
let action = UIAction { [weak self] _ in
self?.changeMonth(with: CalendarMoveType.next)
}
self.nextButton.addAction(action, for: .touchUpInside)
}

private func setupButtonState() {
let hasDate = !self.startDateText.isEmpty && !self.endDateText.isEmpty
self.buttonStatePublisher.send(hasDate)
}

private func setupDelegation() {
self.calendar.delegate = self
Expand Down Expand Up @@ -176,7 +171,6 @@ final class CalendarView: UIView {
}
self.startDateText = self.calendar.selectedDates[startIndex].toDefaultString
self.endDateText = self.calendar.selectedDates[endIndex].toDefaultString
self.setupButtonState()
}

private func countDateRange() -> Int {
Expand Down Expand Up @@ -212,6 +206,7 @@ final class CalendarView: UIView {
}

extension CalendarView: FSCalendarDelegate {
/// 캘린더의 날짜를 선택했을 때 실행되는 함수.
func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
self.isFirstTap = true
let isCreatedRoomOnlySelectedStartDate = calendar.selectedDates.count == 1
Expand Down Expand Up @@ -245,22 +240,22 @@ extension CalendarView: FSCalendarDelegate {

self.startDateTapPublisher.send(self.getStartDate())
self.endDateTapPublisher.send(self.getEndDate())
self.setupButtonState()
}


/// 이미 선택 되어있는 날짜를 클릭했을 때 실행되는 함수.
func calendar(_ calendar: FSCalendar, didDeselect date: Date, at monthPosition: FSCalendarMonthPosition) {
self.endDateText = ""
self.endDateTapPublisher.send("")
self.isFirstTap = true
(calendar.selectedDates).forEach {
calendar.deselect($0)
}
self.selectStartDate = date
calendar.select(date)
calendar.reloadData()
self.endDateTapPublisher.send(self.getEndDate())
self.setupButtonState()
}

/// 선택할 수 없는 날짜 지정 함수
func calendar(_ calendar: FSCalendar, shouldSelect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool {
if date < Date() - .oneDayInterval {
self.viewController?.makeAlert(title: TextLiteral.Common.Calendar.pastAlertTitle.localized(),
Expand All @@ -271,6 +266,7 @@ extension CalendarView: FSCalendarDelegate {
}
}

/// 캘린더의 숫자 색에 대한 함수
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, titleDefaultColorFor date: Date) -> UIColor? {
let isBeforeToday = date < Date() - .oneDayInterval
let isAWeekBeforeAfter = date < self.selectStartDate + .sevenDaysInterval && date > self.selectStartDate - .sevenDaysInterval
Expand Down

0 comments on commit 5dc58de

Please sign in to comment.