@@ -93,9 +93,10 @@ final class NoteEditorViewController: UIViewController {
9393 case . done:
9494 let done = UIBarButtonItem ( title: L10n . done, style: . done, target: nil , action: nil )
9595 done. rx. tap
96- . subscribe ( with: self , onNext: { `self`, _ in
96+ . subscribe ( onNext: { [ weak self] _ in
97+ guard let self else { return }
9798 forceSaveIfNeeded ( )
98- self . navigationController? . presentingViewController? . dismiss ( animated: true , completion: nil )
99+ navigationController? . presentingViewController? . dismiss ( animated: true , completion: nil )
99100 } )
100101 . disposed ( by: disposeBag)
101102 item = done
@@ -110,8 +111,12 @@ final class NoteEditorViewController: UIViewController {
110111 self ? . coordinatorDelegate
111112 } ,
112113 completion: { [ weak self] changedCurrentItem, openItemsChanged in
113- guard let self, !changedCurrentItem && openItemsChanged else { return }
114- openItemsController. setOpenItemsUserActivity ( from: self , libraryId: viewModel. state. library. identifier)
114+ guard let self else { return }
115+ if changedCurrentItem {
116+ forceSaveIfNeeded ( )
117+ } else if openItemsChanged {
118+ openItemsController. setOpenItemsUserActivity ( from: self , libraryId: viewModel. state. library. identifier)
119+ }
115120 }
116121 )
117122 let openItemsMenu = UIMenu ( title: L10n . Accessibility. Pdf. openItems, options: [ . displayInline] , children: [ deferredOpenItemsMenuElement] )
@@ -128,12 +133,6 @@ final class NoteEditorViewController: UIViewController {
128133 guard let item = navigationItem. rightBarButtonItems? . first ( where: { button in RightBarButtonItem ( rawValue: button. tag) == . restoreOpenItems } ) else { return }
129134 item. image = . openItemsImage( count: count)
130135 }
131-
132- func forceSaveIfNeeded( ) {
133- guard debounceDisposeBag != nil else { return }
134- debounceDisposeBag = nil
135- viewModel. process ( action: . save)
136- }
137136 }
138137
139138 func setupWebView( ) {
@@ -215,6 +214,12 @@ final class NoteEditorViewController: UIViewController {
215214 self ? . viewModel. process ( action: . setTags( tags) )
216215 } )
217216 }
217+
218+ private func forceSaveIfNeeded( ) {
219+ guard debounceDisposeBag != nil else { return }
220+ debounceDisposeBag = nil
221+ viewModel. process ( action: . save)
222+ }
218223}
219224
220225extension NoteEditorViewController : WKNavigationDelegate {
0 commit comments