diff --git a/VDSSample/ViewControllers/ButtonIconViewController.swift b/VDSSample/ViewControllers/ButtonIconViewController.swift index e055285..d7246ac 100644 --- a/VDSSample/ViewControllers/ButtonIconViewController.swift +++ b/VDSSample/ViewControllers/ButtonIconViewController.swift @@ -36,6 +36,12 @@ class ButtonIconViewController: BaseViewController { picker: self.picker, items: Icon.Name.all.sorted{ $0.rawValue < $1.rawValue }) }() + + lazy var selectedIconNamePickerSelectorView = { + PickerSelectorView(title: "", + picker: self.picker, + items: Icon.Name.all.sorted{ $0.rawValue < $1.rawValue }) + }() lazy var sizePickerSelectorView = { PickerSelectorView(title: "", @@ -50,7 +56,16 @@ class ButtonIconViewController: BaseViewController { var floating = Toggle() var hideBorder = Toggle() var disabledSwitch = Toggle() - + var selectableSwitch = Toggle() + var badgeIndicatorSwitch = Toggle() + var variantOneSwitch = Toggle() + + lazy var badgeIndicatorExpandDirectionPickerSelectorView = { + PickerSelectorView(title: "right", + picker: self.picker, + items: ButtonIcon.BadgeIndicatorModel.ExpandDirection.allCases) + }() + override func viewDidLoad() { super.viewDidLoad() addContentTopView(view: .makeWrapper(for: component, edgeSpacing: 16.0), edgeSpacing: 0.0) @@ -58,9 +73,10 @@ class ButtonIconViewController: BaseViewController { setupModel() } + var badgeIndicatorFormStackView = FormSection().with { $0.isHidden = true } + override func setupForm(){ super.setupForm() - addActionRow() addFormRow(label: "Disabled", view: disabledSwitch) addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Surface Type", view: surfaceTypePickerSelectorView) @@ -69,23 +85,45 @@ class ButtonIconViewController: BaseViewController { addFormRow(label: "Floating", view: floating) addFormRow(label: "Hide Border", view: hideBorder) addFormRow(label: "Fit To Icon", view: fitToIcon) - addFormRow(label: "Custom Size", view: customSizeField) addFormRow(label: "Name", view: namePickerSelectorView) + addFormRow(label: "Selected Icon Name", view: selectedIconNamePickerSelectorView) + addFormRow(label: "Selectable", view: selectableSwitch) addFormRow(label: "X Offset", view: centerX) addFormRow(label: "Y Offset", view: centerY) + //badgeIndicator section + addFormRow(label: "Show Badge Indicator", view: badgeIndicatorSwitch) + badgeIndicatorFormStackView.addFormRow(label: "Expand Direction", view: badgeIndicatorExpandDirectionPickerSelectorView) + badgeIndicatorFormStackView.addFormRow(label: "Badge Variants", view: variantOneSwitch) + append(section: badgeIndicatorFormStackView) + + variantOneSwitch.onChange = { [weak self] sender in + self?.setBadgeIndicatorModel() + } + + badgeIndicatorSwitch.onChange = { [weak self] sender in + guard let self else { return } + self.component.showBadgeIndicator = sender.isOn + self.badgeIndicatorFormStackView.isHidden = !sender.isOn + self.setBadgeIndicatorModel() + variantOneSwitch.isOn = false + } + disabledSwitch.onChange = { [weak self] sender in self?.component.isEnabled = !sender.isOn } - - component.onClickActionPublisher("ButtonIcon", label: actionLabel) + + selectableSwitch.onChange = { [weak self] sender in + guard let self else { return } + self.component.selectable = !self.component.selectable + } floating.onChange = { [weak self] sender in self?.component.floating = sender.isOn } hideBorder.onChange = { [weak self] sender in - self?.component.hideBorder = sender.isOn + self?.component.hideBorder = !sender.isOn } fitToIcon.onChange = { [weak self] sender in @@ -122,6 +160,7 @@ class ButtonIconViewController: BaseViewController { sizePickerSelectorView.text = component.size.rawValue namePickerSelectorView.text = name.rawValue disabledSwitch.isOn = !component.isEnabled + badgeIndicatorExpandDirectionPickerSelectorView.text = ButtonIcon.BadgeIndicatorModel.ExpandDirection.right.rawValue } func updateOffset() { @@ -138,12 +177,12 @@ class ButtonIconViewController: BaseViewController { func setupPicker(){ - + surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.component.surface = item self?.contentTopView.backgroundColor = item.color } - + surfaceTypePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.component.surfaceType = item } @@ -160,6 +199,26 @@ class ButtonIconViewController: BaseViewController { namePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.component.iconName = item } + + selectedIconNamePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.selectedIconName = item + } + + badgeIndicatorExpandDirectionPickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.setBadgeIndicatorModel() + } + } + + func setBadgeIndicatorModel() { + if variantOneSwitch.isOn { + if badgeIndicatorSwitch.isOn { + component.badgeIndicatorModel = ButtonIcon.BadgeIndicatorModel(kind: BadgeIndicator.Kind.simple, size: BadgeIndicator.Size.small) + } else { + component.badgeIndicatorModel = nil + } + } else { + component.badgeIndicatorModel = ButtonIcon.BadgeIndicatorModel(kind: BadgeIndicator.Kind.numbered, expandDirection: badgeIndicatorExpandDirectionPickerSelectorView.selectedItem, size: BadgeIndicator.Size.small, maximumDigits: BadgeIndicator.MaximumDigits.two, number: 999) + } } } diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index 753b294..d641463 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -72,7 +72,7 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "Badge Indicator", completed: true, viewController: BadgeIndicatorViewController.self), MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self), MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self), - MenuComponent(title: "ButtonIcon", completed: false, viewController: ButtonIconViewController.self), + MenuComponent(title: "ButtonIcon", completed: true, viewController: ButtonIconViewController.self), MenuComponent(title: "Checkbox", completed: true, viewController: CheckboxViewController.self), MenuComponent(title: "CheckboxItem", completed: true, viewController: CheckboxItemViewController.self), MenuComponent(title: "CheckboxGroup", completed: true, viewController: CheckboxGroupViewController.self),