Skip to content

Commit 5c0a868

Browse files
🚸 category field icon (#58)
1 parent 8c13a71 commit 5c0a868

File tree

4 files changed

+41
-9
lines changed

4 files changed

+41
-9
lines changed

‎GoMoney/Scences/AddExpense/AddExpenseField.swift‎

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import UIKit
22

33
class AddExpenseField: UIView {
4+
var placeHolder: String? {
5+
didSet {
6+
inputField.placeholder = placeHolder
7+
}
8+
}
9+
410
var text: String? {
511
didSet {
612
inputField.text = text
@@ -9,19 +15,28 @@ class AddExpenseField: UIView {
915

1016
lazy var label = GMLabel {
1117
$0.textColor = .darkGray
18+
$0.font = .nova(20)
1219
}
1320

1421
lazy var inputField: ExpenseTextField = .build {
1522
$0.tintColor = .clear
23+
$0.font = .nova(20)
24+
25+
let attributes = [
26+
NSAttributedString.Key.font: UIFont.nova(16),
27+
]
28+
29+
$0.attributedPlaceholder = NSAttributedString(string: self.placeHolder ?? "", attributes: attributes)
1630
}
1731

1832
private(set) var name: String = ""
1933
private(set) var defaultValue: String = ""
2034

21-
init(name: String, defaultValue: String = "", makeInputView: ((ExpenseTextField) -> Void)? = nil) {
35+
init(name: String, defaultValue: String = "", placeHolder: String = "", makeInputView: ((ExpenseTextField) -> Void)? = nil) {
2236
super.init(frame: .zero)
2337

2438
self.name = name
39+
self.placeHolder = placeHolder
2540
self.defaultValue = defaultValue
2641
setView()
2742
makeInputView?(inputField)
@@ -39,13 +54,13 @@ class AddExpenseField: UIView {
3954
label.text = name
4055
inputField.text = defaultValue
4156

42-
heightAnchor.constraint(equalToConstant: 40).isActive = true
57+
heightAnchor.constraint(equalToConstant: 56).isActive = true
4358

4459
label.anchor(
4560
top: topAnchor,
4661
left: leftAnchor)
4762
label.centerYToView(self)
48-
label.widthAnchor.constraint(equalTo: widthAnchor, multiplier: 0.2).isActive = true
63+
label.widthAnchor.constraint(equalTo: widthAnchor, multiplier: 0.3).isActive = true
4964

5065
inputField.anchor(
5166
top: label.topAnchor,

‎GoMoney/Scences/AddExpense/AddExpenseForm.swift‎

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ import UIKit
22

33
class AddExpenseForm: UIView {
44
private(set) var curDate = Date()
5-
private(set) var curTag: TransactionTag?
5+
private(set) var curTag: TransactionTag? {
6+
didSet {
7+
fillTag()
8+
}
9+
}
610

711
lazy var dateField = {
812
let field = AddExpenseField(
@@ -23,7 +27,7 @@ class AddExpenseForm: UIView {
2327
return field
2428
}()
2529

26-
lazy var categoryField = AddExpenseField(name: "Category")
30+
lazy var categoryField = AddExpenseField(name: "Category", placeHolder: "Enter Category")
2731

2832
private func setCategoryField() {
2933
let field = categoryField.inputField
@@ -32,7 +36,6 @@ class AddExpenseForm: UIView {
3236
type: transType,
3337
didSelect: { [weak field, weak self] tag in
3438
self?.curTag = tag
35-
field?.text = tag.name
3639
field?.resignFirstResponder()
3740
}
3841
)
@@ -66,7 +69,7 @@ class AddExpenseForm: UIView {
6669
}
6770

6871
lazy var amountField = {
69-
let field = AddExpenseField(name: "Amount") { textField in
72+
let field = AddExpenseField(name: "Amount", placeHolder: "Enter Amount") { textField in
7073
// TODO: Custom Keyboard InputView, use default keyboard temporarily.
7174
textField.keyboardType = .numberPad
7275
textField.inputAccessoryView = AccessoryView("Select Amount", doneTapped: { [weak textField] in
@@ -77,7 +80,7 @@ class AddExpenseForm: UIView {
7780
}()
7881

7982
lazy var noteField = {
80-
let field = AddExpenseField(name: "Note") { textField in
83+
let field = AddExpenseField(name: "Note", placeHolder: "Enter Note") { textField in
8184
textField.inputAccessoryView = AccessoryView("Note", doneTapped: { [weak textField] in
8285
textField?.resignFirstResponder()
8386
})
@@ -198,6 +201,19 @@ class AddExpenseForm: UIView {
198201
}
199202
controller?.present(newTagVC, animated: true)
200203
}
204+
205+
private func fillTag() {
206+
if let tag = curTag {
207+
let field = categoryField.inputField
208+
field.text = tag.name
209+
let img = GMExpenseIcon()
210+
img.loadIcon(src: tag.icon)
211+
img.backgroundColor = K.Color.background
212+
img.anchor(width: 42, height: 42)
213+
field.rightView = img
214+
field.rightViewMode = .always
215+
}
216+
}
201217
}
202218

203219
extension AddExpenseForm {

‎GoMoney/Scences/AddExpense/AddExpenseViewController.swift‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class AddExpenseViewController: GMMainViewController {
9595
top: addExpenseForm.bottomAnchor,
9696
left: addExpenseForm.leftAnchor,
9797
right: addExpenseForm.rightAnchor,
98-
paddingTop: 24)
98+
paddingTop: 32)
9999

100100
saveButton.anchor(
101101
right: view.rightAnchor,

‎GoMoney/Service/DataService.swift‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ class DataService {
127127
func updateExpense(oldTrans: Expense, newTrans: Expense, completion: ((Error?) -> Void)? = nil) {
128128
do {
129129
try realm.write {
130+
oldTrans.type = newTrans.type
130131
oldTrans.amount = newTrans.amount
131132
oldTrans.tag = newTrans.tag
132133
oldTrans.note = newTrans.note

0 commit comments

Comments
 (0)