Skip to content

Commit 9addaba

Browse files
committed
Add a feature flag for the product review reply button
1 parent 07e571c commit 9addaba

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

Experiments/Experiments/DefaultFeatureFlagService.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public struct DefaultFeatureFlagService: FeatureFlagService {
3737
return true
3838
case .orderCreationSearchCustomers:
3939
return buildConfig == .localDeveloper || buildConfig == .alpha
40+
case .replyToProductReviews:
41+
return buildConfig == .localDeveloper || buildConfig == .alpha
4042
default:
4143
return true
4244
}

Experiments/Experiments/FeatureFlag.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,8 @@ public enum FeatureFlag: Int {
7777
/// Enables the Search Customers functionality in the Order Creation screen
7878
///
7979
case orderCreationSearchCustomers
80+
81+
/// Enables replying to product reviews
82+
///
83+
case replyToProductReviews
8084
}

WooCommerce/Classes/ViewRelated/Reviews/Cells/NoteDetailsCommentTableViewCell.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,17 @@ final class NoteDetailsCommentTableViewCell: UITableViewCell {
131131
}
132132
}
133133

134+
/// Indicates if the Reply Button is enabled (or not!)
135+
///
136+
var isReplyEnabled: Bool {
137+
get {
138+
return replyButton.isHidden
139+
}
140+
set {
141+
replyButton.isHidden = !newValue
142+
}
143+
}
144+
134145
/// Title: Usually displays the Author's Name.
135146
///
136147
var titleText: String? {

WooCommerce/Classes/ViewRelated/Reviews/ReviewDetailsViewController.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import UIKit
22
import Yosemite
33
import Gridicons
44
import SafariServices
5+
import Experiments
56

67

78
// MARK: - ReviewDetailsViewController
@@ -44,13 +45,16 @@ final class ReviewDetailsViewController: UIViewController {
4445
///
4546
private var rows = [Row]()
4647

48+
private let featureFlagService: FeatureFlagService
49+
4750
/// Designated Initializer
4851
///
49-
init(productReview: ProductReview, product: Product?, notification: Note?) {
52+
init(productReview: ProductReview, product: Product?, notification: Note?, featureFlagService: FeatureFlagService = ServiceLocator.featureFlagService) {
5053
self.productReview = productReview
5154
self.siteID = productReview.siteID
5255
self.product = product
5356
self.notification = notification
57+
self.featureFlagService = featureFlagService
5458
super.init(nibName: nil, bundle: nil)
5559
}
5660

@@ -332,6 +336,7 @@ private extension ReviewDetailsViewController {
332336
commentCell.isTrashEnabled = true
333337
commentCell.isSpamEnabled = true
334338
commentCell.isApproveSelected = productReview.status == .approved
339+
commentCell.isReplyEnabled = featureFlagService.isFeatureFlagEnabled(.replyToProductReviews)
335340

336341
let reviewID = productReview.reviewID
337342
let reviewSiteID = productReview.siteID

0 commit comments

Comments
 (0)