diff --git a/BeforeGoing/Presentation/Common/Calendar/CalendarViewController.swift b/BeforeGoing/Presentation/Common/Calendar/CalendarViewController.swift index 28f138f..6339ed1 100644 --- a/BeforeGoing/Presentation/Common/Calendar/CalendarViewController.swift +++ b/BeforeGoing/Presentation/Common/Calendar/CalendarViewController.swift @@ -26,7 +26,7 @@ final class CalendarViewController: BaseViewController { } return date } - private lazy var selectedDate = currentDate + lazy var selectedDate = currentDate private var selectableStartDate: Date? private var selectableEndDate: Date? private let formatter: DateFormatter = { diff --git a/BeforeGoing/Presentation/Feature/Home/View/HomeHeaderView.swift b/BeforeGoing/Presentation/Feature/Home/View/HomeHeaderView.swift index 2bddbec..526e600 100644 --- a/BeforeGoing/Presentation/Feature/Home/View/HomeHeaderView.swift +++ b/BeforeGoing/Presentation/Feature/Home/View/HomeHeaderView.swift @@ -115,12 +115,11 @@ final class HomeHeaderView: BaseView { } bubbleView.snp.makeConstraints { $0.top.equalTo(dateStackView.snp.bottom).offset(16.adjustedH) - $0.leading.greaterThanOrEqualToSuperview().inset(20.adjustedW) - $0.trailing.lessThanOrEqualToSuperview().inset(20.adjustedW) + $0.leading.greaterThanOrEqualToSuperview().inset(5.adjustedW) + $0.trailing.lessThanOrEqualToSuperview().inset(5.adjustedW) $0.centerX.equalToSuperview() $0.height.equalTo(62.adjustedH) } - wordLabel.snp.makeConstraints { $0.edges.equalToSuperview().inset( UIEdgeInsets(top: 8, left: 25, bottom: 8, right: 25) diff --git a/BeforeGoing/Presentation/Feature/Home/View/UserScenarioModalView.swift b/BeforeGoing/Presentation/Feature/Home/View/UserScenarioModalView.swift index 177e077..924fdd5 100644 --- a/BeforeGoing/Presentation/Feature/Home/View/UserScenarioModalView.swift +++ b/BeforeGoing/Presentation/Feature/Home/View/UserScenarioModalView.swift @@ -140,13 +140,12 @@ extension UserScenarioModalView { taskTextField.text = completeText } - func updatePlaceHolder(text: String) { - taskTextField.placeholder = text - } - - func updateTaskField(isEnable: Bool) { - taskTextField.currentType = isEnable ? .enableAddField : .disableAddField - taskTextField.isEnabled = isEnable + func updateTaskField(isEnabled: Bool, text: String) { + taskTextField.do { + $0.currentType = isEnabled ? .enableAddField : .disableAddField + $0.isEnabled = isEnabled + $0.placeholder = text + } } func enableAddTaskButton() { diff --git a/BeforeGoing/Presentation/Feature/Home/ViewController/HomeViewController.swift b/BeforeGoing/Presentation/Feature/Home/ViewController/HomeViewController.swift index d91eea0..dae8243 100644 --- a/BeforeGoing/Presentation/Feature/Home/ViewController/HomeViewController.swift +++ b/BeforeGoing/Presentation/Feature/Home/ViewController/HomeViewController.swift @@ -12,6 +12,7 @@ import UIKit final class HomeViewController: BaseViewController { private let rootView = HomeView() + private let calendarViewController = CalendarViewController() private let homeViewModel: HomeViewModel private let getScenariosViewModel: GetAllScenariosViewModel private let locationManager = CLLocationManager() @@ -40,19 +41,19 @@ final class HomeViewController: BaseViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - let currentDate = DateUtil.getCurrentDate() - let currentDateString = DateUtil.getCurrentDate(format: "yyyy-MM-dd") + let selectedDate = calendarViewController.selectedDate + let dateString = DateUtil.toAPIDateString(date: selectedDate) - getScenarios(currentDate: currentDateString) + getScenarios(currentDate: dateString) checkLoactionAuthorization() - updateWeatherInformation(date: currentDate) } override func viewDidLoad() { super.viewDidLoad() - + setLocationManager() requestDate() + updateWeatherInformation(date: DateUtil.getCurrentDate()) } override func touchesBegan(_ touches: Set, with event: UIEvent?) { @@ -62,6 +63,7 @@ final class HomeViewController: BaseViewController { override func setAction() { setGesture() + rootView.headerView.viewCalendarButton.addTarget( self, action: #selector(viewCalendarButtonDidTap), @@ -115,8 +117,10 @@ final class HomeViewController: BaseViewController { } self.homeDate = result.date rootView.headerView.updateDateUI(date: result.date) - rootView.modalView.updatePlaceHolder(text: "\(monthAndDay)의 미션을 추가해요") - rootView.modalView.updateTaskField(isEnable: true) + rootView.modalView.updateTaskField( + isEnabled: true, + text: "\(monthAndDay)의 미션을 추가해요" + ) } catch (let error) { self.handleError(error) BeforeGoingLogger.error(error) @@ -267,13 +271,12 @@ extension HomeViewController: ToastPresentable { @objc private func viewCalendarButtonDidTap() { - let calendar = CalendarViewController() - calendar.modalPresentationStyle = .overFullScreen + calendarViewController.modalPresentationStyle = .overFullScreen - initSelectedDate(calendar: calendar) + initSelectedDate(calendarViewController: calendarViewController) - calendar.onDayDidTap = { [weak self] date in - let dateString = DateUtil.toString(date: date) + calendarViewController.onDayDidTap = { [weak self] date in + let dateString = DateUtil.toHomeDateString(date: date) let currentDate = DateUtil.getCurrentDate() guard let self = self, @@ -290,7 +293,7 @@ extension HomeViewController: ToastPresentable { updateWeatherInformation(date: date) } - calendar.onDismiss = { [weak self] in + calendarViewController.onDismiss = { [weak self] in guard let homeDate = self?.homeDate, let date = DateUtil.convertDateFormat(dateString: homeDate) else { return @@ -298,7 +301,7 @@ extension HomeViewController: ToastPresentable { self?.getScenarios(currentDate: date) } - self.present(calendar, animated: true) + self.present(calendarViewController, animated: true) } @objc @@ -407,12 +410,12 @@ extension HomeViewController: ToastPresentable { pushManageScenario(navigationController: navigationController) } - private func initSelectedDate(calendar: CalendarViewController) { + private func initSelectedDate(calendarViewController: CalendarViewController) { if let homeDateString = self.homeDate, let date = DateUtil.toDate(dateString: homeDateString) { - calendar.initialSelectedDate = date + calendarViewController.initialSelectedDate = date } else { - calendar.initialSelectedDate = DateUtil.getCurrentDate() + calendarViewController.initialSelectedDate = DateUtil.getCurrentDate() } } @@ -424,7 +427,7 @@ extension HomeViewController: ToastPresentable { ) { self.homeDate = dateString updateHeaderDate(date: dateString) - updatePlaceHolderByDate( + updateTaskByDate( date: date, currentDate: currentDate, monthAndDay: monthAndDay @@ -457,22 +460,22 @@ extension HomeViewController: ToastPresentable { self.rootView.headerView.updateDateUI(date: date) } - private func updatePlaceHolderByDate( + private func updateTaskByDate( date: Date, currentDate: Date, monthAndDay: String ) { if date >= currentDate { - self.rootView.modalView.do { - $0.updatePlaceHolder(text: "\(monthAndDay)의 미션을 추가해요") - $0.updateTaskField(isEnable: true) - } + self.rootView.modalView.updateTaskField( + isEnabled: true, + text: "\(monthAndDay)의 미션을 추가해요" + ) return } - self.rootView.modalView.do { - $0.updatePlaceHolder(text: "지난 날짜의 리스트는 추가할 수 없어요") - $0.updateTaskField(isEnable: false) - } + self.rootView.modalView.updateTaskField( + isEnabled: false, + text: "지난 날짜의 리스트는 추가할 수 없어요" + ) } private func moveScenarioTab() -> BottomNavigationViewController? { diff --git a/BeforeGoing/Presentation/Util/DateUtil.swift b/BeforeGoing/Presentation/Util/DateUtil.swift index 0a9ff82..b56b44a 100644 --- a/BeforeGoing/Presentation/Util/DateUtil.swift +++ b/BeforeGoing/Presentation/Util/DateUtil.swift @@ -64,10 +64,14 @@ struct DateUtil { return dateFormatter.string(from: date) } - static func toString(date: Date) -> String { + static func toHomeDateString(date: Date) -> String { return homeDateformatter.string(from: date) } + static func toAPIDateString(date: Date) -> String { + return apiDateFormatter.string(from: date) + } + static func toDate(dateString: String) -> Date? { return homeDateformatter.date(from: dateString) }