@@ -155,100 +155,105 @@ class _BackAppBarState extends ConsumerState<EditorAppBar> {
155155 return EmptyPlaceholder ();
156156 }
157157
158- final editorController = fleatherControllerNotifier.value;
159158 final showEditorModeButton = PreferenceKey .editorModeButton.getPreferenceOrDefault ();
160159 final enableLabels = PreferenceKey .enableLabels.getPreferenceOrDefault ();
161160
162161 return ValueListenableBuilder (
163- valueListenable: editorHasFocusNotifier ,
164- builder: (context, editorHasFocus , child) {
162+ valueListenable: fleatherControllerNotifier ,
163+ builder: (context, editorController , child) {
165164 return ValueListenableBuilder (
166- valueListenable: isEditorInEditModeNotifier,
167- builder: (context, isEditMode, child) {
168- return AppBar (
169- leading: BackButton (),
170- actions: [
171- if (note.status == NoteStatus .available) ...[
172- if (note.type == NoteType .richText) ...[
173- ValueListenableBuilder (
174- valueListenable: fleatherControllerCanUndoNotifier,
175- builder: (context, canUndo, child) {
176- final enableUndo = editorHasFocus &&
177- canUndo &&
178- editorController != null &&
179- editorController.canUndo &&
180- isEditMode;
165+ valueListenable: editorHasFocusNotifier,
166+ builder: (context, editorHasFocus, child) {
167+ return ValueListenableBuilder (
168+ valueListenable: isEditorInEditModeNotifier,
169+ builder: (context, isEditMode, child) {
170+ return AppBar (
171+ leading: BackButton (),
172+ actions: [
173+ if (note.status == NoteStatus .available) ...[
174+ if (note.type == NoteType .richText) ...[
175+ ValueListenableBuilder (
176+ valueListenable: fleatherControllerCanUndoNotifier,
177+ builder: (context, canUndo, child) {
178+ final enableUndo = editorHasFocus &&
179+ canUndo &&
180+ editorController != null &&
181+ editorController.canUndo &&
182+ isEditMode;
181183
182- return IconButton (
183- icon: const Icon (Icons .undo),
184- tooltip: l.tooltip_undo,
185- onPressed: enableUndo ? undo : null ,
186- );
187- },
188- ),
189- ValueListenableBuilder (
190- valueListenable: fleatherControllerCanRedoNotifier,
191- builder: (context, canRedo, child) {
192- final enableRedo = editorHasFocus && canRedo && isEditMode;
184+ return IconButton (
185+ icon: const Icon (Icons .undo),
186+ tooltip: l.tooltip_undo,
187+ onPressed: enableUndo ? undo : null ,
188+ );
189+ },
190+ ),
191+ ValueListenableBuilder (
192+ valueListenable: fleatherControllerCanRedoNotifier,
193+ builder: (context, canRedo, child) {
194+ final enableRedo = editorHasFocus && canRedo && isEditMode;
193195
194- return IconButton (
195- icon: const Icon (Icons .redo),
196- tooltip: l.tooltip_redo,
197- onPressed: enableRedo ? redo : null ,
198- );
199- },
200- ),
201- ],
202- if (showEditorModeButton)
203- ValueListenableBuilder (
204- valueListenable: isEditorInEditModeNotifier,
205- builder: (context, isEditMode, child) => IconButton (
206- icon: Icon (isEditMode ? Icons .visibility : Icons .edit),
207- tooltip:
208- isEditMode ? l.tooltip_fab_toggle_editor_mode_read : l.tooltip_fab_toggle_editor_mode_edit,
209- onPressed: switchMode,
196+ return IconButton (
197+ icon: const Icon (Icons .redo),
198+ tooltip: l.tooltip_redo,
199+ onPressed: enableRedo ? redo : null ,
200+ );
201+ },
202+ ),
203+ ],
204+ if (showEditorModeButton)
205+ ValueListenableBuilder (
206+ valueListenable: isEditorInEditModeNotifier,
207+ builder: (context, isEditMode, child) => IconButton (
208+ icon: Icon (isEditMode ? Icons .visibility : Icons .edit),
209+ tooltip: isEditMode
210+ ? l.tooltip_fab_toggle_editor_mode_read
211+ : l.tooltip_fab_toggle_editor_mode_edit,
212+ onPressed: switchMode,
213+ ),
214+ ),
215+ PopupMenuButton <EditorAvailableMenuOption >(
216+ itemBuilder: (context) => ([
217+ EditorAvailableMenuOption .copy.popupMenuItem (context),
218+ EditorAvailableMenuOption .share.popupMenuItem (context),
219+ const PopupMenuDivider (),
220+ EditorAvailableMenuOption .togglePin.popupMenuItem (context, alternative: note.pinned),
221+ if (enableLabels) EditorAvailableMenuOption .selectLabels.popupMenuItem (context),
222+ const PopupMenuDivider (),
223+ EditorAvailableMenuOption .archive.popupMenuItem (context),
224+ EditorAvailableMenuOption .delete.popupMenuItem (context),
225+ const PopupMenuDivider (),
226+ EditorAvailableMenuOption .about.popupMenuItem (context),
227+ ]),
228+ onSelected: onAvailableMenuOptionSelected,
229+ ),
230+ ],
231+ if (note.status == NoteStatus .archived)
232+ PopupMenuButton <EditorArchivedMenuOption >(
233+ itemBuilder: (context) => ([
234+ EditorArchivedMenuOption .copy.popupMenuItem (context),
235+ EditorArchivedMenuOption .share.popupMenuItem (context),
236+ const PopupMenuDivider (),
237+ EditorArchivedMenuOption .unarchive.popupMenuItem (context),
238+ const PopupMenuDivider (),
239+ EditorArchivedMenuOption .about.popupMenuItem (context),
240+ ]),
241+ onSelected: onArchivedMenuOptionSelected,
210242 ),
211- ),
212- PopupMenuButton <EditorAvailableMenuOption >(
213- itemBuilder: (context) => ([
214- EditorAvailableMenuOption .copy.popupMenuItem (context),
215- EditorAvailableMenuOption .share.popupMenuItem (context),
216- const PopupMenuDivider (),
217- EditorAvailableMenuOption .togglePin.popupMenuItem (context, alternative: note.pinned),
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- ],
243+ if (note.status == NoteStatus .deleted)
244+ PopupMenuButton <EditorDeletedMenuOption >(
245+ itemBuilder: (context) => ([
246+ EditorDeletedMenuOption .restore.popupMenuItem (context),
247+ EditorDeletedMenuOption .deletePermanently.popupMenuItem (context),
248+ const PopupMenuDivider (),
249+ EditorDeletedMenuOption .about.popupMenuItem (context),
250+ ]),
251+ onSelected: onDeletedMenuOptionSelected,
252+ ),
253+ Padding (padding: Paddings .appBarActionsEnd),
254+ ],
255+ );
256+ },
252257 );
253258 },
254259 );
0 commit comments