refactor for titlelockup/tilelet
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
8b945943e2
commit
8298f02d3b
@ -13,16 +13,16 @@ import Combine
|
||||
|
||||
class TileletViewController: BaseViewController<Tilelet> {
|
||||
|
||||
lazy var titleTextStylePickerSelectorView = {
|
||||
lazy var titleStandardStylePickerSelectorView = {
|
||||
PickerSelectorView(title: "",
|
||||
picker: self.picker,
|
||||
items: Tilelet.TitleModel.TextStyle.allCases.sorted{ $0.rawValue < $1.rawValue })
|
||||
items: Tilelet.TitleModel.StandardStyle.allCases.sorted{ $0.rawValue < $1.rawValue })
|
||||
}()
|
||||
|
||||
lazy var otherTextStylePickerSelectorView = {
|
||||
lazy var otherStandardStylePickerSelectorView = {
|
||||
PickerSelectorView(title: "",
|
||||
picker: self.picker,
|
||||
items: Tilelet.SubTitleModel.TextStyle.allCases.sorted{ $0.rawValue < $1.rawValue })
|
||||
items: Tilelet.SubTitleModel.StandardStyle.allCases.sorted{ $0.rawValue < $1.rawValue })
|
||||
}()
|
||||
|
||||
lazy var subtitleColorPickerSelectorView = {
|
||||
@ -59,8 +59,8 @@ class TileletViewController: BaseViewController<Tilelet> {
|
||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||
addFormRow(label: "Clickable", view: .makeWrapper(for: clickableSwitch))
|
||||
|
||||
addFormRow(label: "Title Style", view: titleTextStylePickerSelectorView)
|
||||
addFormRow(label: "Other Style", view: otherTextStylePickerSelectorView)
|
||||
addFormRow(label: "Title Style", view: titleStandardStylePickerSelectorView)
|
||||
addFormRow(label: "Other Style", view: otherStandardStylePickerSelectorView)
|
||||
|
||||
addFormRow(label: "Title Text", view: titleTextField)
|
||||
addFormRow(label: "Subtitle Color", view: subtitleColorPickerSelectorView)
|
||||
@ -173,12 +173,15 @@ class TileletViewController: BaseViewController<Tilelet> {
|
||||
|
||||
//setup UI
|
||||
surfacePickerSelectorView.text = component.surface.rawValue
|
||||
otherTextStylePickerSelectorView.text = subTitleModel.textStyle.rawValue
|
||||
titleTextStylePickerSelectorView.text = titleModel.textStyle.rawValue
|
||||
otherStandardStylePickerSelectorView.text = subTitleModel.standardStyle.rawValue
|
||||
titleStandardStylePickerSelectorView.text = titleModel.standardStyle.rawValue
|
||||
subtitleColorPickerSelectorView.text = subTitleModel.textColor.rawValue
|
||||
titleTextField.text = titleModel.text
|
||||
subTitleTextField.text = subTitleModel.text
|
||||
widthTextField.text = component.width != nil ? "\(component.width!)" : ""
|
||||
|
||||
self.updateOtherTextStyles()
|
||||
|
||||
}
|
||||
|
||||
//sub models
|
||||
@ -192,7 +195,7 @@ class TileletViewController: BaseViewController<Tilelet> {
|
||||
|
||||
func setTitleModel() {
|
||||
if let text = titleTextField.text, !text.isEmpty {
|
||||
component.titleModel = Tilelet.TitleModel(text: text, textStyle: titleTextStylePickerSelectorView.selectedItem)
|
||||
component.titleModel = Tilelet.TitleModel(text: text, standardStyle: titleStandardStylePickerSelectorView.selectedItem)
|
||||
} else {
|
||||
component.titleModel = nil
|
||||
}
|
||||
@ -200,12 +203,20 @@ class TileletViewController: BaseViewController<Tilelet> {
|
||||
|
||||
func setSubTitleModel() {
|
||||
if let text = subTitleTextField.text, !text.isEmpty {
|
||||
component.subTitleModel = Tilelet.SubTitleModel(text: text, textStyle: otherTextStylePickerSelectorView.selectedItem)
|
||||
component.subTitleModel = Tilelet.SubTitleModel(text: text, standardStyle: otherStandardStylePickerSelectorView.selectedItem)
|
||||
} else {
|
||||
component.subTitleModel = nil
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func updateOtherTextStyles() {
|
||||
let items = component.titleLockup.standardStyleConfiguration.configuration(for: titleStandardStylePickerSelectorView.selectedItem.value)!.allOtherStandardStyles
|
||||
let otheritems = items.compactMap { Tilelet.SubTitleModel.StandardStyle(rawValue: $0.rawValue)! }
|
||||
otherStandardStylePickerSelectorView.items = otheritems
|
||||
otherStandardStylePickerSelectorView.text = otheritems.first?.rawValue ?? ""
|
||||
setSubTitleModel()
|
||||
}
|
||||
|
||||
//Picker
|
||||
func setupPicker(){
|
||||
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
@ -213,11 +224,13 @@ class TileletViewController: BaseViewController<Tilelet> {
|
||||
self?.contentTopView.backgroundColor = item.color
|
||||
}
|
||||
|
||||
titleTextStylePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
self?.setTitleModel()
|
||||
titleStandardStylePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
guard let self else { return }
|
||||
self.setTitleModel()
|
||||
self.updateOtherTextStyles()
|
||||
}
|
||||
|
||||
otherTextStylePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
otherStandardStylePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
self?.setSubTitleModel()
|
||||
}
|
||||
|
||||
|
||||
@ -18,16 +18,16 @@ class TitleLockupViewController: BaseViewController<TitleLockup> {
|
||||
items: TitleLockup.TextPosition.allCases)
|
||||
}()
|
||||
|
||||
lazy var titleTextStylePickerSelectorView = {
|
||||
lazy var titleStandardStylePickerSelectorView = {
|
||||
PickerSelectorView(title: "",
|
||||
picker: self.picker,
|
||||
items: TitleLockup.TitleTextStyle.allCases.sorted{ $0.rawValue < $1.rawValue })
|
||||
items: TitleLockup.TitleStandardStyle.allCases.sorted{ $0.rawValue < $1.rawValue })
|
||||
}()
|
||||
|
||||
lazy var otherTextStylePickerSelectorView = {
|
||||
lazy var otherStandardStylePickerSelectorView = {
|
||||
PickerSelectorView(title: "",
|
||||
picker: self.picker,
|
||||
items: TitleLockup.OtherTextStyle.allCases.sorted{ $0.rawValue < $1.rawValue })
|
||||
items: TitleLockup.OtherStandardStyle.allCases.sorted{ $0.rawValue < $1.rawValue })
|
||||
}()
|
||||
|
||||
lazy var subtitleColorPickerSelectorView = {
|
||||
@ -36,6 +36,8 @@ class TitleLockupViewController: BaseViewController<TitleLockup> {
|
||||
items: [.primary, .secondary])
|
||||
}()
|
||||
|
||||
var titleIsBold = Toggle().with { $0.isOn = true }
|
||||
var eyebrowIsBold = Toggle()
|
||||
var eyebrowTextField = TextField()
|
||||
var titleTextField = TextField()
|
||||
var subTitleTextField = TextField()
|
||||
@ -54,20 +56,31 @@ class TitleLockupViewController: BaseViewController<TitleLockup> {
|
||||
super.setupForm()
|
||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||
addFormRow(label: "Text Position", view: textPositionPickerSelectorView)
|
||||
|
||||
addFormRow(label: "Title Style", view: titleTextStylePickerSelectorView)
|
||||
addFormRow(label: "Other Style", view: otherTextStylePickerSelectorView)
|
||||
|
||||
|
||||
addFormRow(label: "Title is Bold", view: .makeWrapper(for: titleIsBold))
|
||||
addFormRow(label: "Eyebrow is Bold", view: .makeWrapper(for: eyebrowIsBold))
|
||||
|
||||
addFormRow(label: "Title Style", view: titleStandardStylePickerSelectorView)
|
||||
addFormRow(label: "Other Style", view: otherStandardStylePickerSelectorView)
|
||||
|
||||
addFormRow(label: "Eyebrow Text", view: eyebrowTextField)
|
||||
addFormRow(label: "Title Text", view: titleTextField)
|
||||
|
||||
addFormRow(label: "Subtitle Color", view: subtitleColorPickerSelectorView)
|
||||
addFormRow(label: "Subtitle Text", view: subTitleTextField)
|
||||
|
||||
eyebrowIsBold.publisher(for: .valueChanged).sink { [weak self] toggle in
|
||||
self?.setOtherModels()
|
||||
}.store(in: &subscribers)
|
||||
|
||||
titleIsBold.publisher(for: .valueChanged).sink { [weak self] toggle in
|
||||
self?.setTitleModel()
|
||||
}.store(in: &subscribers)
|
||||
|
||||
eyebrowTextField
|
||||
.textPublisher
|
||||
.sink { [weak self] text in
|
||||
self?.setEyebrowModel()
|
||||
self?.setOtherModels()
|
||||
}.store(in: &subscribers)
|
||||
|
||||
titleTextField
|
||||
@ -79,7 +92,7 @@ class TitleLockupViewController: BaseViewController<TitleLockup> {
|
||||
subTitleTextField
|
||||
.textPublisher
|
||||
.sink { [weak self] text in
|
||||
self?.setSubTitleModel()
|
||||
self?.setOtherModels()
|
||||
}.store(in: &subscribers)
|
||||
}
|
||||
|
||||
@ -95,36 +108,45 @@ class TitleLockupViewController: BaseViewController<TitleLockup> {
|
||||
//setup UI
|
||||
surfacePickerSelectorView.text = component.surface.rawValue
|
||||
textPositionPickerSelectorView.text = component.textPosition.rawValue
|
||||
otherTextStylePickerSelectorView.text = component.otherTextStyle.rawValue
|
||||
titleTextStylePickerSelectorView.text = titleModel.textStyle.rawValue
|
||||
otherStandardStylePickerSelectorView.text = subTitleModel.standardStyle.rawValue
|
||||
titleStandardStylePickerSelectorView.text = titleModel.standardStyle.rawValue
|
||||
subtitleColorPickerSelectorView.text = subTitleModel.textColor.rawValue
|
||||
eyebrowTextField.text = eyebrowModel.text
|
||||
titleTextField.text = titleModel.text
|
||||
subTitleTextField.text = subTitleModel.text
|
||||
|
||||
updateOtherTextStyles()
|
||||
}
|
||||
|
||||
func setEyebrowModel() {
|
||||
if let text = eyebrowTextField.text, !text.isEmpty {
|
||||
component.eyebrowModel = TitleLockup.EyebrowModel(text: text)
|
||||
} else {
|
||||
component.eyebrowModel = nil
|
||||
}
|
||||
}
|
||||
|
||||
func setTitleModel() {
|
||||
if let text = titleTextField.text, !text.isEmpty {
|
||||
component.titleModel = TitleLockup.TitleModel(text: text, textStyle: titleTextStylePickerSelectorView.selectedItem)
|
||||
component.titleModel = TitleLockup.TitleModel(text: text, isBold: titleIsBold.isOn, standardStyle: titleStandardStylePickerSelectorView.selectedItem)
|
||||
} else {
|
||||
component.titleModel = nil
|
||||
}
|
||||
}
|
||||
|
||||
func setSubTitleModel() {
|
||||
func updateOtherTextStyles() {
|
||||
let items = component.standardStyleConfiguration.configuration(for: titleStandardStylePickerSelectorView.selectedItem)!.allOtherStandardStyles
|
||||
otherStandardStylePickerSelectorView.items = items
|
||||
otherStandardStylePickerSelectorView.text = items.first?.rawValue ?? ""
|
||||
setOtherModels()
|
||||
}
|
||||
|
||||
func setOtherModels() {
|
||||
let style = otherStandardStylePickerSelectorView.selectedItem
|
||||
|
||||
if let text = subTitleTextField.text, !text.isEmpty {
|
||||
component.subTitleModel = TitleLockup.SubTitleModel(text: text, textColor: subtitleColorPickerSelectorView.selectedItem)
|
||||
component.subTitleModel = TitleLockup.SubTitleModel(text: text, standardStyle: style, textColor: subtitleColorPickerSelectorView.selectedItem)
|
||||
} else {
|
||||
component.subTitleModel = nil
|
||||
}
|
||||
|
||||
if let text = eyebrowTextField.text, !text.isEmpty {
|
||||
component.eyebrowModel = TitleLockup.EyebrowModel(text: text, isBold: eyebrowIsBold.isOn, standardStyle: style)
|
||||
} else {
|
||||
component.eyebrowModel = nil
|
||||
}
|
||||
}
|
||||
|
||||
//Picker
|
||||
@ -138,16 +160,17 @@ class TitleLockupViewController: BaseViewController<TitleLockup> {
|
||||
self?.component.textPosition = item
|
||||
}
|
||||
|
||||
titleTextStylePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
titleStandardStylePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
self?.setTitleModel()
|
||||
self?.updateOtherTextStyles()
|
||||
}
|
||||
|
||||
otherTextStylePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
self?.component.otherTextStyle = item
|
||||
otherStandardStylePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
self?.setOtherModels()
|
||||
}
|
||||
|
||||
subtitleColorPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
self?.setSubTitleModel()
|
||||
self?.setOtherModels()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user