@@ -147,105 +147,110 @@ class _BackAppBarState extends ConsumerState<EditorAppBar> {
147147 return EmptyPlaceholder ();
148148 }
149149
150- final editorController = fleatherControllerNotifier.value;
151150 final showEditorModeButton = PreferenceKey .editorModeButton.preferenceOrDefault;
152151 final enableLabels = PreferenceKey .enableLabels.preferenceOrDefault;
153152
154153 return ValueListenableBuilder (
155- valueListenable: editorHasFocusNotifier ,
156- builder: (context, editorHasFocus , child) {
154+ valueListenable: fleatherControllerNotifier ,
155+ builder: (context, editorController , child) {
157156 return ValueListenableBuilder (
158- valueListenable: isEditorInEditModeNotifier,
159- builder: (context, isEditMode, child) {
160- return AppBar (
161- leading: BackButton (
162- onPressed: () => Navigator .of (rootNavigatorKey.currentContext! ).pop (),
163- ),
164- actions: [
165- if (note.status == NoteStatus .available) ...[
166- if (note.type == NoteType .richText) ...[
167- ValueListenableBuilder (
168- valueListenable: fleatherControllerCanUndoNotifier,
169- builder: (context, canUndo, child) {
170- final enableUndo = editorHasFocus &&
171- canUndo &&
172- editorController != null &&
173- editorController.canUndo &&
174- isEditMode;
175-
176- return IconButton (
177- icon: const Icon (Icons .undo),
178- tooltip: l.tooltip_undo,
179- onPressed: enableUndo ? undo : null ,
180- );
181- },
182- ),
183- ValueListenableBuilder (
184- valueListenable: fleatherControllerCanRedoNotifier,
185- builder: (context, canRedo, child) {
186- final enableRedo = editorHasFocus && canRedo && isEditMode;
187-
188- return IconButton (
189- icon: const Icon (Icons .redo),
190- tooltip: l.tooltip_redo,
191- onPressed: enableRedo ? redo : null ,
192- );
193- },
194- ),
195- ],
196- if (showEditorModeButton)
197- ValueListenableBuilder (
198- valueListenable: isEditorInEditModeNotifier,
199- builder: (context, isEditMode, child) => IconButton (
200- icon: Icon (isEditMode ? Icons .visibility : Icons .edit),
201- tooltip:
202- isEditMode ? l.tooltip_fab_toggle_editor_mode_read : l.tooltip_fab_toggle_editor_mode_edit,
203- onPressed: switchMode,
204- ),
205- ),
206- PopupMenuButton <EditorAvailableMenuOption >(
207- itemBuilder: (context) => ([
208- EditorAvailableMenuOption .copy.popupMenuItem (context),
209- EditorAvailableMenuOption .share.popupMenuItem (context),
210- const PopupMenuDivider (),
211- if (note.pinned) EditorAvailableMenuOption .unpin.popupMenuItem (context),
212- if (! note.pinned) EditorAvailableMenuOption .pin.popupMenuItem (context),
213- if (note.locked) EditorAvailableMenuOption .unlock.popupMenuItem (context),
214- if (! note.locked) EditorAvailableMenuOption .lock.popupMenuItem (context),
215- if (enableLabels) EditorAvailableMenuOption .selectLabels.popupMenuItem (context),
216- const PopupMenuDivider (),
217- EditorAvailableMenuOption .archive.popupMenuItem (context),
218- EditorAvailableMenuOption .delete.popupMenuItem (context),
219- const PopupMenuDivider (),
220- EditorAvailableMenuOption .about.popupMenuItem (context),
221- ]),
222- onSelected: onAvailableMenuOptionSelected,
157+ valueListenable: editorHasFocusNotifier,
158+ builder: (context, editorHasFocus, child) {
159+ return ValueListenableBuilder (
160+ valueListenable: isEditorInEditModeNotifier,
161+ builder: (context, isEditMode, child) {
162+ return AppBar (
163+ leading: BackButton (
164+ onPressed: () => Navigator .of (rootNavigatorKey.currentContext! ).pop (),
223165 ),
224- ],
225- if (note.status == NoteStatus .archived)
226- PopupMenuButton <EditorArchivedMenuOption >(
227- itemBuilder: (context) => ([
228- EditorArchivedMenuOption .copy.popupMenuItem (context),
229- EditorArchivedMenuOption .share.popupMenuItem (context),
230- const PopupMenuDivider (),
231- EditorArchivedMenuOption .unarchive.popupMenuItem (context),
232- const PopupMenuDivider (),
233- EditorArchivedMenuOption .about.popupMenuItem (context),
234- ]),
235- onSelected: onArchivedMenuOptionSelected,
236- ),
237- if (note.status == NoteStatus .deleted)
238- PopupMenuButton <EditorDeletedMenuOption >(
239- itemBuilder: (context) => ([
240- EditorDeletedMenuOption .restore.popupMenuItem (context),
241- EditorDeletedMenuOption .deletePermanently.popupMenuItem (context),
242- const PopupMenuDivider (),
243- EditorDeletedMenuOption .about.popupMenuItem (context),
244- ]),
245- onSelected: onDeletedMenuOptionSelected,
246- ),
247- Padding (padding: Paddings .appBarActionsEnd),
248- ],
166+ actions: [
167+ if (note.status == NoteStatus .available) ...[
168+ if (note.type == NoteType .richText) ...[
169+ ValueListenableBuilder (
170+ valueListenable: fleatherControllerCanUndoNotifier,
171+ builder: (context, canUndo, child) {
172+ final enableUndo = editorHasFocus &&
173+ canUndo &&
174+ editorController != null &&
175+ editorController.canUndo &&
176+ isEditMode;
177+
178+ return IconButton (
179+ icon: const Icon (Icons .undo),
180+ tooltip: l.tooltip_undo,
181+ onPressed: enableUndo ? undo : null ,
182+ );
183+ },
184+ ),
185+ ValueListenableBuilder (
186+ valueListenable: fleatherControllerCanRedoNotifier,
187+ builder: (context, canRedo, child) {
188+ final enableRedo = editorHasFocus && canRedo && isEditMode;
189+
190+ return IconButton (
191+ icon: const Icon (Icons .redo),
192+ tooltip: l.tooltip_redo,
193+ onPressed: enableRedo ? redo : null ,
194+ );
195+ },
196+ ),
197+ ],
198+ if (showEditorModeButton)
199+ ValueListenableBuilder (
200+ valueListenable: isEditorInEditModeNotifier,
201+ builder: (context, isEditMode, child) => IconButton (
202+ icon: Icon (isEditMode ? Icons .visibility : Icons .edit),
203+ tooltip: isEditMode
204+ ? l.tooltip_fab_toggle_editor_mode_read
205+ : l.tooltip_fab_toggle_editor_mode_edit,
206+ onPressed: switchMode,
207+ ),
208+ ),
209+ PopupMenuButton <EditorAvailableMenuOption >(
210+ itemBuilder: (context) => ([
211+ EditorAvailableMenuOption .copy.popupMenuItem (context),
212+ EditorAvailableMenuOption .share.popupMenuItem (context),
213+ const PopupMenuDivider (),
214+ if (note.pinned) EditorAvailableMenuOption .unpin.popupMenuItem (context),
215+ if (! note.pinned) EditorAvailableMenuOption .pin.popupMenuItem (context),
216+ if (note.locked) EditorAvailableMenuOption .unlock.popupMenuItem (context),
217+ if (! note.locked) EditorAvailableMenuOption .lock.popupMenuItem (context),
218+ if (enableLabels) EditorAvailableMenuOption .selectLabels.popupMenuItem (context),
219+ const PopupMenuDivider (),
220+ EditorAvailableMenuOption .archive.popupMenuItem (context),
221+ EditorAvailableMenuOption .delete.popupMenuItem (context),
222+ const PopupMenuDivider (),
223+ EditorAvailableMenuOption .about.popupMenuItem (context),
224+ ]),
225+ onSelected: onAvailableMenuOptionSelected,
226+ ),
227+ ],
228+ if (note.status == NoteStatus .archived)
229+ PopupMenuButton <EditorArchivedMenuOption >(
230+ itemBuilder: (context) => ([
231+ EditorArchivedMenuOption .copy.popupMenuItem (context),
232+ EditorArchivedMenuOption .share.popupMenuItem (context),
233+ const PopupMenuDivider (),
234+ EditorArchivedMenuOption .unarchive.popupMenuItem (context),
235+ const PopupMenuDivider (),
236+ EditorArchivedMenuOption .about.popupMenuItem (context),
237+ ]),
238+ onSelected: onArchivedMenuOptionSelected,
239+ ),
240+ if (note.status == NoteStatus .deleted)
241+ PopupMenuButton <EditorDeletedMenuOption >(
242+ itemBuilder: (context) => ([
243+ EditorDeletedMenuOption .restore.popupMenuItem (context),
244+ EditorDeletedMenuOption .deletePermanently.popupMenuItem (context),
245+ const PopupMenuDivider (),
246+ EditorDeletedMenuOption .about.popupMenuItem (context),
247+ ]),
248+ onSelected: onDeletedMenuOptionSelected,
249+ ),
250+ Padding (padding: Paddings .appBarActionsEnd),
251+ ],
252+ );
253+ },
249254 );
250255 },
251256 );
0 commit comments