From a5f6eae574eb3b9b8b9a86aed703883a9e0e16c2 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Fri, 25 Feb 2022 13:38:00 -0800 Subject: [PATCH] create an email when user taps crete email button --- .../Views/Profile/NewsletterEmailsView.swift | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/apple/OmnivoreKit/Sources/App/Views/Profile/NewsletterEmailsView.swift b/apple/OmnivoreKit/Sources/App/Views/Profile/NewsletterEmailsView.swift index 58d00977e..3c3752e70 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Profile/NewsletterEmailsView.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Profile/NewsletterEmailsView.swift @@ -23,6 +23,21 @@ final class NewsletterEmailsViewModel: ObservableObject { ) .store(in: &subscriptions) } + + func createEmail(dataService: DataService) { + isLoading = true + + dataService.createNewsletterEmailPublisher().sink( + receiveCompletion: { [weak self] _ in + self?.isLoading = false + }, + receiveValue: { [weak self] result in + self?.isLoading = false + self?.emails.insert(result, at: 0) + } + ) + .store(in: &subscriptions) + } } struct NewsletterEmailsView: View { @@ -51,9 +66,7 @@ struct NewsletterEmailsView: View { Section(footer: Text(footerText)) { Button( action: { - withAnimation { - print("create email") - } + viewModel.createEmail(dataService: dataService) }, label: { HStack {