Skip to content

Commit 8e9b4a5

Browse files
committed
Add Income tags
Fixes #31
1 parent 3117e04 commit 8e9b4a5

File tree

2 files changed

+44
-7
lines changed

2 files changed

+44
-7
lines changed

Expenso/Configs.swift

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ let CURRENCY_LIST = ["₹", "$", "€", "¥", "£", "¢", "₭"]
3030
let TRANS_TYPE_INCOME = "income"
3131
let TRANS_TYPE_EXPENSE = "expense"
3232

33-
// Transaction tags
33+
// Expense Transaction tags
3434
let TRANS_TAG_TRANSPORT = "transport"
3535
let TRANS_TAG_FOOD = "food"
3636
let TRANS_TAG_HOUSING = "housing"
@@ -39,11 +39,20 @@ let TRANS_TAG_MEDICAL = "medical"
3939
let TRANS_TAG_SAVINGS = "savings"
4040
let TRANS_TAG_PERSONAL = "personal"
4141
let TRANS_TAG_ENTERTAINMENT = "entertainment"
42-
let TRANS_TAG_OTHERS = "others"
4342
let TRANS_TAG_UTILITIES = "utilities"
4443

44+
// Income Transaction tags
45+
let TRANS_TAG_SALARY = "salary"
46+
let TRANS_TAG_CASHBACK = "cashback"
47+
let TRANS_TAG_INVESTMENT_RETURNS = "investment_returns"
48+
let TRANS_TAG_SALE = "sale"
49+
50+
// Common Transaction tags
51+
let TRANS_TAG_OTHERS = "others"
52+
4553
func getTransTagIcon(transTag: String) -> String {
4654
switch transTag {
55+
// Expenses
4756
case TRANS_TAG_TRANSPORT: return "trans_type_transport"
4857
case TRANS_TAG_FOOD: return "trans_type_food"
4958
case TRANS_TAG_HOUSING: return "trans_type_housing"
@@ -52,14 +61,22 @@ func getTransTagIcon(transTag: String) -> String {
5261
case TRANS_TAG_SAVINGS: return "trans_type_savings"
5362
case TRANS_TAG_PERSONAL: return "trans_type_personal"
5463
case TRANS_TAG_ENTERTAINMENT: return "trans_type_entertainment"
55-
case TRANS_TAG_OTHERS: return "trans_type_others"
5664
case TRANS_TAG_UTILITIES: return "trans_type_utilities"
65+
66+
// Incomes
67+
// TODO: Add icon sets for every income tag
68+
case TRANS_TAG_SALARY: return "trans_type_savings"
69+
case TRANS_TAG_CASHBACK: return "trans_type_savings"
70+
case TRANS_TAG_INVESTMENT_RETURNS: return "trans_type_savings"
71+
case TRANS_TAG_SALE: return "trans_type_savings"
72+
5773
default: return "trans_type_others"
5874
}
5975
}
6076

6177
func getTransTagTitle(transTag: String) -> String {
6278
switch transTag {
79+
// Expenses
6380
case TRANS_TAG_TRANSPORT: return "Transport"
6481
case TRANS_TAG_FOOD: return "Food"
6582
case TRANS_TAG_HOUSING: return "Housing"
@@ -68,8 +85,17 @@ func getTransTagTitle(transTag: String) -> String {
6885
case TRANS_TAG_SAVINGS: return "Savings"
6986
case TRANS_TAG_PERSONAL: return "Personal"
7087
case TRANS_TAG_ENTERTAINMENT: return "Entertainment"
71-
case TRANS_TAG_OTHERS: return "Others"
7288
case TRANS_TAG_UTILITIES: return "Utilities"
89+
90+
// Incomes
91+
case TRANS_TAG_SALARY: return "Salary"
92+
case TRANS_TAG_CASHBACK: return "Cashback"
93+
case TRANS_TAG_INVESTMENT_RETURNS: return "Investment Returns"
94+
case TRANS_TAG_SALE: return "Sale"
95+
96+
// Common
97+
case TRANS_TAG_OTHERS: return "Others"
98+
7399
default: return "Unknown"
74100
}
75101
}

Expenso/Screens/AddExpense/AddExpenseView.swift

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@ struct AddExpenseView: View {
2222
DropdownOption(key: TRANS_TYPE_EXPENSE, val: "Expense")
2323
]
2424

25-
let tagOptions = [
25+
let expenseTagOptions = [
2626
DropdownOption(key: TRANS_TAG_TRANSPORT, val: "Transport"),
2727
DropdownOption(key: TRANS_TAG_FOOD, val: "Food"),
28+
DropdownOption(key: TRANS_TAG_GROCERIES, val: "Groceries"),
2829
DropdownOption(key: TRANS_TAG_HOUSING, val: "Housing"),
2930
DropdownOption(key: TRANS_TAG_INSURANCE, val: "Insurance"),
3031
DropdownOption(key: TRANS_TAG_MEDICAL, val: "Medical"),
@@ -35,6 +36,14 @@ struct AddExpenseView: View {
3536
DropdownOption(key: TRANS_TAG_UTILITIES, val: "Utilities")
3637
]
3738

39+
let incomeTagOptions = [
40+
DropdownOption(key: TRANS_TAG_SALARY, val: "Salary"),
41+
DropdownOption(key: TRANS_TAG_CASHBACK, val: "Cashback"),
42+
DropdownOption(key: TRANS_TAG_INVESTMENT_RETURNS, val: "Investment Returns"),
43+
DropdownOption(key: TRANS_TAG_OTHERS, val: "Others"),
44+
DropdownOption(key: TRANS_TAG_SALE, val: "Sale"),
45+
]
46+
3847
var body: some View {
3948
NavigationView {
4049
ZStack {
@@ -88,8 +97,10 @@ struct AddExpenseView: View {
8897
}
8998

9099
DropdownButton(shouldShowDropdown: $viewModel.showTagDrop, displayText: $viewModel.tagTitle,
91-
options: tagOptions, mainColor: Color.text_primary_color,
92-
backgroundColor: Color.secondary_color, cornerRadius: 4, buttonHeight: 50) { key in
100+
options: viewModel.selectedType == TRANS_TYPE_INCOME ? incomeTagOptions : expenseTagOptions,
101+
mainColor: Color.text_primary_color, backgroundColor: Color.secondary_color,
102+
cornerRadius: 4, buttonHeight: 50) { key in
103+
let tagOptions = viewModel.selectedType == TRANS_TYPE_INCOME ? incomeTagOptions : expenseTagOptions
93104
let selectedObj = tagOptions.filter({ $0.key == key }).first
94105
if let object = selectedObj {
95106
viewModel.tagTitle = object.val

0 commit comments

Comments
 (0)