Skip to content

Commit 2ea23ec

Browse files
committedJan 15, 2021
Merge branch 'release/1.0' into main
2 parents 62a00cd + b01a2c2 commit 2ea23ec

File tree

60 files changed

+1875
-144
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+1875
-144
lines changed
 

‎ThenGenerator/Sources/Core/UIComponents.swift

+136-10
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
// Created by Kanz on 2021/01/01.
66
//
77

8+
import SwiftUI
9+
810
public enum UIComponents: String, CaseIterable {
911

1012
case label
@@ -37,21 +39,17 @@ public enum UIComponents: String, CaseIterable {
3739
case navigationBar
3840
case tabBar
3941

40-
case none = "_VariableName_"
41-
4242
init(variableName: String) {
4343
let lowerCasedVariableName = variableName.lowercased()
4444
let target = UIComponents.allCases
4545
.filter { lowerCasedVariableName.hasSuffix($0.rawValue.lowercased()) }
4646
.first
4747

48-
self = target ?? .none
48+
self = target ?? .view
4949
}
5050

51-
var fullName: String {
51+
var viewInitName: String {
5252
switch self {
53-
case .none:
54-
return self.rawValue
5553
case .collectionView:
5654
return "UICollectionView(frame: .zero, collectionViewLayout: <#UICollectionViewLayout#>)"
5755
case .visualEffectView:
@@ -84,8 +82,7 @@ public enum UIComponents: String, CaseIterable {
8482
}
8583
}
8684

87-
88-
func getThenDataModel() -> ThenModelProtocol? {
85+
public func getThenDataModel() -> ThenModelProtocol? {
8986
switch self {
9087
case .label:
9188
return UILabelModel()
@@ -137,8 +134,137 @@ public enum UIComponents: String, CaseIterable {
137134
return UITabBarModel()
138135
case .segmentedControl:
139136
return UISegmentedControlModel()
140-
case .none:
141-
return NoneModel()
142137
}
143138
}
139+
140+
// MARK: - For View
141+
var fullName: String? {
142+
return "UI" + rawValue.prefix(1).uppercased() + rawValue.dropFirst()
143+
}
144+
145+
var category: ModelCategory {
146+
switch self {
147+
case .label,
148+
.textField,
149+
.textView,
150+
.searchBar:
151+
return .text
152+
case .scrollView,
153+
.tableView,
154+
.collectionView:
155+
return .scroll
156+
case .button,
157+
.pageControl,
158+
.`switch`,
159+
.slider,
160+
.stepper,
161+
.segmentedControl:
162+
return .control
163+
case .activityIndicatorView,
164+
.refreshControl,
165+
.progressView:
166+
return .loading
167+
case .pickerView,
168+
.datePicker:
169+
return .picker
170+
case .view,
171+
.imageView,
172+
.stackView,
173+
.visualEffectView,
174+
.navigationBar,
175+
.tabBar,
176+
.toolBar:
177+
return .view
178+
}
179+
}
180+
181+
@ViewBuilder
182+
func makeView() -> some View {
183+
switch self {
184+
case .label:
185+
UILabelComponent()
186+
case .textField:
187+
UITextFieldComponent()
188+
case .textView:
189+
UITextViewComponent()
190+
case .searchBar:
191+
UISearchBarComponent()
192+
case .tableView:
193+
UITableViewComponent()
194+
case .collectionView:
195+
UICollectionViewComponent()
196+
case .scrollView:
197+
UIScrollViewComponent()
198+
case .button:
199+
UIButtonComponent()
200+
case .segmentedControl:
201+
UISegmentedControlComponent()
202+
case .slider:
203+
UISliderComponent()
204+
case .switch:
205+
UISwitchComponent()
206+
case .stepper:
207+
UIStepperComponent()
208+
case .pageControl:
209+
UIPageControlComponent()
210+
case .activityIndicatorView:
211+
UIActivityIndicatorViewComponent()
212+
case .progressView:
213+
UIProgressViewComponent()
214+
case .refreshControl:
215+
UIRefreshControlComponent()
216+
case .datePicker:
217+
UIDatePickerComponent()
218+
case .pickerView:
219+
UIPickerViewComponent()
220+
case .stackView:
221+
UIStackViewComponent()
222+
case .imageView:
223+
UIImageViewComponent()
224+
case .visualEffectView:
225+
UIVisualEffectViewComponent()
226+
case .view:
227+
UIViewComponent()
228+
case .toolBar:
229+
UIToolBarComponent()
230+
case .navigationBar:
231+
UINavigationBarComponent()
232+
case .tabBar:
233+
UITabBarComponent()
234+
}
235+
}
236+
}
237+
238+
// MARK: - Component Category
239+
public enum ModelCategory: String, CaseIterable {
240+
case text
241+
case scroll
242+
case control
243+
case loading
244+
case picker
245+
case view
246+
case common
247+
248+
var iconName: String {
249+
switch self {
250+
case .text:
251+
return "textformat"
252+
case .scroll:
253+
return "arrow.up.and.down.square"
254+
case .control:
255+
return "gamecontroller"
256+
case .loading:
257+
return "rays"
258+
case .picker:
259+
return "eyedropper.halffull"
260+
case .view:
261+
return "eyeglasses"
262+
case .common:
263+
return "gearshape"
264+
}
265+
}
266+
267+
var title: String {
268+
return rawValue.prefix(1).uppercased() + rawValue.dropFirst()
269+
}
144270
}

‎ThenGenerator/Sources/Core/ViewInitGenerator.swift

+6-6
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class ViewInitGenerator {
1212
public static let shared = ViewInitGenerator()
1313

1414
init() {
15-
//CoreDataManager.shared
15+
1616
}
1717

1818
// MARK: - Generate then Strings
@@ -48,7 +48,6 @@ extension ViewInitGenerator {
4848

4949
func generate(startPosition: Int, variableName: String) -> String {
5050
let components = UIComponents(variableName: variableName)
51-
let space = String(repeating: " ", count: startPosition)
5251

5352
let commonModel = CommonModel()
5453
let accessModifier = commonModel.accessModifier
@@ -66,18 +65,19 @@ extension ViewInitGenerator {
6665
}
6766
*/
6867
var initClosureTextArray = [
69-
"\(accessModifier.beginningOfVariable)let \(variableName) = \(components.fullName).then {",
68+
"\(accessModifier.beginningOfVariable)let \(variableName) = \(components.viewInitName).then {",
7069
// insert initArray position
7170
"\(indentString)$0.translatesAutoresizingMaskIntoConstraints = \(translatesAutoresizingMaskIntoConstraints.toString())",
7271
"}\n"
7372
]
74-
75-
textArray.forEach { initClosureTextArray.insert($0, at: 2) }
73+
74+
initClosureTextArray.insert(contentsOf: textArray, at: 2)
7675

7776
// add space and new line
7877
let initClosureText = initClosureTextArray
79-
.map { "\(space)\($0)\n" }
78+
.map { "\(indentString)\($0)\n" }
8079
.joined()
80+
8181
return initClosureText
8282
}
8383
}

0 commit comments

Comments
 (0)
Please sign in to comment.