Kaynağa Gözat

Fix dashboard layout: pull AI Profile Insights card up

Remove bottom spacer that absorbed vertical space, size mainHost to
mainOverlay content with required vertical hugging, drop rigid min
height, and use a fixed gap between the insights link and card.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 2 ay önce
ebeveyn
işleme
c74f9a2c9c
1 değiştirilmiş dosya ile 18 ekleme ve 19 silme
  1. 18 19
      App for Indeed/Views/DashboardView.swift

+ 18 - 19
App for Indeed/Views/DashboardView.swift

@@ -114,6 +114,7 @@ final class DashboardView: NSView {
         mainOverlay.spacing = 0
         mainOverlay.alignment = .centerX
         mainOverlay.translatesAutoresizingMaskIntoConstraints = false
+        mainOverlay.setContentHuggingPriority(.required, for: .vertical)
 
         greetingLabel.font = .systemFont(ofSize: 32, weight: .bold)
         greetingLabel.textColor = Theme.primaryText
@@ -125,32 +126,30 @@ final class DashboardView: NSView {
         subtitleLabel.alignment = .center
         subtitleLabel.maximumNumberOfLines = 2
 
-        let topSpacer = NSView()
-        topSpacer.translatesAutoresizingMaskIntoConstraints = false
-        topSpacer.setContentHuggingPriority(.defaultLow, for: .vertical)
-        topSpacer.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
+        let topInset = NSView()
+        topInset.translatesAutoresizingMaskIntoConstraints = false
+        topInset.heightAnchor.constraint(equalToConstant: 32).isActive = true
 
-        let headerStack = NSStackView(views: [greetingLabel, subtitleLabel])
+        configureInsightsCard()
+
+        let titleBlock = NSStackView(views: [greetingLabel, subtitleLabel])
+        titleBlock.orientation = .vertical
+        titleBlock.spacing = 10
+        titleBlock.alignment = .centerX
+
+        let headerStack = NSStackView(views: [titleBlock, insightsLinkButton])
         headerStack.orientation = .vertical
-        headerStack.spacing = 10
+        headerStack.spacing = 18
         headerStack.alignment = .centerX
 
-        configureInsightsCard()
-
         let midSpacer = NSView()
         midSpacer.translatesAutoresizingMaskIntoConstraints = false
-        midSpacer.heightAnchor.constraint(greaterThanOrEqualToConstant: 28).isActive = true
-
-        let bottomSpacer = NSView()
-        bottomSpacer.translatesAutoresizingMaskIntoConstraints = false
-        bottomSpacer.setContentHuggingPriority(.defaultLow, for: .vertical)
-        bottomSpacer.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
+        midSpacer.heightAnchor.constraint(equalToConstant: 20).isActive = true
 
-        mainOverlay.addArrangedSubview(topSpacer)
+        mainOverlay.addArrangedSubview(topInset)
         mainOverlay.addArrangedSubview(headerStack)
         mainOverlay.addArrangedSubview(midSpacer)
         mainOverlay.addArrangedSubview(insightsCard)
-        mainOverlay.addArrangedSubview(bottomSpacer)
 
         sparkleView.translatesAutoresizingMaskIntoConstraints = false
         sparkleView.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 22, weight: .regular)
@@ -180,7 +179,6 @@ final class DashboardView: NSView {
 
             sidebar.widthAnchor.constraint(equalToConstant: 225),
             mainHost.widthAnchor.constraint(greaterThanOrEqualToConstant: 720),
-            mainHost.heightAnchor.constraint(greaterThanOrEqualToConstant: 620),
 
             mainGradient.leadingAnchor.constraint(equalTo: mainHost.leadingAnchor),
             mainGradient.trailingAnchor.constraint(equalTo: mainHost.trailingAnchor),
@@ -190,12 +188,14 @@ final class DashboardView: NSView {
             mainOverlay.leadingAnchor.constraint(equalTo: mainHost.leadingAnchor),
             mainOverlay.trailingAnchor.constraint(equalTo: mainHost.trailingAnchor),
             mainOverlay.topAnchor.constraint(equalTo: mainHost.topAnchor),
-            mainOverlay.bottomAnchor.constraint(equalTo: mainHost.bottomAnchor),
+            mainHost.bottomAnchor.constraint(equalTo: mainOverlay.bottomAnchor, constant: 24),
 
             greetingLabel.leadingAnchor.constraint(equalTo: mainOverlay.leadingAnchor, constant: 24),
             greetingLabel.trailingAnchor.constraint(equalTo: mainOverlay.trailingAnchor, constant: -24),
             subtitleLabel.leadingAnchor.constraint(equalTo: greetingLabel.leadingAnchor),
             subtitleLabel.trailingAnchor.constraint(equalTo: greetingLabel.trailingAnchor),
+            insightsLinkButton.leadingAnchor.constraint(equalTo: greetingLabel.leadingAnchor),
+            insightsLinkButton.trailingAnchor.constraint(equalTo: greetingLabel.trailingAnchor),
 
             sparkleView.trailingAnchor.constraint(equalTo: mainHost.trailingAnchor, constant: -28),
             sparkleView.bottomAnchor.constraint(equalTo: mainHost.bottomAnchor, constant: -28)
@@ -242,7 +242,6 @@ final class DashboardView: NSView {
         let inner = NSStackView(views: [
             insightsTitleLabel,
             insightsBodyLabel,
-            insightsLinkButton,
             togglesLabel,
             toggleRow
         ])