diff --git a/Sources/Brave/Frontend/Browser/BrowserViewController/BrowserViewController+Menu.swift b/Sources/Brave/Frontend/Browser/BrowserViewController/BrowserViewController+Menu.swift index da54141f63d..73fc4630d9f 100644 --- a/Sources/Brave/Frontend/Browser/BrowserViewController/BrowserViewController+Menu.swift +++ b/Sources/Brave/Frontend/Browser/BrowserViewController/BrowserViewController+Menu.swift @@ -285,7 +285,9 @@ extension BrowserViewController { browserViewController.dismiss(animated: true) browserViewController.tabToolbarDidPressShare() } - NightModeMenuButton() + NightModeMenuButton(dismiss: { + browserViewController.dismiss(animated: true) + }) MenuItemButton(icon: Image(braveSystemName: "leo.browser.bookmark-add"), title: Strings.addToMenuItem) { browserViewController.dismiss(animated: true) { browserViewController.openAddBookmark() diff --git a/Sources/Brave/Frontend/Browser/Toolbars/BottomToolbar/Menu/NightModeMenuButton.swift b/Sources/Brave/Frontend/Browser/Toolbars/BottomToolbar/Menu/NightModeMenuButton.swift index 01d57e5628f..134d6aaabdf 100644 --- a/Sources/Brave/Frontend/Browser/Toolbars/BottomToolbar/Menu/NightModeMenuButton.swift +++ b/Sources/Brave/Frontend/Browser/Toolbars/BottomToolbar/Menu/NightModeMenuButton.swift @@ -12,7 +12,10 @@ import Preferences /// A menu button that provides a shortcut to toggling Night Mode struct NightModeMenuButton: View { @ObservedObject private var nightMode = Preferences.General.nightModeEnabled + @State private var isViewDisplayed = false + var dismiss: () -> Void + var body: some View { HStack { MenuItemHeaderView( @@ -22,12 +25,17 @@ struct NightModeMenuButton: View { Toggle("", isOn: $nightMode.value) .labelsHidden() .toggleStyle(SwitchToggleStyle(tint: .accentColor)) + .onChange(of: nightMode.value) { _ in + guard isViewDisplayed else { return } + dismiss() + } } .padding(.horizontal, 14) .frame(maxWidth: .infinity, minHeight: 48.0) .background( Button(action: { Preferences.General.nightModeEnabled.value.toggle() + dismiss() }) { Color.clear } @@ -36,5 +44,11 @@ struct NightModeMenuButton: View { .accessibilityElement() .accessibility(addTraits: .isButton) .accessibility(label: Text(Strings.NightMode.settingsTitle)) + .onAppear { + isViewDisplayed = true + } + .onDisappear { + isViewDisplayed = false + } } }