@@ -240,7 +240,9 @@ private extension DashboardViewController {
240240 }
241241 self . present ( benefitsController, animated: true , completion: nil )
242242 } dismissAction: { [ weak self] in
243- // TODO: 5362 - Persist dismiss state per site
243+ let dismissAction = AppSettingsAction . setJetpackBenefitsBannerLastDismissedTime ( time: Date ( ) )
244+ ServiceLocator . stores. dispatch ( dismissAction)
245+
244246 self ? . hideJetpackBenefitsBanner ( )
245247 }
246248 }
@@ -437,11 +439,18 @@ private extension DashboardViewController {
437439 return
438440 }
439441
440- // TODO: 5362 - Display banner for JCP sites only if the banner has not been dismissed before.
441- let shouldShowJetpackBenefitsBanner = ServiceLocator . featureFlagService. isFeatureFlagEnabled ( . jetpackConnectionPackageSupport)
442- && site? . isJetpackCPConnected == true
442+ // Checks if Jetpack banner can be visible from app settings.
443+ let action = AppSettingsAction . loadJetpackBenefitsBannerVisibility ( currentTime: Date ( ) ,
444+ calendar: . current) { [ weak self] isVisibleFromAppSettings in
445+ guard let self = self else { return }
446+
447+ let shouldShowJetpackBenefitsBanner = ServiceLocator . featureFlagService. isFeatureFlagEnabled ( . jetpackConnectionPackageSupport)
448+ && site? . isJetpackCPConnected == true
449+ && isVisibleFromAppSettings
443450
444- self . updateJetpackBenefitsBannerVisibility ( isBannerVisible: shouldShowJetpackBenefitsBanner, contentView: contentView)
451+ self . updateJetpackBenefitsBannerVisibility ( isBannerVisible: shouldShowJetpackBenefitsBanner, contentView: contentView)
452+ }
453+ ServiceLocator . stores. dispatch ( action)
445454 } . store ( in: & cancellables)
446455 }
447456}
0 commit comments