Преглед на файлове

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 месеца
родител
ревизия
f9e78da71e
променени са 1 файла, в които са добавени 16 реда и са изтрити 8 реда
  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