@@ -15,23 +15,6 @@ protocol PostEditorNavigationBarManagerDelegate: AnyObject {
1515 func navigationBarManager( _ manager: PostEditorNavigationBarManager , displayCancelMediaUploads sender: UIButton )
1616}
1717
18- class ExtendedTouchAreaButton : UIButton {
19- private var touchAreaPadding : CGFloat = 24.0
20-
21- override var isHighlighted : Bool {
22- didSet {
23- UIView . animate ( withDuration: 0.2 ) {
24- self . alpha = self . isHighlighted ? 0.5 : 1.0
25- }
26- }
27- }
28-
29- override func point( inside point: CGPoint , with event: UIEvent ? ) -> Bool {
30- let extendedArea = bounds. insetBy ( dx: - touchAreaPadding, dy: - touchAreaPadding)
31- return extendedArea. contains ( point)
32- }
33- }
34-
3518// A class to share the navigation bar UI of the Post Editor.
3619// Currenly shared between Aztec and Gutenberg
3720//
@@ -40,56 +23,14 @@ class PostEditorNavigationBarManager {
4023
4124 // MARK: - Buttons
4225
43- /// Dismiss Button
44- ///
45- let siteIconView : SiteDetailsSiteIconView = {
46- let siteIconView = SiteDetailsSiteIconView ( frame: . zero)
47- siteIconView. translatesAutoresizingMaskIntoConstraints = false
48- siteIconView. imageView. sizeToFit ( )
49-
50- let widthConstraint = siteIconView. widthAnchor. constraint ( equalToConstant: 28 )
51- let heightConstraint = siteIconView. heightAnchor. constraint ( equalToConstant: 28 )
52- NSLayoutConstraint . activate ( [ widthConstraint, heightConstraint] )
53- siteIconView. isUserInteractionEnabled = false
54- siteIconView. removeButtonBorder ( )
55- return siteIconView
56- } ( )
57-
58- lazy var closeButton : UIButton = {
59- let button = UIButton ( type: . system)
60- button. setImage ( UIImage ( systemName: " chevron.backward " ) , for: . normal)
61- button. sizeToFit ( )
62- button. translatesAutoresizingMaskIntoConstraints = false
63- button. configuration? . contentInsets = NSDirectionalEdgeInsets ( top: 0 , leading: 0 , bottom: 0 , trailing: 0 )
64- button. isUserInteractionEnabled = false
65- return button
66- } ( )
67-
68- lazy var closeButtonContainer : ExtendedTouchAreaButton = {
69- let button = ExtendedTouchAreaButton ( type: . custom)
70- button. translatesAutoresizingMaskIntoConstraints = false
71- button. accessibilityIdentifier = " editor-close-button "
26+ private( set) lazy var closeButton : UIBarButtonItem = {
27+ let button = UIBarButtonItem ( image: UIImage ( systemName: " xmark " ) , style: . plain, target: self , action: #selector( closeWasPressed) )
7228 button. accessibilityLabel = NSLocalizedString ( " Close " , comment: " Action button to close the editor " )
73-
74- let tapGesture = UITapGestureRecognizer ( target: self , action: #selector( closeWasPressed) )
75- button. addGestureRecognizer ( tapGesture)
76-
77- button. addSubview ( closeButton)
78- button. addSubview ( siteIconView)
79-
80- NSLayoutConstraint . activate ( [
81- closeButton. leadingAnchor. constraint ( equalTo: button. leadingAnchor, constant: - 8 ) ,
82- closeButton. centerYAnchor. constraint ( equalTo: button. centerYAnchor) ,
83- siteIconView. leadingAnchor. constraint ( equalTo: closeButton. trailingAnchor, constant: 0 ) ,
84- siteIconView. trailingAnchor. constraint ( equalTo: button. trailingAnchor) ,
85- siteIconView. centerYAnchor. constraint ( equalTo: button. centerYAnchor)
86- ] )
87- button. isUserInteractionEnabled = true
88- button. frame = CGRect ( x: 0 , y: 0 , width: 70 , height: 28 )
29+ button. accessibilityIdentifier = " editor-close-button "
8930 return button
9031 } ( )
9132
92- lazy var undoButton : UIButton = {
33+ private ( set ) lazy var undoButton : UIButton = {
9334 let isRTL = UIView . userInterfaceLayoutDirection ( for: . unspecified) == . rightToLeft
9435 let undoImage = UIImage ( named: " editor-undo " )
9536 let button = UIButton ( type: . system)
@@ -103,7 +44,7 @@ class PostEditorNavigationBarManager {
10344 return button
10445 } ( )
10546
106- lazy var redoButton : UIButton = {
47+ private ( set ) lazy var redoButton : UIButton = {
10748 let isRTL = UIView . userInterfaceLayoutDirection ( for: . unspecified) == . rightToLeft
10849 let redoImage = UIImage ( named: " editor-redo " )
10950 let button = UIButton ( type: . system)
@@ -117,7 +58,7 @@ class PostEditorNavigationBarManager {
11758 return button
11859 } ( )
11960
120- lazy var moreButton : UIButton = {
61+ private ( set ) lazy var moreButton : UIButton = {
12162 let image = UIImage ( named: " editor-more " )
12263 let button = UIButton ( type: . system)
12364 button. setImage ( image, for: . normal)
@@ -129,23 +70,17 @@ class PostEditorNavigationBarManager {
12970 } ( )
13071
13172 /// Blog TitleView Label
132- lazy var blogTitleViewLabel : UILabel = {
73+ private ( set ) lazy var blogTitleViewLabel : UILabel = {
13374 let label = UILabel ( )
13475 label. textColor = UIAppColor . appBarText
13576 label. font = Fonts . blogTitle
13677 return label
13778 } ( )
13879
13980 /// Publish Button
140- private( set) lazy var publishButton : UIButton = {
141- let button = UIButton ( type: . system)
142- button. addTarget ( self , action: #selector( publishButtonTapped ( sender: ) ) , for: . touchUpInside)
143- button. setTitle ( delegate? . publishButtonText ?? " " , for: . normal)
144- button. sizeToFit ( )
81+ private( set) lazy var publishButton : UIBarButtonItem = {
82+ let button = UIBarButtonItem ( title: delegate? . publishButtonText, style: . plain, target: self , action: #selector( publishButtonTapped) )
14583 button. isEnabled = delegate? . isPublishButtonEnabled ?? false
146- button. setContentHuggingPriority ( . required, for: . horizontal)
147- button. tintColor = UIColor ( light: . black, dark: . white)
148- button. titleLabel? . font = UIFont . systemFont ( ofSize: 17.0 )
14984 return button
15085 } ( )
15186
@@ -170,22 +105,6 @@ class PostEditorNavigationBarManager {
170105 return separator
171106 } ( )
172107
173- /// NavigationBar's Close Button
174- ///
175- lazy var closeBarButtonItem : UIBarButtonItem = {
176- let cancelItem = UIBarButtonItem ( customView: self . closeButtonContainer)
177- cancelItem. accessibilityLabel = NSLocalizedString ( " Close " , comment: " Action button to close edior and cancel changes or insertion of post " )
178- cancelItem. accessibilityIdentifier = " Close "
179- return cancelItem
180- } ( )
181-
182- /// Publish Button
183- private( set) lazy var publishBarButtonItem : UIBarButtonItem = {
184- let button = UIBarButtonItem ( customView: self . publishButton)
185-
186- return button
187- } ( )
188-
189108 /// NavigationBar's More Button
190109 ///
191110 lazy var moreBarButtonItem : UIBarButtonItem = {
@@ -222,7 +141,7 @@ class PostEditorNavigationBarManager {
222141 // MARK: - Public
223142
224143 var leftBarButtonItems : [ UIBarButtonItem ] {
225- return [ closeBarButtonItem ]
144+ return [ closeButton ]
226145 }
227146
228147 var uploadingMediaTitleView : UIView {
@@ -232,16 +151,19 @@ class PostEditorNavigationBarManager {
232151 var rightBarButtonItems : [ UIBarButtonItem ] {
233152 let undoButton = UIBarButtonItem ( customView: self . undoButton)
234153 let redoButton = UIBarButtonItem ( customView: self . redoButton)
235- return [ publishBarButtonItem, separatorButtonItem, moreBarButtonItem, separatorButtonItem, redoButton, separatorButtonItem, undoButton]
154+ if #available( iOS 26 , * ) {
155+ return [ publishButton, separatorButtonItem, moreBarButtonItem, redoButton, undoButton]
156+ } else {
157+ return [ publishButton, separatorButtonItem, moreBarButtonItem, separatorButtonItem, redoButton, separatorButtonItem, undoButton]
158+ }
236159 }
237160
238161 var rightBarButtonItemsAztec : [ UIBarButtonItem ] {
239- return [ moreBarButtonItem, publishBarButtonItem , separatorButtonItem]
162+ return [ moreBarButtonItem, publishButton , separatorButtonItem]
240163 }
241164
242165 func reloadPublishButton( ) {
243- publishButton. setTitle ( delegate? . publishButtonText ?? " " , for: . normal)
244- publishButton. sizeToFit ( )
166+ publishButton. title = delegate? . publishButtonText
245167 publishButton. isEnabled = delegate? . isPublishButtonEnabled ?? true
246168 }
247169}
0 commit comments