@@ -77,54 +77,70 @@ class BookmarkSetupViewController: EmbeddingViewController, BookmarkComposerDele
77
77
logoImageView. contentMode = . scaleAspectFit
78
78
logoImageView. translatesAutoresizingMaskIntoConstraints = false
79
79
80
- if let logoImage {
81
- // Keep aspect ratio + scale logo to 90% of available height
82
- logoImageView. widthAnchor. constraint ( equalTo: logoImageView. heightAnchor, multiplier: ( logoImage. size. width / logoImage. size. height) * 0.9 ) . isActive = true
83
- }
84
-
85
- let logoTitle = ThemeCSSLabel ( withSelectors: [ . title] )
86
- logoTitle. translatesAutoresizingMaskIntoConstraints = false
87
- logoTitle. font = . preferredFont( forTextStyle: . title2, with: . bold)
88
- logoTitle. text = headerTitle ?? Branding . shared. appDisplayName
89
-
90
- let logoContainerView = UIView ( )
91
- logoContainerView. translatesAutoresizingMaskIntoConstraints = false
92
- logoContainerView. cssSelector = . header
93
- logoContainerView. addSubview ( logoImageView)
94
- logoContainerView. addSubview ( logoTitle)
95
-
96
- logoContainerView. embedHorizontally ( views: [ logoImageView, logoTitle] , insets: NSDirectionalEdgeInsets ( top: 0 , leading: 0 , bottom: 0 , trailing: 0 ) ) { _, _ in
97
- return 10
98
- }
99
-
100
- contentView. addSubview ( logoContainerView)
101
-
102
- NSLayoutConstraint . activate ( [
103
- logoContainerView. leadingAnchor. constraint ( greaterThanOrEqualTo: contentView. safeAreaLayoutGuide. leadingAnchor) ,
104
- logoContainerView. trailingAnchor. constraint ( lessThanOrEqualTo: contentView. safeAreaLayoutGuide. trailingAnchor) ,
105
- logoContainerView. centerXAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. centerXAnchor) . with ( priority: . defaultHigh) ,
106
- logoContainerView. topAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. topAnchor, constant: 20 ) ,
107
- logoContainerView. heightAnchor. constraint ( equalToConstant: 40 )
108
- ] )
109
-
110
80
// Add cancel button
111
81
if cancelHandler != nil {
112
- let cancelButton = ThemeCSSButton ( withSelectors : [ . cancel ] )
113
- cancelButton . translatesAutoresizingMaskIntoConstraints = false
114
- cancelButton . setTitle ( " Cancel " . localized , for : . normal )
115
- cancelButton . addAction ( UIAction ( handler: { [ weak self] _ in
82
+ let navigationView = UINavigationBar ( )
83
+ navigationView . translatesAutoresizingMaskIntoConstraints = false
84
+
85
+ let cancelBarButton = UIBarButtonItem ( systemItem : . cancel , primaryAction : UIAction ( handler: { [ weak self] action in
116
86
self ? . cancel ( )
117
- } ) , for: . primaryActionTriggered)
118
-
119
- contentView. addSubview ( cancelButton)
120
-
87
+ } ) )
88
+ let navigationItem = UINavigationItem ( title: headerTitle ?? Branding . shared. appDisplayName)
89
+ navigationItem. rightBarButtonItem = cancelBarButton
90
+ navigationView. setItems ( [ navigationItem] , animated: false )
91
+
92
+ contentView. addSubview ( navigationView)
93
+ contentView. addSubview ( logoImageView)
94
+
95
+ NSLayoutConstraint . activate ( [
96
+ navigationView. topAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. topAnchor) ,
97
+ navigationView. leadingAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. leadingAnchor) ,
98
+ navigationView. trailingAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. trailingAnchor) ,
99
+
100
+ logoImageView. widthAnchor. constraint ( equalToConstant: 128 ) ,
101
+ logoImageView. heightAnchor. constraint ( equalToConstant: 128 ) ,
102
+ logoImageView. topAnchor. constraint ( equalTo: navigationView. safeAreaLayoutGuide. bottomAnchor, constant: 20.0 ) ,
103
+ logoImageView. centerXAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. centerXAnchor)
104
+ ] )
105
+ } else {
106
+ var title = headerTitle
107
+ if !Branding. shared. isBranded, title == " " {
108
+ title = Branding . shared. appDisplayName
109
+ }
110
+
111
+ let logoTitle = ThemeCSSLabel ( withSelectors: [ . title] )
112
+ logoTitle. translatesAutoresizingMaskIntoConstraints = false
113
+ logoTitle. font = . preferredFont( forTextStyle: . title3, with: . bold)
114
+ logoTitle. text = title
115
+ logoTitle. textAlignment = . center
116
+
117
+ let logoContainerView = UIView ( )
118
+ logoContainerView. translatesAutoresizingMaskIntoConstraints = false
119
+ logoContainerView. cssSelector = . header
120
+ logoContainerView. addSubview ( logoTitle)
121
+ logoContainerView. addSubview ( logoImageView)
122
+
123
+ logoContainerView. embedHorizontally ( views: [ logoTitle] , insets: NSDirectionalEdgeInsets ( top: 0 , leading: 0 , bottom: 0 , trailing: 0 ) ) { _, _ in
124
+ return 10
125
+ }
126
+
127
+ contentView. addSubview ( logoContainerView)
128
+ logoContainerView. addSubview ( logoImageView)
129
+
121
130
NSLayoutConstraint . activate ( [
122
- cancelButton. leadingAnchor. constraint ( greaterThanOrEqualTo: logoContainerView. trailingAnchor, constant: 20 ) ,
123
- cancelButton. trailingAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. trailingAnchor, constant: - 20 ) ,
124
- cancelButton. centerYAnchor. constraint ( equalTo: logoContainerView. centerYAnchor)
131
+ logoContainerView. leadingAnchor. constraint ( greaterThanOrEqualTo: contentView. safeAreaLayoutGuide. leadingAnchor) ,
132
+ logoContainerView. trailingAnchor. constraint ( lessThanOrEqualTo: contentView. safeAreaLayoutGuide. trailingAnchor) ,
133
+ logoContainerView. centerXAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. centerXAnchor) . with ( priority: . defaultHigh) ,
134
+ logoContainerView. topAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. topAnchor, constant: 20 ) ,
135
+ logoContainerView. heightAnchor. constraint ( equalToConstant: 40 ) ,
136
+
137
+ logoImageView. widthAnchor. constraint ( equalToConstant: 128 ) ,
138
+ logoImageView. heightAnchor. constraint ( equalToConstant: 128 ) ,
139
+ logoImageView. topAnchor. constraint ( equalTo: logoTitle. safeAreaLayoutGuide. bottomAnchor, constant: 20.0 ) ,
140
+ logoImageView. centerXAnchor. constraint ( equalTo: contentView. safeAreaLayoutGuide. centerXAnchor)
125
141
] )
126
142
}
127
-
143
+
128
144
// Add help message
129
145
if configuration. helpButtonURL != nil || configuration. helpMessage != nil {
130
146
var helpElements : [ ComposedMessageElement ] = [
0 commit comments