浏览代码

Fix Indeed browser Home button visibility in dark mode.

Use theme-aware toolbar chrome and brand-blue control tints so the Home label and navigation buttons stay readable when appearance changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 2 月之前
父节点
当前提交
0a10a0d23b
共有 1 个文件被更改,包括 37 次插入14 次删除
  1. 37 14
      App for Indeed/Controllers/IndeedJobBrowserWindowController.swift

+ 37 - 14
App for Indeed/Controllers/IndeedJobBrowserWindowController.swift

@@ -22,6 +22,8 @@ final class IndeedJobBrowserViewController: NSViewController, WKNavigationDelega
     private let forwardButton = NSButton()
     private let reloadButton = NSButton()
     private let dismissEmbeddedButton = NSButton(title: "Home", target: nil, action: nil)
+    private let toolbarContainer = NSView()
+    private var appearanceObserver: NSObjectProtocol?
 
     override func loadView() {
         view = NSView(frame: NSRect(x: 0, y: 0, width: 920, height: 720))
@@ -45,10 +47,8 @@ final class IndeedJobBrowserViewController: NSViewController, WKNavigationDelega
         dismissEmbeddedButton.action = #selector(dismissEmbedded)
         dismissEmbeddedButton.toolTip = "Return to the previous screen"
 
-        let toolbar = NSView()
-        toolbar.translatesAutoresizingMaskIntoConstraints = false
-        toolbar.wantsLayer = true
-        toolbar.layer?.backgroundColor = NSColor(srgbRed: 247 / 255, green: 247 / 255, blue: 247 / 255, alpha: 1).cgColor
+        toolbarContainer.translatesAutoresizingMaskIntoConstraints = false
+        toolbarContainer.wantsLayer = true
 
         let barStack: NSStackView
         if onDismissEmbedded != nil {
@@ -62,19 +62,19 @@ final class IndeedJobBrowserViewController: NSViewController, WKNavigationDelega
         barStack.distribution = .fill
         barStack.translatesAutoresizingMaskIntoConstraints = false
 
-        toolbar.addSubview(barStack)
-        view.addSubview(toolbar)
+        toolbarContainer.addSubview(barStack)
+        view.addSubview(toolbarContainer)
         view.addSubview(webView)
 
         var layoutConstraints: [NSLayoutConstraint] = [
-            toolbar.leadingAnchor.constraint(equalTo: view.leadingAnchor),
-            toolbar.trailingAnchor.constraint(equalTo: view.trailingAnchor),
-            toolbar.topAnchor.constraint(equalTo: view.topAnchor),
-            toolbar.heightAnchor.constraint(equalToConstant: 48),
+            toolbarContainer.leadingAnchor.constraint(equalTo: view.leadingAnchor),
+            toolbarContainer.trailingAnchor.constraint(equalTo: view.trailingAnchor),
+            toolbarContainer.topAnchor.constraint(equalTo: view.topAnchor),
+            toolbarContainer.heightAnchor.constraint(equalToConstant: 48),
 
-            barStack.leadingAnchor.constraint(equalTo: toolbar.leadingAnchor, constant: 12),
-            barStack.trailingAnchor.constraint(equalTo: toolbar.trailingAnchor, constant: -12),
-            barStack.centerYAnchor.constraint(equalTo: toolbar.centerYAnchor),
+            barStack.leadingAnchor.constraint(equalTo: toolbarContainer.leadingAnchor, constant: 12),
+            barStack.trailingAnchor.constraint(equalTo: toolbarContainer.trailingAnchor, constant: -12),
+            barStack.centerYAnchor.constraint(equalTo: toolbarContainer.centerYAnchor),
 
             backButton.widthAnchor.constraint(equalToConstant: 32),
             backButton.heightAnchor.constraint(equalToConstant: 28),
@@ -85,7 +85,7 @@ final class IndeedJobBrowserViewController: NSViewController, WKNavigationDelega
 
             webView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
             webView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
-            webView.topAnchor.constraint(equalTo: toolbar.bottomAnchor),
+            webView.topAnchor.constraint(equalTo: toolbarContainer.bottomAnchor),
             webView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
         ]
         if onDismissEmbedded != nil {
@@ -94,6 +94,14 @@ final class IndeedJobBrowserViewController: NSViewController, WKNavigationDelega
         NSLayoutConstraint.activate(layoutConstraints)
 
         updateNavigationButtons()
+        applyCurrentAppearance()
+        appearanceObserver = NotificationCenter.default.addObserver(
+            forName: AppAppearanceManager.didChangeNotification,
+            object: nil,
+            queue: .main
+        ) { [weak self] _ in
+            self?.applyCurrentAppearance()
+        }
 
         if let pendingURL {
             webView.load(URLRequest(url: pendingURL))
@@ -101,6 +109,12 @@ final class IndeedJobBrowserViewController: NSViewController, WKNavigationDelega
         }
     }
 
+    deinit {
+        if let appearanceObserver {
+            NotificationCenter.default.removeObserver(appearanceObserver)
+        }
+    }
+
     func loadPage(_ url: URL) {
         if isViewLoaded {
             webView.load(URLRequest(url: url))
@@ -133,6 +147,15 @@ final class IndeedJobBrowserViewController: NSViewController, WKNavigationDelega
         button.action = action
     }
 
+    private func applyCurrentAppearance() {
+        toolbarContainer.layer?.backgroundColor = AppDashboardTheme.chromeBackground.cgColor
+        let accent = AppDashboardTheme.brandBlue
+        dismissEmbeddedButton.contentTintColor = accent
+        backButton.contentTintColor = accent
+        forwardButton.contentTintColor = accent
+        reloadButton.contentTintColor = accent
+    }
+
     private func updateNavigationButtons() {
         backButton.isEnabled = webView.canGoBack
         forwardButton.isEnabled = webView.canGoForward