Skip to content

Commit

Permalink
fix override removal (#3828)
Browse files Browse the repository at this point in the history
Task/Issue URL:
https://app.asana.com/0/1204186595873227/1209321233961841

**Description**: Fix a bug where the feature flag override “remove
override” submenu does not appear
  • Loading branch information
SabrinaTardio authored Feb 5, 2025
1 parent 563abb9 commit 107fb07
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions DuckDuckGo/InternalUserDecider/FeatureFlagOverridesMenu.swift
Original file line number Diff line number Diff line change
Expand Up @@ -112,14 +112,16 @@ final class FeatureFlagOverridesMenu: NSMenu {

private func updateFeatureFlagItem(_ item: NSMenuItem, flag: FeatureFlag) {
let override = featureFlagger.localOverrides?.override(for: flag)
let submenu = NSMenu()
submenu.addItem(removeOverrideSubmenuItem(for: flag))
item.state = override == true ? .on : .off
item.submenu = override != nil ? cohortSubmenu(for: flag) : nil
item.submenu = override != nil ? submenu : nil
}

private func updateExperimentFeatureItem(_ item: NSMenuItem, flag: FeatureFlag) {
let override = featureFlagger.localOverrides?.experimentOverride(for: flag)
item.state = override != nil ? .on : .off
item.submenu = override != nil ? cohortSubmenu(for: flag) : cohortSubmenu(for: flag)
item.submenu = cohortSubmenu(for: flag)
}

// MARK: - Actions
Expand Down Expand Up @@ -177,17 +179,23 @@ final class FeatureFlagOverridesMenu: NSMenu {
submenu.addItem(NSMenuItem.separator())

// "Remove Override" only if an override exists
let removeOverrideItem = removeOverrideSubmenuItem(for: flag)
removeOverrideItem.isHidden = currentOverride == nil

submenu.addItem(removeOverrideItem)

return submenu
}

private func removeOverrideSubmenuItem(for flag: FeatureFlag) -> NSMenuItem {
let removeOverrideItem = NSMenuItem(
title: "Remove Override",
action: #selector(resetOverride(_:)),
target: self
)
removeOverrideItem.representedObject = flag
removeOverrideItem.isHidden = currentOverride == nil

submenu.addItem(removeOverrideItem)

return submenu
removeOverrideItem.isHidden = featureFlagger.localOverrides?.override(for: flag) == nil
return removeOverrideItem
}

private func cohorts<Flag: FeatureFlagDescribing>(for featureFlag: Flag) -> [any FeatureFlagCohortDescribing] {
Expand Down

0 comments on commit 107fb07

Please sign in to comment.