Skip to content

Commit

Permalink
Fixed: not getting updated currency&removed empty summary currency
Browse files Browse the repository at this point in the history
  • Loading branch information
cp-nirali-s committed Jan 22, 2025
1 parent db33678 commit a6dbd4c
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 29 deletions.
8 changes: 6 additions & 2 deletions BaseStyle/BaseStyle/CustomUI/Buttons/CapsuleButton.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,17 @@ public struct CapsuleButton: View {
private let buttonName: String
private let paddingHr: CGFloat
private let paddingVr: CGFloat
private let cornerRadius: Double
private let isEnabled: Bool

private let onClick: (() -> Void)?

public init(buttonName: String, isEnabled: Bool = true, paddingHr: CGFloat = 73, paddingVr: CGFloat = 12, onClick: (() -> Void)?) {
public init(buttonName: String, isEnabled: Bool = true, paddingHr: CGFloat = 73,
paddingVr: CGFloat = 12, cornerRadius: Double = 12, onClick: (() -> Void)?) {
self.buttonName = buttonName
self.paddingHr = paddingHr
self.paddingVr = paddingVr
self.cornerRadius = cornerRadius
self.isEnabled = isEnabled
self.onClick = onClick
}
Expand All @@ -37,7 +41,7 @@ public struct CapsuleButton: View {
.padding(.horizontal, paddingHr)
.padding(.vertical, paddingVr)
.background(primaryColor)
.cornerRadius(12)
.cornerRadius(cornerRadius)
}
.buttonStyle(.scale)
.disabled(!isEnabled)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,10 @@ struct GroupTotalsView: View {

Spacer()

Text(viewModel.selectedCurrency.code)
.font(.buttonText())
.foregroundStyle(primaryLightText)
.padding(.vertical, 6)
.padding(.horizontal, 16)
.background(primaryColor)
.clipShape(RoundedRectangle(cornerRadius: 23))
.onTouchGesture {
viewModel.showCurrencyPicker = true
}
CapsuleButton(buttonName: viewModel.selectedCurrency.code, paddingHr: 16, paddingVr: 6,
cornerRadius: 23, onClick: viewModel.handleSelectedCurrencyTap)
}
.padding(.horizontal, 16)
.padding(.top, 16)
.padding([.horizontal, .top], 16)

GroupTotalTabView(selectedTab: viewModel.selectedTab,
onSelect: viewModel.handleTabItemSelection(_:))
Expand Down Expand Up @@ -116,21 +107,20 @@ private struct GroupTotalSummaryView: View {
var body: some View {
VStack(spacing: 0) {
if let summaryData = viewModel.summaryData {
let currencySymbol = viewModel.selectedCurrency.symbol
let currencyCode = viewModel.selectedCurrency.code

GroupSummaryAmountView(text: "Total group spending", amount: summaryData.groupTotalSpending,
currencySymbol: currencySymbol)
currencyCode: currencyCode)
GroupSummaryAmountView(text: "Total you paid for", amount: summaryData.totalPaidAmount,
currencySymbol: currencySymbol)
currencyCode: currencyCode)
GroupSummaryAmountView(text: "Your total share", amount: summaryData.totalShare,
currencySymbol: currencySymbol, fontColor: errorColor)
currencyCode: currencyCode, fontColor: errorColor)
GroupSummaryAmountView(text: "Payments made", amount: summaryData.paidAmount,
currencySymbol: currencySymbol)
currencyCode: currencyCode)
GroupSummaryAmountView(text: "Payments received", amount: summaryData.receivedAmount,
currencySymbol: currencySymbol, fontColor: errorColor)
GroupSummaryAmountView(text: "Total change in balance", amount: summaryData.changeInBalance,
currencySymbol: currencySymbol, fontColor: (summaryData.changeInBalance < 0 ? errorColor : successColor),
isLast: true)
currencyCode: currencyCode, fontColor: errorColor)
GroupSummaryAmountView(text: "Total change in balance", amount: summaryData.changeInBalance, currencyCode: currencyCode,
fontColor: (summaryData.changeInBalance < 0 ? errorColor : successColor), isLast: true)
}
}
}
Expand All @@ -140,14 +130,14 @@ private struct GroupSummaryAmountView: View {

let text: String
let amount: Double
let currencySymbol: String
let currencyCode: String
let fontColor: Color
let isLast: Bool

init(text: String, amount: Double, currencySymbol: String, fontColor: Color = successColor, isLast: Bool = false) {
init(text: String, amount: Double, currencyCode: String, fontColor: Color = successColor, isLast: Bool = false) {
self.text = text
self.amount = amount
self.currencySymbol = currencySymbol
self.currencyCode = currencyCode
self.fontColor = fontColor
self.isLast = isLast
}
Expand All @@ -160,7 +150,7 @@ private struct GroupSummaryAmountView: View {

Spacer()

Text(amount.formattedCurrency(currencySymbol, true))
Text(amount.formattedCurrency(currencyCode, true))
.font(.body1())
.foregroundStyle(amount == 0 ? lowestText : fontColor)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,22 @@ class GroupTotalsViewModel: BaseViewModel, ObservableObject {

private func updateSupportedCurrencies() {
guard let userId = preference.user?.id,
let currencies = group?.balances.first(where: { $0.id == userId })?.balanceByCurrency.keys else {
let balance = group?.balances.first(where: { $0.id == userId }) else {
viewState = .initial
return
}

supportedCurrencies = Currency.getAllCurrencies().filter { Array(Set(currencies)).contains($0.code) } // Extract all unique currency
// Filter out currencies where totalSummary is empty
let filteredCurrencies = balance.balanceByCurrency.filter { (_, currencyBalance) in
!currencyBalance.totalSummary.allSatisfy { summary in
summary.summary.groupTotalSpending == 0 && summary.summary.totalPaidAmount == 0 &&
summary.summary.totalShare == 0 && summary.summary.changeInBalance == 0 &&
summary.summary.paidAmount == 0 && summary.summary.receivedAmount == 0
}
}.map { $0.key }

supportedCurrencies = Currency.getAllCurrencies().filter { filteredCurrencies.contains($0.code) } // Extract all unique currency

if !supportedCurrencies.contains(selectedCurrency) {
selectedCurrency = Currency.defaultCurrency
}
Expand Down Expand Up @@ -127,6 +137,10 @@ class GroupTotalsViewModel: BaseViewModel, ObservableObject {
} ?? [:]
}

func handleSelectedCurrencyTap() {
showCurrencyPicker = true
}

// MARK: - Error Handling
private func handleServiceError() {
if !networkMonitor.isConnected {
Expand Down

0 comments on commit a6dbd4c

Please sign in to comment.