Переглянути джерело

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 1 тиждень тому
батько
коміт
f9e78da71e
1 змінених файлів з 16 додано та 8 видалено
  1. 16 8
      meetings_app/ViewController.swift

+ 16 - 8
meetings_app/ViewController.swift

@@ -642,7 +642,7 @@ private extension ViewController {
642 642
         panel.addSubview(sub)
643 643
         NSLayoutConstraint.activate([
644 644
             titleLabel.leadingAnchor.constraint(equalTo: panel.leadingAnchor, constant: 28),
645
-            titleLabel.topAnchor.constraint(equalTo: panel.topAnchor, constant: 26),
645
+            titleLabel.topAnchor.constraint(equalTo: panel.topAnchor),
646 646
             sub.leadingAnchor.constraint(equalTo: titleLabel.leadingAnchor),
647 647
             sub.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: 8)
648 648
         ])
@@ -919,16 +919,29 @@ private extension ViewController {
919 919
         panel.wantsLayer = true
920 920
         panel.layer?.backgroundColor = palette.pageBackground.cgColor
921 921
 
922
+        let authBar = scheduleTopAuthRow()
923
+        authBar.translatesAutoresizingMaskIntoConstraints = false
924
+        panel.addSubview(authBar)
925
+
922 926
         let host = NSView()
923 927
         host.translatesAutoresizingMaskIntoConstraints = false
924 928
         panel.addSubview(host)
925 929
         NSLayoutConstraint.activate([
930
+            authBar.leadingAnchor.constraint(equalTo: panel.leadingAnchor, constant: 28),
931
+            authBar.trailingAnchor.constraint(equalTo: panel.trailingAnchor, constant: -28),
932
+            authBar.topAnchor.constraint(equalTo: panel.topAnchor, constant: 26),
933
+
926 934
             host.leadingAnchor.constraint(equalTo: panel.leadingAnchor),
927 935
             host.trailingAnchor.constraint(equalTo: panel.trailingAnchor),
928
-            host.topAnchor.constraint(equalTo: panel.topAnchor),
936
+            host.topAnchor.constraint(equalTo: authBar.bottomAnchor, constant: 20),
929 937
             host.bottomAnchor.constraint(equalTo: panel.bottomAnchor)
930 938
         ])
931 939
         mainContentHost = host
940
+
941
+        if googleOAuth.loadTokens() != nil, let profile = scheduleCurrentProfile {
942
+            applyGoogleProfile(profile)
943
+        }
944
+
932 945
         showSidebarPage(.joinMeetings)
933 946
 
934 947
         return panel
@@ -944,11 +957,6 @@ private extension ViewController {
944 957
         contentStack.spacing = 14
945 958
         contentStack.alignment = .leading
946 959
 
947
-        contentStack.addArrangedSubview(scheduleTopAuthRow())
948
-        if let authRow = contentStack.arrangedSubviews.last {
949
-            contentStack.setCustomSpacing(20, after: authRow)
950
-        }
951
-
952 960
         let joinActions = meetJoinActionsRow()
953 961
         contentStack.addArrangedSubview(textLabel("Join Meetings", font: typography.pageTitle, color: palette.textPrimary))
954 962
         contentStack.addArrangedSubview(meetJoinSectionRow())
@@ -968,7 +976,7 @@ private extension ViewController {
968 976
         NSLayoutConstraint.activate([
969 977
             contentStack.leadingAnchor.constraint(equalTo: panel.leadingAnchor, constant: 28),
970 978
             contentStack.trailingAnchor.constraint(equalTo: panel.trailingAnchor, constant: -28),
971
-            contentStack.topAnchor.constraint(equalTo: panel.topAnchor, constant: 26)
979
+            contentStack.topAnchor.constraint(equalTo: panel.topAnchor)
972 980
         ])
973 981
 
974 982
         Task { [weak self] in