Skip to content

Commit 804298c

Browse files
authored
Merge pull request #7988 from woocommerce/issue/7978-products-onboarding-banner-buttons
Products Onboarding: Update buttons for onboarding banner
2 parents c35ef3b + 2df1459 commit 804298c

File tree

5 files changed

+26
-6
lines changed

5 files changed

+26
-6
lines changed

WooCommerce/Classes/ViewModels/Feature Announcement Cards/FeatureAnnouncementCardViewModel.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ protocol AnnouncementCardViewModelProtocol {
1717
func onAppear()
1818
func ctaTapped()
1919

20+
var showDismissButton: Bool { get }
2021
var showDismissConfirmation: Bool { get }
2122
var dismissAlertTitle: String { get }
2223
var dismissAlertMessage: String { get }
@@ -45,6 +46,8 @@ class FeatureAnnouncementCardViewModel: AnnouncementCardViewModelProtocol {
4546
config.image
4647
}
4748

49+
var showDismissButton: Bool = true
50+
4851
var showDismissConfirmation: Bool {
4952
config.showDismissConfirmation
5053
}

WooCommerce/Classes/ViewModels/Feature Announcement Cards/JustInTimeMessageAnnouncementCardViewModel.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ struct JustInTimeMessageAnnouncementCardViewModel: AnnouncementCardViewModelProt
2222
// No-op
2323
}
2424

25+
var showDismissButton: Bool = true
26+
2527
var showDismissConfirmation: Bool = false
2628

2729
var dismissAlertTitle: String = ""

WooCommerce/Classes/ViewModels/Feature Announcement Cards/ProductsOnboardingAnnouncementCardViewModel.swift

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,19 @@ struct ProductsOnboardingAnnouncementCardViewModel: AnnouncementCardViewModelPro
1818
// No-op
1919
}
2020

21+
// MARK: Call to Action
22+
23+
let onCTATapped: (() -> Void)?
24+
2125
func ctaTapped() {
26+
onCTATapped?()
27+
}
28+
29+
// MARK: Dismiss button (disabled)
30+
31+
var showDismissButton: Bool = false
32+
33+
func dontShowAgainTapped() {
2234
// No-op
2335
}
2436

@@ -30,10 +42,6 @@ struct ProductsOnboardingAnnouncementCardViewModel: AnnouncementCardViewModelPro
3042

3143
var dismissAlertMessage: String = ""
3244

33-
func dontShowAgainTapped() {
34-
// No-op
35-
}
36-
3745
func remindLaterTapped() {
3846
// No-op
3947
}

WooCommerce/Classes/ViewRelated/Dashboard/DashboardViewModel.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,14 @@ final class DashboardViewModel {
123123
ServiceLocator.analytics.track(.productsOnboardingEligible)
124124

125125
if self?.featureFlagService.isFeatureFlagEnabled(.productsOnboarding) == true {
126-
let viewModel = ProductsOnboardingAnnouncementCardViewModel()
126+
let viewModel = ProductsOnboardingAnnouncementCardViewModel(onCTATapped: { [weak self] in
127+
guard let tabBarController = AppDelegate.shared.tabBarController else {
128+
return
129+
}
130+
131+
self?.announcementViewModel = nil // Dismiss announcement
132+
tabBarController.navigateTo(.products)
133+
})
127134
self?.announcementViewModel = viewModel
128135
}
129136
}

WooCommerce/Classes/ViewRelated/ReusableViews/SwiftUI Components/FeatureAnnouncementCardView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ struct FeatureAnnouncementCardView: View {
3030
BadgeView(type: viewModel.badgeType)
3131
.padding(.leading, Layout.padding)
3232
Spacer()
33-
if let dismiss = dismiss {
33+
if viewModel.showDismissButton, let dismiss = dismiss {
3434
Button(action: {
3535
if viewModel.showDismissConfirmation {
3636
showingDismissActionSheet = true

0 commit comments

Comments
 (0)