From 76fd6a119cea4738e6b6ad57c523dc62e562db8d Mon Sep 17 00:00:00 2001 From: Vasavi Kanamarlapudi Date: Wed, 16 Oct 2024 14:27:33 +0530 Subject: [PATCH] Digital ACT-191 ONEAPP-11355 story: added new page for List Unordered --- VDSSample.xcodeproj/project.pbxproj | 4 + .../ListUnorderedViewController.swift | 115 ++++++++++++++++++ .../ViewControllers/MenuViewController.swift | 1 + 3 files changed, 120 insertions(+) create mode 100644 VDSSample/ViewControllers/ListUnorderedViewController.swift diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index 1083ba6..8cd99ca 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -37,6 +37,7 @@ 1832AC5B2BA1347B008AE476 /* BreadcrumbsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */; }; 183B16F52C80B27C00BA6A10 /* FootnoteGroupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 183B16F42C80B27C00BA6A10 /* FootnoteGroupViewController.swift */; }; 184023492C61E9E700A412C8 /* PriceLockupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 184023482C61E9E700A412C8 /* PriceLockupViewController.swift */; }; + 1859B3152CBF77B30031CD70 /* ListUnorderedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1859B3142CBF77B30031CD70 /* ListUnorderedViewController.swift */; }; 186D13CD2BBA990800986B53 /* DropdownSelectViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 186D13CC2BBA990800986B53 /* DropdownSelectViewController.swift */; }; 18926F5F2C76185A00C55BF6 /* FootnoteItemViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18926F5E2C76185A00C55BF6 /* FootnoteItemViewController.swift */; }; 18A3F1302BD9332500498E4A /* CalendarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18A3F12F2BD9332500498E4A /* CalendarViewController.swift */; }; @@ -141,6 +142,7 @@ 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreadcrumbsViewController.swift; sourceTree = ""; }; 183B16F42C80B27C00BA6A10 /* FootnoteGroupViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FootnoteGroupViewController.swift; sourceTree = ""; }; 184023482C61E9E700A412C8 /* PriceLockupViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PriceLockupViewController.swift; sourceTree = ""; }; + 1859B3142CBF77B30031CD70 /* ListUnorderedViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListUnorderedViewController.swift; sourceTree = ""; }; 186D13CC2BBA990800986B53 /* DropdownSelectViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropdownSelectViewController.swift; sourceTree = ""; }; 18926F5E2C76185A00C55BF6 /* FootnoteItemViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FootnoteItemViewController.swift; sourceTree = ""; }; 18A3F12F2BD9332500498E4A /* CalendarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarViewController.swift; sourceTree = ""; }; @@ -357,6 +359,7 @@ 180636CA2C29B12B00C92D86 /* InputStepperViewController.swift */, EAB1D2D328AC409F00DAE764 /* LabelViewController.swift */, 44604AD829CE1CF900E62B51 /* LineViewController.swift */, + 1859B3142CBF77B30031CD70 /* ListUnorderedViewController.swift */, EAD0688F2A55FC11002E3A2D /* LoaderViewController.swift */, 18C0F9472C98177F00E1DD71 /* ModalViewController.swift */, 445BA07929C088470036A7C5 /* NotificationViewController.swift */, @@ -562,6 +565,7 @@ EAB5FEF32928153D00998C17 /* Helper.swift in Sources */, EA89204728B66CE2006B9984 /* KeyboardFrameChangeListener.swift in Sources */, EA4DB30428DCD25B00103EE3 /* BadgeViewController.swift in Sources */, + 1859B3152CBF77B30031CD70 /* ListUnorderedViewController.swift in Sources */, 18C0F9482C98177F00E1DD71 /* ModalViewController.swift in Sources */, EAB2376029E88D5D00AABE9A /* TooltipViewController.swift in Sources */, EA89204828B66CE2006B9984 /* ScrollViewKeyboardAvoiding.swift in Sources */, diff --git a/VDSSample/ViewControllers/ListUnorderedViewController.swift b/VDSSample/ViewControllers/ListUnorderedViewController.swift new file mode 100644 index 0000000..ef73f77 --- /dev/null +++ b/VDSSample/ViewControllers/ListUnorderedViewController.swift @@ -0,0 +1,115 @@ +// +// ListUnorderedViewController.swift +// VDSSample +// +// Created by Vasavi Kanamarlapudi on 16/10/24. +// + +import Foundation +import VDS + +class ListUnorderedViewController: BaseViewController { + + lazy var sizePickerView = { + PickerSelectorView(title: "Large", + picker: self.picker, + items: ListUnordered.Size.allCases) + }() + + lazy var spacingPickerView = { + PickerSelectorView(title:"standard", + picker: self.picker, + items: ListUnordered.Spacing.allCases) + }() + + var leadInTextField = TextField() +// var listItemOneTextField = TextField() + var listItemTwoLevelTwoTextOne = TextField() + var listItemTwoLevelTwoTextTwo = TextField() + + var unorderedList: [ListUnordered.ListUnorderedItemModel]? + + override func viewDidLoad() { + super.viewDidLoad() +// addContentTopView(view: .makeWrapper(for: component, edgeSpacing: 16.0), edgeSpacing: 0.0) + addContentTopView(view: component) + setupPicker() + setupModel() + } + + override func setupForm() { + super.setupForm() + addFormRow(label: "Surface", view: surfacePickerSelectorView) + addFormRow(label: "Size", view: sizePickerView) + addFormRow(label: "Spacing", view: spacingPickerView) + + let form1 = FormSection() + form1.title = "Lead-In Text (optional)" + form1.addFormRow(label: "Lead In Text", view: leadInTextField) + + let form2 = FormSection() + form2.title = "List Item Level 2 (Optional)" + form2.addFormRow(label: "Level 2 Text 1", view: listItemTwoLevelTwoTextOne) + form2.addFormRow(label: "Level 2 Text 2", view: listItemTwoLevelTwoTextTwo) + + append(section: form1) + append(section: form2) + + leadInTextField + .textPublisher + .sink { [weak self] text in + self?.component.leadInText = text + }.store(in: &subscribers) + + listItemTwoLevelTwoTextOne + .textPublisher + .sink { [weak self] text in + guard let self else { return } + self.updateUnorderList() + self.component.unorderedList = unorderedList ?? [] + }.store(in: &subscribers) + } + + func updateUnorderList() { + if (listItemTwoLevelTwoTextOne.text == nil && listItemTwoLevelTwoTextTwo.text == nil) { + unorderedList = [ + .init(itemLevelOneText: "Call 800-435-7986 to have your PIN reset"), + .init(itemLevelOneText: "To bypass Call Intercept") + ] + } else { + unorderedList = [ + .init(itemLevelOneText: "Call 800-435-7986 to have your PIN reset"), + .init(itemLevelOneText: "To bypass Call Intercept", itemLevelTwoTexts: [listItemTwoLevelTwoTextOne.text ?? "", listItemTwoLevelTwoTextTwo.text ?? ""]) + ] + } + } + + func setupPicker() { + surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.surface = item + self?.contentTopView.backgroundColor = item.color + } + + sizePickerView.onPickerDidSelect = { [weak self] item in + self?.component.size = item + } + + spacingPickerView.onPickerDidSelect = { [weak self] item in + self?.component.spacing = item + } + } + + func setupModel() { + sizePickerView.text = component.size.rawValue + spacingPickerView.text = component.spacing.rawValue + leadInTextField.text = "To manage your existing Call Intercept calling feature:" + self.component.leadInText = "To manage your existing Call Intercept calling feature:" + } +} + +extension ListUnorderedViewController: ComponentSampleable { + static func makeSample() -> ComponentSample { + let component = Self.makeComponent() + return ComponentSample(component: component) + } +} diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index eed3ac8..fa8527b 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -89,6 +89,7 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "InputStepper", completed: true, viewController: InputStepperViewController.self), MenuComponent(title: "Label", completed: true, viewController: LabelViewController.self), MenuComponent(title: "Line", completed: true, viewController: LineViewController.self), + MenuComponent(title: "List Unordered", completed: false, viewController: ListUnorderedViewController.self), MenuComponent(title: "Loader", completed: true, viewController: LoaderViewController.self), MenuComponent(title: "Modal", completed: true, viewController: ModalViewController.self), MenuComponent(title: "Notification", completed: true, viewController: NotificationViewController.self),