Digital ACT-191 ONEAPP-7016 story: Hide/Show indicators by toggling on/off
This commit is contained in:
parent
a6b06f5076
commit
c45775759a
@ -31,12 +31,11 @@ class CalendarViewController: BaseViewController<CalendarBase> {
|
|||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
addContentTopView(view: component)
|
addContentTopView(view: component)
|
||||||
|
|
||||||
setupPicker()
|
setupPicker()
|
||||||
setupModel()
|
setupModel()
|
||||||
}
|
}
|
||||||
|
|
||||||
override func setupForm() {
|
override func setupForm() {
|
||||||
super.setupForm()
|
super.setupForm()
|
||||||
configurePicker(datePickerOne)
|
configurePicker(datePickerOne)
|
||||||
@ -52,7 +51,7 @@ class CalendarViewController: BaseViewController<CalendarBase> {
|
|||||||
indicators = [
|
indicators = [
|
||||||
.init(label: "Due Date", date: datePickerOne.date),
|
.init(label: "Due Date", date: datePickerOne.date),
|
||||||
.init(label: "Auto Pay", date: datePickerTwo.date),
|
.init(label: "Auto Pay", date: datePickerTwo.date),
|
||||||
.init(label: "Scheduled", date: datePickerTwo.date),
|
.init(label: "Scheduled", date: datePickerTwo.date)
|
||||||
]
|
]
|
||||||
|
|
||||||
//add form rows
|
//add form rows
|
||||||
@ -92,6 +91,41 @@ class CalendarViewController: BaseViewController<CalendarBase> {
|
|||||||
[weak self] text in
|
[weak self] text in
|
||||||
self?.updateIndicatorData(label: text, date: self?.datePickerThree.date, index: 2)
|
self?.updateIndicatorData(label: text, date: self?.datePickerThree.date, index: 2)
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
|
indicatorOneSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
if !sender.isOn {
|
||||||
|
component.indicators.removeAll()
|
||||||
|
} else {
|
||||||
|
self.setIndicatorsData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
indicatorTwoSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
if !sender.isOn {
|
||||||
|
if component.indicators.count > 2 {
|
||||||
|
component.indicators.removeLast()
|
||||||
|
component.indicators.removeLast()
|
||||||
|
} else if component.indicators.count == 2 {
|
||||||
|
component.indicators.removeLast()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
self.setIndicatorsData()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
indicatorThreeSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
if !sender.isOn {
|
||||||
|
if component.indicators.count > 2 {
|
||||||
|
component.indicators.removeLast()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
self.setIndicatorsData()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
@ -106,6 +140,9 @@ class CalendarViewController: BaseViewController<CalendarBase> {
|
|||||||
legendOneField.text = "Due Date"
|
legendOneField.text = "Due Date"
|
||||||
legendTwoField.text = "Auto Pay"
|
legendTwoField.text = "Auto Pay"
|
||||||
legendThreeField.text = "Scheduled"
|
legendThreeField.text = "Scheduled"
|
||||||
|
indicatorOneSwitch.isOn = true
|
||||||
|
indicatorTwoSwitch.isOn = true
|
||||||
|
indicatorThreeSwitch.isOn = true
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateIndicatorData(label: String = "", date: Date?, index:Int) {
|
func updateIndicatorData(label: String = "", date: Date?, index:Int) {
|
||||||
@ -113,7 +150,27 @@ class CalendarViewController: BaseViewController<CalendarBase> {
|
|||||||
indicators[index].date = date ?? Date()
|
indicators[index].date = date ?? Date()
|
||||||
component.indicators = indicators
|
component.indicators = indicators
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setIndicatorsData() {
|
||||||
|
if indicatorOneSwitch.isOn && indicatorTwoSwitch.isOn && indicatorThreeSwitch.isOn {
|
||||||
|
component.indicators = [
|
||||||
|
.init(label: self.legendOneField.text ?? "", date: datePickerOne.date),
|
||||||
|
.init(label: self.legendTwoField.text ?? "", date: datePickerTwo.date),
|
||||||
|
.init(label: self.legendThreeField.text ?? "", date: datePickerTwo.date)
|
||||||
|
]
|
||||||
|
} else if indicatorOneSwitch.isOn && indicatorTwoSwitch.isOn && !indicatorThreeSwitch.isOn {
|
||||||
|
component.indicators = [
|
||||||
|
.init(label: self.legendOneField.text ?? "", date: datePickerOne.date),
|
||||||
|
.init(label: self.legendTwoField.text ?? "", date: datePickerTwo.date),
|
||||||
|
]
|
||||||
|
|
||||||
|
} else if indicatorOneSwitch.isOn && !indicatorTwoSwitch.isOn {
|
||||||
|
component.indicators = [
|
||||||
|
.init(label: self.legendOneField.text ?? "", date: datePickerOne.date),
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func configurePicker(_ sender:UIDatePicker) {
|
func configurePicker(_ sender:UIDatePicker) {
|
||||||
// Set some of UIDatePicker properties
|
// Set some of UIDatePicker properties
|
||||||
sender.timeZone = NSTimeZone.local
|
sender.timeZone = NSTimeZone.local
|
||||||
@ -132,7 +189,7 @@ class CalendarViewController: BaseViewController<CalendarBase> {
|
|||||||
dateFormatter.dateFormat = "MM/dd/yyyy hh:mm a"
|
dateFormatter.dateFormat = "MM/dd/yyyy hh:mm a"
|
||||||
|
|
||||||
// Apply date format
|
// Apply date format
|
||||||
// let selectedDate: String = dateFormatter.string(from: sender.date)
|
// let selectedDate: String = dateFormatter.string(from: sender.date)
|
||||||
|
|
||||||
switch sender.tag {
|
switch sender.tag {
|
||||||
case 1: updateIndicatorData(label: legendOneField.text ?? "", date: sender.date, index: 0)
|
case 1: updateIndicatorData(label: legendOneField.text ?? "", date: sender.date, index: 0)
|
||||||
@ -140,6 +197,6 @@ class CalendarViewController: BaseViewController<CalendarBase> {
|
|||||||
case 3: updateIndicatorData(label: legendThreeField.text ?? "", date: sender.date, index: 2)
|
case 3: updateIndicatorData(label: legendThreeField.text ?? "", date: sender.date, index: 2)
|
||||||
default: break
|
default: break
|
||||||
}
|
}
|
||||||
// print("Selected value \(selectedDate)")
|
// print("Selected value \(selectedDate)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user