Merge branch 'feature/notificationView' into 'develop'
Added Type picker See merge request BPHV_MIPS/vds_ios_sample!50
This commit is contained in:
commit
6f1b6fb878
@ -150,7 +150,7 @@ public class BaseViewController<Component: UIView>: UIViewController, Initable ,
|
||||
|
||||
public var formStackView = FormSection()
|
||||
|
||||
lazy var stackView = UIStackView().with {
|
||||
public lazy var stackView = UIStackView().with {
|
||||
$0.axis = .vertical
|
||||
$0.distribution = .fill
|
||||
$0.alignment = .fill
|
||||
|
||||
@ -33,10 +33,21 @@ class NotificationViewController: BaseViewController<VDS.Notification> {
|
||||
PickerSelectorView(title: "vertical", picker: self.picker, items: Notification.Layout.allCases)
|
||||
}()
|
||||
|
||||
// lazy var typePickerSelectorView = {
|
||||
// PickerSelectorView(title: "inLine", picker: self.picker, items: Notification.Type.allCases)
|
||||
// }()
|
||||
|
||||
var notification = Notification()
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
stackView.insertArrangedSubview(notification, at: 0)
|
||||
addContentTopView(view: component)
|
||||
|
||||
notification.title = titleDefaultText
|
||||
notification.subTitle = subtitleDefaultText
|
||||
|
||||
component.title = titleDefaultText
|
||||
component.subTitle = subtitleDefaultText
|
||||
titleTextField.text = titleDefaultText
|
||||
@ -54,6 +65,7 @@ class NotificationViewController: BaseViewController<VDS.Notification> {
|
||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||
addFormRow(label: "Style", view: notificationTypePickerSelectorView)
|
||||
addFormRow(label: "Layout", view: layoutTypePickerSelectorView)
|
||||
// addFormRow(label: "Type", view: typePickerSelectorView)
|
||||
addFormRow(label: "Title", view: titleTextField)
|
||||
addFormRow(label: "SubTitle", view: subTitleTextField)
|
||||
addFormRow(label: "Hide Button Group", view: buttonGroupToggle)
|
||||
@ -68,16 +80,21 @@ class NotificationViewController: BaseViewController<VDS.Notification> {
|
||||
|
||||
titleTextField.textPublisher.sink { newString in
|
||||
self.component.title = newString
|
||||
self.notification.title = newString
|
||||
}.store(in: &subscribers)
|
||||
|
||||
subTitleTextField.textPublisher.sink { newString in
|
||||
self.component.subTitle = newString
|
||||
self.notification.subTitle = newString
|
||||
}.store(in: &subscribers)
|
||||
|
||||
buttonGroupToggle.onChange = { [weak self] toggle in
|
||||
if toggle.isOn {
|
||||
self?.component.primaryButtonModel = nil
|
||||
self?.component.secondaryButtonModel = nil
|
||||
self?.notification.primaryButtonModel = nil
|
||||
self?.notification.secondaryButtonModel = nil
|
||||
|
||||
self?.label.text = ""
|
||||
} else {
|
||||
self?.setupButtons(with: self?.firstButtonDefaultText, secondButtonText: self?.secondButtonDefaultText)
|
||||
@ -103,6 +120,7 @@ class NotificationViewController: BaseViewController<VDS.Notification> {
|
||||
|
||||
hideCloseButtonToggle.onChange = { [weak self] toggle in
|
||||
self?.component.hideCloseButton = toggle.isOn
|
||||
self?.notification.hideCloseButton = toggle.isOn
|
||||
}
|
||||
|
||||
}
|
||||
@ -110,20 +128,31 @@ class NotificationViewController: BaseViewController<VDS.Notification> {
|
||||
func setupPicker() {
|
||||
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
self?.component.surface = item
|
||||
self?.notification.surface = item
|
||||
self?.contentTopView.backgroundColor = item.color
|
||||
}
|
||||
|
||||
notificationTypePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
self?.component.style = item
|
||||
self?.notification.style = item
|
||||
}
|
||||
|
||||
layoutTypePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
guard let self else { return }
|
||||
self.component.layout = item
|
||||
self.notification.layout = item
|
||||
if self.component.layout != item {
|
||||
self.layoutTypePickerSelectorView.set(item: self.component.layout)
|
||||
}
|
||||
}
|
||||
|
||||
// typePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
// guard let self else { return }
|
||||
// self.component.type = item
|
||||
// if self.component.type != item {
|
||||
// self.layoutTypePickerSelectorView.set(item: self.component.layout)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
func setupButtons(with firstButtonText: String? = nil, secondButtonText: String? = nil) {
|
||||
@ -131,12 +160,18 @@ class NotificationViewController: BaseViewController<VDS.Notification> {
|
||||
component.primaryButtonModel = .init(text: firstButtonText, onClick: { [weak self] button in
|
||||
self?.label.text = "\(button.text!) button click"
|
||||
})
|
||||
notification.primaryButtonModel = .init(text: firstButtonText, onClick: { [weak self] button in
|
||||
self?.label.text = "\(button.text!) button click"
|
||||
})
|
||||
}
|
||||
|
||||
if let secondButtonText {
|
||||
component.secondaryButtonModel = .init(text: secondButtonText, onClick: { [weak self] button in
|
||||
self?.label.text = "\(button.text!) button click"
|
||||
})
|
||||
notification.secondaryButtonModel = .init(text: secondButtonText, onClick: { [weak self] button in
|
||||
self?.label.text = "\(button.text!) button click"
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user