Skip to content

Commit

Permalink
Merge pull request #30 from vespinola/29-add-pull-to-refresh
Browse files Browse the repository at this point in the history
added pull to refresh
  • Loading branch information
vespinola committed Jun 26, 2024
2 parents 9b04390 + 84154a3 commit 85c0ef4
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,21 @@ struct PackagesForWithdrawalView: View {
}
}
.onAppear {
Task {
await viewModel.getPackages()
}
getPackages()
}
.refreshable {
getPackages(forceUpdate: true)
}
.showRippleSpinner(isLoading: $viewModel.isLoading)
.toast(message: $viewModel.toastMessage)
}

private func getPackages(forceUpdate: Bool = false) {
Task {
await viewModel.getPackages(forceUpdate: forceUpdate)
}
}

@ViewBuilder
private func content(for groupedPackages: [GroupedPackageEntity]) -> some View {
if groupedPackages.isEmpty {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ final class PackagesForWithdrawalViewModel: ObservableObject {
}

@MainActor
func getPackages() async {
guard groupedPackagesEntity == nil else { return }
func getPackages(forceUpdate: Bool = false) async {
guard groupedPackagesEntity == nil || forceUpdate else { return }

defer { isLoading = false }

do {
isLoading = true
groupedPackagesEntity = try await packagesRepository.getPackagesForWithdrawl()
isLoading = false
} catch {
isLoading = false
toastMessage = error.localizedDescription
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,21 @@ struct WithdrawnPackagesView: View {
}
}
.onAppear {
Task {
await viewModel.getPackages()
}
getPackages()
}
.refreshable {
getPackages(forceUpdate: true)
}
.showRippleSpinner(isLoading: $viewModel.isLoading)
.toast(message: $viewModel.toastMessage)
}

private func getPackages(forceUpdate: Bool = false) {
Task {
await viewModel.getPackages(forceUpdate: forceUpdate)
}
}

@ViewBuilder
private func content(for groupedPackages: [GroupedPackageEntity]) -> some View {
if groupedPackages.isEmpty {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,15 @@ final class WithdrawnPackagesViewModel: ObservableObject {
}

@MainActor
func getPackages() async {
guard groupedPackagesEntity == nil else { return }
func getPackages(forceUpdate: Bool = false) async {
guard groupedPackagesEntity == nil || forceUpdate else { return }

defer { isLoading = false }

do {
isLoading = true
groupedPackagesEntity = try await packagesRepository.getWithdrawnPackages()
isLoading = false
} catch {
isLoading = false
toastMessage = error.localizedDescription
}
}
Expand Down

0 comments on commit 85c0ef4

Please sign in to comment.