@@ -45,33 +45,12 @@ class NewNoteViewController: UIViewController {
4545 view. endEditing ( true )
4646 }
4747
48- func configureNavigation( ) {
49- title = NSLocalizedString ( " Order # \( viewModel. order. number) " , comment: " Add a note screen - title. Example: Order #15 " )
50-
51- let dismissButtonTitle = NSLocalizedString ( " Dismiss " , comment: " Add a note screen - button title for closing the view " )
52- let leftBarButton = UIBarButtonItem ( title: dismissButtonTitle,
53- style: . plain,
54- target: self ,
55- action: #selector( dismissButtonTapped) )
56- leftBarButton. tintColor = . white
57- navigationItem. setLeftBarButton ( leftBarButton, animated: false )
58-
59- let addButtonTitle = NSLocalizedString ( " Add " , comment: " Add a note screen - button title to send the note " )
60- let rightBarButton = UIBarButtonItem ( title: addButtonTitle,
61- style: . done,
62- target: self ,
63- action: #selector( addButtonTapped) )
64- rightBarButton. tintColor = . white
65- navigationItem. setRightBarButton ( rightBarButton, animated: false )
66- navigationItem. rightBarButtonItem? . isEnabled = false
67- }
68-
6948 @objc func dismissButtonTapped( ) {
7049 dismiss ( animated: true , completion: nil )
7150 }
7251
7352 @objc func addButtonTapped( ) {
74- navigationItem . rightBarButtonItem ? . isEnabled = false
53+ switchRightButtonToProgressIndicator ( )
7554
7655 WooAnalytics . shared. track ( . orderNoteAddButtonTapped)
7756 WooAnalytics . shared. track ( . orderNoteAdd, withProperties: [ " parent_id " : viewModel. order. orderID,
@@ -84,7 +63,7 @@ class NewNoteViewController: UIViewController {
8463 WooAnalytics . shared. track ( . orderNoteAddFailed, withError: error)
8564
8665 self ? . displayErrorNotice ( )
87- self ? . navigationItem . rightBarButtonItem ? . isEnabled = true
66+ self ? . switchRightButtonToAddButton ( )
8867 return
8968 }
9069 WooAnalytics . shared. track ( . orderNoteAddSuccess)
@@ -241,6 +220,64 @@ private extension NewNoteViewController {
241220 }
242221}
243222
223+ // MARK: - Navigation bar
224+ //
225+ private extension NewNoteViewController {
226+ func configureNavigation( ) {
227+ configureTitle ( )
228+ configureDismissButton ( )
229+ configureRightButtonItemAsAdd ( )
230+ }
231+
232+ func configureTitle( ) {
233+ title = NSLocalizedString ( " Order # \( viewModel. order. number) " ,
234+ comment: " Add a note screen - title. Example: Order #15 " )
235+ }
236+
237+ func configureDismissButton( ) {
238+ let dismissButtonTitle = NSLocalizedString ( " Dismiss " ,
239+ comment: " Add a note screen - button title for closing the view " )
240+ let leftBarButton = UIBarButtonItem ( title: dismissButtonTitle,
241+ style: . plain,
242+ target: self ,
243+ action: #selector( dismissButtonTapped) )
244+ leftBarButton. tintColor = . white
245+ navigationItem. setLeftBarButton ( leftBarButton, animated: false )
246+ }
247+
248+ func configureRightButtonItemAsAdd( ) {
249+ let addButtonTitle = NSLocalizedString ( " Add " ,
250+ comment: " Add a note screen - button title to send the note " )
251+ let rightBarButton = UIBarButtonItem ( title: addButtonTitle,
252+ style: . done,
253+ target: self ,
254+ action: #selector( addButtonTapped) )
255+ rightBarButton. tintColor = . white
256+ navigationItem. setRightBarButton ( rightBarButton, animated: false )
257+ navigationItem. rightBarButtonItem? . isEnabled = false
258+ }
259+
260+ func switchRightButtonToProgressIndicator( ) {
261+ configureRightButtonItemAsSpinner ( )
262+ navigationItem. rightBarButtonItem? . isEnabled = false
263+ }
264+
265+ func configureRightButtonItemAsSpinner( ) {
266+ let activityIndicator = UIActivityIndicatorView ( style: . white)
267+ activityIndicator. hidesWhenStopped = true
268+ activityIndicator. startAnimating ( )
269+
270+ let rightBarButton = UIBarButtonItem ( customView: activityIndicator)
271+
272+ navigationItem. setRightBarButton ( rightBarButton, animated: true )
273+ }
274+
275+ func switchRightButtonToAddButton( ) {
276+ configureRightButtonItemAsAdd ( )
277+ navigationItem. rightBarButtonItem? . isEnabled = true
278+ }
279+ }
280+
244281// MARK: - Constants
245282//
246283private extension NewNoteViewController {
0 commit comments