소스 검색

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