Browse Source

Show Google sign-in / profile bar on every main page

Hoist scheduleTopAuthRow into makeMainPanel above mainContentHost so Photo,
Video, Tutorials, and Settings use the same control. Remove the duplicate row
from Join Meetings and align placeholder page top insets with the new layout.
Re-apply stored profile avatar when rebuilding the panel after sign-in.

Made-with: Cursor
huzaifahayat12 3 months ago
parent
commit
f9e78da71e
1 changed files with 16 additions and 8 deletions
  1. 16 8
      meetings_app/ViewController.swift

+ 16 - 8
meetings_app/ViewController.swift

@@ -642,7 +642,7 @@ private extension ViewController {
         panel.addSubview(sub)
         NSLayoutConstraint.activate([
             titleLabel.leadingAnchor.constraint(equalTo: panel.leadingAnchor, constant: 28),
-            titleLabel.topAnchor.constraint(equalTo: panel.topAnchor, constant: 26),
+            titleLabel.topAnchor.constraint(equalTo: panel.topAnchor),
             sub.leadingAnchor.constraint(equalTo: titleLabel.leadingAnchor),
             sub.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: 8)
         ])
@@ -919,16 +919,29 @@ private extension ViewController {
         panel.wantsLayer = true
         panel.layer?.backgroundColor = palette.pageBackground.cgColor
 
+        let authBar = scheduleTopAuthRow()
+        authBar.translatesAutoresizingMaskIntoConstraints = false
+        panel.addSubview(authBar)
+
         let host = NSView()
         host.translatesAutoresizingMaskIntoConstraints = false
         panel.addSubview(host)
         NSLayoutConstraint.activate([
+            authBar.leadingAnchor.constraint(equalTo: panel.leadingAnchor, constant: 28),
+            authBar.trailingAnchor.constraint(equalTo: panel.trailingAnchor, constant: -28),
+            authBar.topAnchor.constraint(equalTo: panel.topAnchor, constant: 26),
+
             host.leadingAnchor.constraint(equalTo: panel.leadingAnchor),
             host.trailingAnchor.constraint(equalTo: panel.trailingAnchor),
-            host.topAnchor.constraint(equalTo: panel.topAnchor),
+            host.topAnchor.constraint(equalTo: authBar.bottomAnchor, constant: 20),
             host.bottomAnchor.constraint(equalTo: panel.bottomAnchor)
         ])
         mainContentHost = host
+
+        if googleOAuth.loadTokens() != nil, let profile = scheduleCurrentProfile {
+            applyGoogleProfile(profile)
+        }
+
         showSidebarPage(.joinMeetings)
 
         return panel
@@ -944,11 +957,6 @@ private extension ViewController {
         contentStack.spacing = 14
         contentStack.alignment = .leading
 
-        contentStack.addArrangedSubview(scheduleTopAuthRow())
-        if let authRow = contentStack.arrangedSubviews.last {
-            contentStack.setCustomSpacing(20, after: authRow)
-        }
-
         let joinActions = meetJoinActionsRow()
         contentStack.addArrangedSubview(textLabel("Join Meetings", font: typography.pageTitle, color: palette.textPrimary))
         contentStack.addArrangedSubview(meetJoinSectionRow())
@@ -968,7 +976,7 @@ private extension ViewController {
         NSLayoutConstraint.activate([
             contentStack.leadingAnchor.constraint(equalTo: panel.leadingAnchor, constant: 28),
             contentStack.trailingAnchor.constraint(equalTo: panel.trailingAnchor, constant: -28),
-            contentStack.topAnchor.constraint(equalTo: panel.topAnchor, constant: 26)
+            contentStack.topAnchor.constraint(equalTo: panel.topAnchor)
         ])
 
         Task { [weak self] in