@@ -45,43 +45,12 @@ class NewNoteViewController: UIViewController {
4545 view. endEditing ( true )
4646 }
4747
48- func configureNavigation( ) {
49- configureTitle ( )
50- configureDismissButton ( )
51- configureAddButton ( )
52- }
53-
54- private func configureTitle( ) {
55- title = NSLocalizedString ( " Order # \( viewModel. order. number) " , comment: " Add a note screen - title. Example: Order #15 " )
56- }
57-
58- private func configureDismissButton( ) {
59- let dismissButtonTitle = NSLocalizedString ( " Dismiss " , comment: " Add a note screen - button title for closing the view " )
60- let leftBarButton = UIBarButtonItem ( title: dismissButtonTitle,
61- style: . plain,
62- target: self ,
63- action: #selector( dismissButtonTapped) )
64- leftBarButton. tintColor = . white
65- navigationItem. setLeftBarButton ( leftBarButton, animated: false )
66- }
67-
68- private func configureAddButton( ) {
69- let addButtonTitle = NSLocalizedString ( " Add " , comment: " Add a note screen - button title to send the note " )
70- let rightBarButton = UIBarButtonItem ( title: addButtonTitle,
71- style: . done,
72- target: self ,
73- action: #selector( addButtonTapped) )
74- rightBarButton. tintColor = . white
75- navigationItem. setRightBarButton ( rightBarButton, animated: false )
76- navigationItem. rightBarButtonItem? . isEnabled = false
77- }
78-
7948 @objc func dismissButtonTapped( ) {
8049 dismiss ( animated: true , completion: nil )
8150 }
8251
8352 @objc func addButtonTapped( ) {
84- navigationItem . rightBarButtonItem ? . isEnabled = false
53+ switchRightButtonToProgressIndicator ( )
8554
8655 WooAnalytics . shared. track ( . orderNoteAddButtonTapped)
8756 WooAnalytics . shared. track ( . orderNoteAdd, withProperties: [ " parent_id " : viewModel. order. orderID,
@@ -94,7 +63,7 @@ class NewNoteViewController: UIViewController {
9463 WooAnalytics . shared. track ( . orderNoteAddFailed, withError: error)
9564
9665 self ? . displayErrorNotice ( )
97- self ? . navigationItem . rightBarButtonItem ? . isEnabled = true
66+ self ? . switchRightButtonToAddButton ( )
9867 return
9968 }
10069 WooAnalytics . shared. track ( . orderNoteAddSuccess)
@@ -251,6 +220,62 @@ private extension NewNoteViewController {
251220 }
252221}
253222
223+
224+ // MARK: - Navigation bar
225+ //
226+ private extension NewNoteViewController {
227+ func configureNavigation( ) {
228+ configureTitle ( )
229+ configureDismissButton ( )
230+ configureRightButtonItemAsAdd ( )
231+ }
232+
233+ func configureTitle( ) {
234+ title = NSLocalizedString ( " Order # \( viewModel. order. number) " , comment: " Add a note screen - title. Example: Order #15 " )
235+ }
236+
237+ func configureDismissButton( ) {
238+ let dismissButtonTitle = NSLocalizedString ( " Dismiss " , comment: " Add a note screen - button title for closing the view " )
239+ let leftBarButton = UIBarButtonItem ( title: dismissButtonTitle,
240+ style: . plain,
241+ target: self ,
242+ action: #selector( dismissButtonTapped) )
243+ leftBarButton. tintColor = . white
244+ navigationItem. setLeftBarButton ( leftBarButton, animated: false )
245+ }
246+
247+ func configureRightButtonItemAsAdd( ) {
248+ let addButtonTitle = NSLocalizedString ( " Add " , comment: " Add a note screen - button title to send the note " )
249+ let rightBarButton = UIBarButtonItem ( title: addButtonTitle,
250+ style: . done,
251+ target: self ,
252+ action: #selector( addButtonTapped) )
253+ rightBarButton. tintColor = . white
254+ navigationItem. setRightBarButton ( rightBarButton, animated: false )
255+ navigationItem. rightBarButtonItem? . isEnabled = false
256+ }
257+
258+ func switchRightButtonToProgressIndicator( ) {
259+ configureRightButtonItemAsSpinner ( )
260+ navigationItem. rightBarButtonItem? . isEnabled = false
261+ }
262+
263+ func configureRightButtonItemAsSpinner( ) {
264+ let activityIndicator = UIActivityIndicatorView ( style: . white)
265+ activityIndicator. hidesWhenStopped = true
266+ activityIndicator. startAnimating ( )
267+
268+ let rightBarButton = UIBarButtonItem ( customView: activityIndicator)
269+
270+ navigationItem. setRightBarButton ( rightBarButton, animated: true )
271+ }
272+
273+ func switchRightButtonToAddButton( ) {
274+ configureRightButtonItemAsAdd ( )
275+ navigationItem. rightBarButtonItem? . isEnabled = true
276+ }
277+ }
278+
254279// MARK: - Constants
255280//
256281private extension NewNoteViewController {
0 commit comments