added token/custom color ui changes
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
98efde40a5
commit
aedf4eb520
@ -19,12 +19,6 @@ class TileContainerViewController: BaseViewController<TileContainer> {
|
|||||||
return picker
|
return picker
|
||||||
}()
|
}()
|
||||||
|
|
||||||
lazy var backgroundColorPickerSelectorView = {
|
|
||||||
PickerSelectorView(title: "white",
|
|
||||||
picker: self.picker,
|
|
||||||
items: BackgroundColor.allCases)
|
|
||||||
}()
|
|
||||||
|
|
||||||
lazy var imageFallbackColorPickerSelectorView = {
|
lazy var imageFallbackColorPickerSelectorView = {
|
||||||
SurfacePickerSelectorView(picker: self.picker)
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
}()
|
}()
|
||||||
@ -76,9 +70,9 @@ class TileContainerViewController: BaseViewController<TileContainer> {
|
|||||||
$0.placeholder = "Minimum 100px else it will occupy full container"
|
$0.placeholder = "Minimum 100px else it will occupy full container"
|
||||||
}
|
}
|
||||||
|
|
||||||
var colorPickerType: ColorPickerType = .backgroundColor
|
var colorPickerType: ColorPickerType = .gradientColor1
|
||||||
enum ColorPickerType {
|
enum ColorPickerType {
|
||||||
case backgroundColor, gradientColor1, gradientColor2, contentViewBackgroundColor
|
case custom, gradientColor1, gradientColor2, contentViewBackgroundColor
|
||||||
}
|
}
|
||||||
|
|
||||||
lazy var gradientColorView1: ColorPickerView<ColorPickerType> = {
|
lazy var gradientColorView1: ColorPickerView<ColorPickerType> = {
|
||||||
@ -95,6 +89,30 @@ class TileContainerViewController: BaseViewController<TileContainer> {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
var backgroundColorTokenFormStackView = FormSection().with { $0.isHidden = true }
|
||||||
|
var backgroundColorFormStackView = FormSection().with { $0.isHidden = true }
|
||||||
|
|
||||||
|
lazy var backgroundColorPickerSelectorView = {
|
||||||
|
PickerSelectorView(title: "",
|
||||||
|
picker: self.picker,
|
||||||
|
items: BackgroundColor.allCases)
|
||||||
|
.with { $0.text = BackgroundColor.white.rawValue }
|
||||||
|
}()
|
||||||
|
|
||||||
|
lazy var backgroundColorTokenColorView = {
|
||||||
|
PickerSelectorView(title: "",
|
||||||
|
picker: self.picker,
|
||||||
|
items: UIColor.VDSColor.allCases)
|
||||||
|
.with { $0.text = UIColor.VDSColor.paletteWhite.rawValue }
|
||||||
|
}()
|
||||||
|
|
||||||
|
lazy var backgroundColorCustomColorView: ColorPickerView<ColorPickerType> = {
|
||||||
|
return .init(with: ColorPickerType.custom, color: .white) { [weak self] picker in
|
||||||
|
self?.colorPickerType = picker.pickerType
|
||||||
|
self?.selectedColorTapped(picker)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
addContentTopView(view: .makeWrapper(for: component))
|
addContentTopView(view: .makeWrapper(for: component))
|
||||||
@ -166,6 +184,13 @@ class TileContainerViewController: BaseViewController<TileContainer> {
|
|||||||
addFormRow(label: "Show Border", view: showBorderSwitch)
|
addFormRow(label: "Show Border", view: showBorderSwitch)
|
||||||
addFormRow(label: "Show Drop Shadow", view: showDropShadowSwitch)
|
addFormRow(label: "Show Drop Shadow", view: showDropShadowSwitch)
|
||||||
addFormRow(label: "Background Color", view: backgroundColorPickerSelectorView)
|
addFormRow(label: "Background Color", view: backgroundColorPickerSelectorView)
|
||||||
|
|
||||||
|
backgroundColorTokenFormStackView.addFormRow(label: "Token", view: backgroundColorTokenColorView)
|
||||||
|
backgroundColorFormStackView.addFormRow(label: "Custom", view: backgroundColorCustomColorView)
|
||||||
|
append(section: backgroundColorTokenFormStackView)
|
||||||
|
append(section: backgroundColorFormStackView)
|
||||||
|
|
||||||
|
|
||||||
addFormRow(label: "Padding", view: paddingPickerSelectorView)
|
addFormRow(label: "Padding", view: paddingPickerSelectorView)
|
||||||
customPaddingRowView = addFormRow(label: "Custom Padding", view: paddingTextField)
|
customPaddingRowView = addFormRow(label: "Custom Padding", view: paddingTextField)
|
||||||
customPaddingRowView?.isHidden = true
|
customPaddingRowView?.isHidden = true
|
||||||
@ -263,11 +288,15 @@ class TileContainerViewController: BaseViewController<TileContainer> {
|
|||||||
if let color = item.color {
|
if let color = item.color {
|
||||||
self.component.color = color
|
self.component.color = color
|
||||||
} else {
|
} else {
|
||||||
self.colorPickerType = .backgroundColor
|
backgroundColorTokenFormStackView.isHidden = item != .token
|
||||||
self.present(self.colorPicker, animated: true)
|
backgroundColorFormStackView.isHidden = item != .custom
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
backgroundColorTokenColorView.onPickerDidSelect = { [weak self] item in
|
||||||
|
self?.component.color = .token(item)
|
||||||
|
}
|
||||||
|
|
||||||
backgroundEffectSelectorView.onPickerDidSelect = { [weak self] in
|
backgroundEffectSelectorView.onPickerDidSelect = { [weak self] in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
if let effect = $0.effect {
|
if let effect = $0.effect {
|
||||||
@ -339,14 +368,15 @@ extension TileContainerViewController: UIColorPickerViewControllerDelegate {
|
|||||||
switch colorPickerType {
|
switch colorPickerType {
|
||||||
case .contentViewBackgroundColor:
|
case .contentViewBackgroundColor:
|
||||||
component.contentView.backgroundColor = color
|
component.contentView.backgroundColor = color
|
||||||
case .backgroundColor:
|
|
||||||
component.color = .custom(color)
|
|
||||||
case .gradientColor1:
|
case .gradientColor1:
|
||||||
gradientColorView1.selectedColor = viewController.selectedColor
|
gradientColorView1.selectedColor = viewController.selectedColor
|
||||||
updateGradientColors()
|
updateGradientColors()
|
||||||
case .gradientColor2:
|
case .gradientColor2:
|
||||||
gradientColorView2.selectedColor = viewController.selectedColor
|
gradientColorView2.selectedColor = viewController.selectedColor
|
||||||
updateGradientColors()
|
updateGradientColors()
|
||||||
|
case .custom:
|
||||||
|
backgroundColorCustomColorView.selectedColor = color
|
||||||
|
component.color = .custom(color)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -390,7 +420,7 @@ extension TileContainerViewController {
|
|||||||
//Created new BackgroundColor enum for sample app only. Since we defined enum with associated value color defined in TileContainer cannot be RawRepresentable & CaseIterable
|
//Created new BackgroundColor enum for sample app only. Since we defined enum with associated value color defined in TileContainer cannot be RawRepresentable & CaseIterable
|
||||||
enum BackgroundColor: String, CaseIterable {
|
enum BackgroundColor: String, CaseIterable {
|
||||||
|
|
||||||
case primary, secondary, white, black, custom
|
case primary, secondary, white, black, token, custom
|
||||||
|
|
||||||
var color: TileContainer.BackgroundColor? {
|
var color: TileContainer.BackgroundColor? {
|
||||||
switch self {
|
switch self {
|
||||||
@ -402,6 +432,8 @@ extension TileContainerViewController {
|
|||||||
.white
|
.white
|
||||||
case .black:
|
case .black:
|
||||||
.black
|
.black
|
||||||
|
case .token:
|
||||||
|
nil
|
||||||
case .custom:
|
case .custom:
|
||||||
nil
|
nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,9 +67,8 @@ class TileletViewController: BaseViewController<Tilelet> {
|
|||||||
return picker
|
return picker
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var colorPickerType: ColorPickerType = .backgroundColor
|
var colorPickerType: ColorPickerType = .custom
|
||||||
enum ColorPickerType {
|
enum ColorPickerType {
|
||||||
case backgroundColor
|
|
||||||
case gradientColor1, gradientColor2
|
case gradientColor1, gradientColor2
|
||||||
case contentViewBackgroundColor, token, custom
|
case contentViewBackgroundColor, token, custom
|
||||||
}
|
}
|
||||||
@ -88,12 +87,31 @@ class TileletViewController: BaseViewController<Tilelet> {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
var backgroundColorTokenFormStackView = FormSection().with { $0.isHidden = true }
|
||||||
|
var backgroundColorFormStackView = FormSection().with { $0.isHidden = true }
|
||||||
lazy var backgroundColorPickerSelectorView = {
|
lazy var backgroundColorPickerSelectorView = {
|
||||||
PickerSelectorView(title: "white",
|
PickerSelectorView(title: "",
|
||||||
picker: self.picker,
|
picker: self.picker,
|
||||||
items: BackgroundColor.allCases)
|
items: BackgroundColor.allCases)
|
||||||
|
.with { $0.text = BackgroundColor.white.rawValue }
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
lazy var backgroundColorCustomColorView: ColorPickerView<ColorPickerType> = {
|
||||||
|
return .init(with: ColorPickerType.custom, color: .white) { [weak self] picker in
|
||||||
|
self?.currentSurfaceColorType = .background
|
||||||
|
self?.colorPickerType = picker.pickerType
|
||||||
|
self?.selectedColorTapped(picker)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
lazy var backgroundColorTokenColorView = {
|
||||||
|
PickerSelectorView(title: "",
|
||||||
|
picker: self.picker,
|
||||||
|
items: UIColor.VDSColor.allCases)
|
||||||
|
.with { $0.text = UIColor.VDSColor.paletteWhite.rawValue }
|
||||||
|
}()
|
||||||
|
|
||||||
|
|
||||||
lazy var textAlignmentPickerSelectorView = {
|
lazy var textAlignmentPickerSelectorView = {
|
||||||
PickerSelectorView(title: "left",
|
PickerSelectorView(title: "left",
|
||||||
picker: self.picker,
|
picker: self.picker,
|
||||||
@ -103,7 +121,7 @@ class TileletViewController: BaseViewController<Tilelet> {
|
|||||||
/// titleLockup
|
/// titleLockup
|
||||||
var currentSurfaceColorType: SurfaceColorType = .title
|
var currentSurfaceColorType: SurfaceColorType = .title
|
||||||
enum SurfaceColorType {
|
enum SurfaceColorType {
|
||||||
case eyebrow, title, subtitle, directionalIcon, descriptionIcon
|
case background, eyebrow, title, subtitle, directionalIcon, descriptionIcon
|
||||||
}
|
}
|
||||||
|
|
||||||
enum TitleTextColor: String, CaseIterable {
|
enum TitleTextColor: String, CaseIterable {
|
||||||
@ -319,6 +337,13 @@ class TileletViewController: BaseViewController<Tilelet> {
|
|||||||
addFormRow(label: "Text Percentage", view: textPercentageTextField)
|
addFormRow(label: "Text Percentage", view: textPercentageTextField)
|
||||||
addFormRow(label: "Text Position", tooltip: .init(title:"Text Position", content: "Minimum height is configurable"), view: textPositionPickerSelectorView)
|
addFormRow(label: "Text Position", tooltip: .init(title:"Text Position", content: "Minimum height is configurable"), view: textPositionPickerSelectorView)
|
||||||
addFormRow(label: "Background Color", tooltip: .init(title:"Background Color", content: "This color takes precedence over surface and will set all children's surface property to this value."), view: backgroundColorPickerSelectorView)
|
addFormRow(label: "Background Color", tooltip: .init(title:"Background Color", content: "This color takes precedence over surface and will set all children's surface property to this value."), view: backgroundColorPickerSelectorView)
|
||||||
|
|
||||||
|
backgroundColorTokenFormStackView.addFormRow(label: "Token", view: backgroundColorTokenColorView)
|
||||||
|
backgroundColorFormStackView.addFormRow(label: "Custom", view: backgroundColorCustomColorView)
|
||||||
|
append(section: backgroundColorTokenFormStackView)
|
||||||
|
append(section: backgroundColorFormStackView)
|
||||||
|
|
||||||
|
|
||||||
addFormRow(label: "Background Image", view: showBackgroundImageSwitch)
|
addFormRow(label: "Background Image", view: showBackgroundImageSwitch)
|
||||||
addFormRow(label: "Show Drop Shadow", view: showDropShadowSwitch)
|
addFormRow(label: "Show Drop Shadow", view: showDropShadowSwitch)
|
||||||
addFormRow(label: "Image Fallback Color", view: imageFallbackColorPickerSelectorView)
|
addFormRow(label: "Image Fallback Color", view: imageFallbackColorPickerSelectorView)
|
||||||
@ -394,7 +419,7 @@ class TileletViewController: BaseViewController<Tilelet> {
|
|||||||
directionalIconFormStackView.addFormRow(label: "Size", view: directionIconSizePickerSelectorView)
|
directionalIconFormStackView.addFormRow(label: "Size", view: directionIconSizePickerSelectorView)
|
||||||
directionalIconFormStackView.addFormRow(label: "Color", view: directionalIconColorPickerSelectorView)
|
directionalIconFormStackView.addFormRow(label: "Color", view: directionalIconColorPickerSelectorView)
|
||||||
directionalIconTokenFormStackView.addFormRow(label: "Token", view: directionalIconTokenColorView)
|
directionalIconTokenFormStackView.addFormRow(label: "Token", view: directionalIconTokenColorView)
|
||||||
directionalIconColorFormStackView.addFormRow(label: "Dark", view: directionalIconCustomColorView)
|
directionalIconColorFormStackView.addFormRow(label: "Custom", view: directionalIconCustomColorView)
|
||||||
append(section: directionalIconTokenFormStackView)
|
append(section: directionalIconTokenFormStackView)
|
||||||
append(section: directionalIconColorFormStackView)
|
append(section: directionalIconColorFormStackView)
|
||||||
|
|
||||||
@ -777,14 +802,18 @@ class TileletViewController: BaseViewController<Tilelet> {
|
|||||||
|
|
||||||
backgroundColorPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
backgroundColorPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
if let color = self.getTilelet(backgroundColor: item) {
|
if let color = getTilelet(backgroundColor: item) {
|
||||||
self.component.color = color
|
component.color = color
|
||||||
} else {
|
} else {
|
||||||
self.colorPickerType = .backgroundColor
|
backgroundColorTokenFormStackView.isHidden = item != .token
|
||||||
self.present(self.colorPicker, animated: true)
|
backgroundColorFormStackView.isHidden = item != .custom
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
backgroundColorTokenColorView.onPickerDidSelect = { [weak self] item in
|
||||||
|
self?.component.color = .token(item)
|
||||||
|
}
|
||||||
|
|
||||||
eyebrowColorPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
eyebrowColorPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.currentSurfaceColorType = .eyebrow
|
self?.currentSurfaceColorType = .eyebrow
|
||||||
self?.eyebrowTokenFormStackView.isHidden = item != .token
|
self?.eyebrowTokenFormStackView.isHidden = item != .token
|
||||||
@ -878,6 +907,8 @@ class TileletViewController: BaseViewController<Tilelet> {
|
|||||||
.black
|
.black
|
||||||
case .custom:
|
case .custom:
|
||||||
nil
|
nil
|
||||||
|
case .token:
|
||||||
|
nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -917,8 +948,6 @@ extension TileletViewController: UIColorPickerViewControllerDelegate {
|
|||||||
switch colorPickerType {
|
switch colorPickerType {
|
||||||
case .contentViewBackgroundColor:
|
case .contentViewBackgroundColor:
|
||||||
component.contentView.backgroundColor = color
|
component.contentView.backgroundColor = color
|
||||||
case .backgroundColor:
|
|
||||||
component.color = .custom(color)
|
|
||||||
case .gradientColor1:
|
case .gradientColor1:
|
||||||
gradientColorView1.selectedColor = viewController.selectedColor
|
gradientColorView1.selectedColor = viewController.selectedColor
|
||||||
updateGradientColors()
|
updateGradientColors()
|
||||||
@ -929,6 +958,8 @@ extension TileletViewController: UIColorPickerViewControllerDelegate {
|
|||||||
var colorView: ColorPickerView<ColorPickerType>
|
var colorView: ColorPickerView<ColorPickerType>
|
||||||
|
|
||||||
switch currentSurfaceColorType {
|
switch currentSurfaceColorType {
|
||||||
|
case .background:
|
||||||
|
colorView = backgroundColorCustomColorView
|
||||||
case .eyebrow:
|
case .eyebrow:
|
||||||
colorView = eyebrowCustomColorView
|
colorView = eyebrowCustomColorView
|
||||||
case .title:
|
case .title:
|
||||||
@ -943,6 +974,8 @@ extension TileletViewController: UIColorPickerViewControllerDelegate {
|
|||||||
colorView.selectedColor = viewController.selectedColor
|
colorView.selectedColor = viewController.selectedColor
|
||||||
|
|
||||||
switch currentSurfaceColorType {
|
switch currentSurfaceColorType {
|
||||||
|
case .background:
|
||||||
|
component.color = .custom(color)
|
||||||
case .eyebrow:
|
case .eyebrow:
|
||||||
setEyebrowModel()
|
setEyebrowModel()
|
||||||
case .title:
|
case .title:
|
||||||
@ -971,7 +1004,7 @@ extension TileletViewController {
|
|||||||
|
|
||||||
enum BackgroundColor: String, CaseIterable {
|
enum BackgroundColor: String, CaseIterable {
|
||||||
|
|
||||||
case primary, secondary, white, black, custom
|
case primary, secondary, white, black, token, custom
|
||||||
|
|
||||||
var color: TileContainer.BackgroundColor? {
|
var color: TileContainer.BackgroundColor? {
|
||||||
switch self {
|
switch self {
|
||||||
@ -983,6 +1016,8 @@ extension TileletViewController {
|
|||||||
.white
|
.white
|
||||||
case .black:
|
case .black:
|
||||||
.black
|
.black
|
||||||
|
case .token:
|
||||||
|
nil
|
||||||
case .custom:
|
case .custom:
|
||||||
nil
|
nil
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user