Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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<UITouch>, with event: UIEvent?) {
Expand All @@ -62,6 +63,7 @@ final class HomeViewController: BaseViewController {

override func setAction() {
setGesture()

rootView.headerView.viewCalendarButton.addTarget(
self,
action: #selector(viewCalendarButtonDidTap),
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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,
Expand All @@ -290,15 +293,15 @@ 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
}

self?.getScenarios(currentDate: date)
}
self.present(calendar, animated: true)
self.present(calendarViewController, animated: true)
}

@objc
Expand Down Expand Up @@ -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()
}
}

Expand All @@ -424,7 +427,7 @@ extension HomeViewController: ToastPresentable {
) {
self.homeDate = dateString
updateHeaderDate(date: dateString)
updatePlaceHolderByDate(
updateTaskByDate(
date: date,
currentDate: currentDate,
monthAndDay: monthAndDay
Expand Down Expand Up @@ -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? {
Expand Down
6 changes: 5 additions & 1 deletion BeforeGoing/Presentation/Util/DateUtil.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
Loading