From 8e8c11c5efdc629d7d89f624e49ad024c16ada09 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Fri, 31 Jul 2020 20:47:18 +0200 Subject: [PATCH] FolderView: Refactor NewNoteNavBar into its own widget --- lib/main_graph.dart | 1 + lib/screens/folder_view.dart | 41 +++------------------ lib/screens/settings_note_metadata.dart | 2 +- lib/widgets/new_note_nav_bar.dart | 47 +++++++++++++++++++++++++ 4 files changed, 54 insertions(+), 37 deletions(-) create mode 100644 lib/widgets/new_note_nav_bar.dart diff --git a/lib/main_graph.dart b/lib/main_graph.dart index 9c891c53..90b94a33 100644 --- a/lib/main_graph.dart +++ b/lib/main_graph.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; + import 'package:touchable/touchable.dart'; class MyExampleWidget extends StatefulWidget { diff --git a/lib/screens/folder_view.dart b/lib/screens/folder_view.dart index daf27bf2..0fe51984 100644 --- a/lib/screens/folder_view.dart +++ b/lib/screens/folder_view.dart @@ -1,10 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:git_bindings/git_bindings.dart'; -import 'package:gitjournal/core/note.dart'; import 'package:provider/provider.dart'; +import 'package:gitjournal/core/note.dart'; import 'package:gitjournal/core/notes_folder.dart'; import 'package:gitjournal/core/notes_folder_fs.dart'; import 'package:gitjournal/core/sorted_notes_folder.dart'; @@ -18,6 +17,7 @@ import 'package:gitjournal/state_container.dart'; import 'package:gitjournal/utils.dart'; import 'package:gitjournal/widgets/app_bar_menu_button.dart'; import 'package:gitjournal/widgets/app_drawer.dart'; +import 'package:gitjournal/widgets/new_note_nav_bar.dart'; import 'package:gitjournal/widgets/note_search_delegate.dart'; import 'package:gitjournal/widgets/sync_button.dart'; @@ -68,8 +68,7 @@ class _FolderViewState extends State { Widget build(BuildContext context) { var createButton = FloatingActionButton( key: const ValueKey("FAB"), - onPressed: () => - _newPost(context, widget.notesFolder.config.defaultEditor), + onPressed: () => _newPost(widget.notesFolder.config.defaultEditor), child: const Icon(Icons.add), ); @@ -148,37 +147,7 @@ class _FolderViewState extends State { drawer: AppDrawer(), floatingActionButton: createButton, floatingActionButtonLocation: FloatingActionButtonLocation.endDocked, - bottomNavigationBar: BottomAppBar( - color: Theme.of(context).bottomAppBarColor, - shape: const CircularNotchedRectangle(), - child: Row( - children: [ - Padding( - padding: const EdgeInsets.all(4.0), - child: IconButton( - icon: const FaIcon(FontAwesomeIcons.tasks), - onPressed: () => _newPost(context, EditorType.Checklist), - ), - ), - Padding( - padding: const EdgeInsets.all(4.0), - child: IconButton( - icon: const FaIcon(FontAwesomeIcons.markdown), - onPressed: () => _newPost(context, EditorType.Markdown), - ), - ), - Padding( - padding: const EdgeInsets.all(4.0), - child: IconButton( - icon: const FaIcon(FontAwesomeIcons.book), - onPressed: () => _newPost(context, EditorType.Journal), - ), - ), - ], - mainAxisAlignment: MainAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - ), - ), + bottomNavigationBar: NewNoteNavBar(onPressed: _newPost), ); } @@ -193,7 +162,7 @@ class _FolderViewState extends State { } } - void _newPost(BuildContext context, EditorType editorType) async { + void _newPost(EditorType editorType) async { var folder = widget.notesFolder; NotesFolderFS fsFolder = folder.fsFolder; var isVirtualFolder = folder.name != folder.fsFolder.name; diff --git a/lib/screens/settings_note_metadata.dart b/lib/screens/settings_note_metadata.dart index db1bdb74..fff6bbc0 100644 --- a/lib/screens/settings_note_metadata.dart +++ b/lib/screens/settings_note_metadata.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:gitjournal/core/md_yaml_doc.dart'; +import 'package:gitjournal/core/md_yaml_doc.dart'; import 'package:gitjournal/core/md_yaml_doc_codec.dart'; import 'package:gitjournal/core/note.dart'; import 'package:gitjournal/core/note_serializer.dart'; diff --git a/lib/widgets/new_note_nav_bar.dart b/lib/widgets/new_note_nav_bar.dart new file mode 100644 index 00000000..09ab2bea --- /dev/null +++ b/lib/widgets/new_note_nav_bar.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; + +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:function_types/function_types.dart'; + +import 'package:gitjournal/screens/note_editor.dart'; + +class NewNoteNavBar extends StatelessWidget { + final Func1 onPressed; + + NewNoteNavBar({@required this.onPressed}); + + @override + Widget build(BuildContext context) { + return BottomAppBar( + color: Theme.of(context).bottomAppBarColor, + shape: const CircularNotchedRectangle(), + child: Row( + children: [ + Padding( + padding: const EdgeInsets.all(4.0), + child: IconButton( + icon: const FaIcon(FontAwesomeIcons.tasks), + onPressed: () => onPressed(EditorType.Checklist), + ), + ), + Padding( + padding: const EdgeInsets.all(4.0), + child: IconButton( + icon: const FaIcon(FontAwesomeIcons.markdown), + onPressed: () => onPressed(EditorType.Markdown), + ), + ), + Padding( + padding: const EdgeInsets.all(4.0), + child: IconButton( + icon: const FaIcon(FontAwesomeIcons.book), + onPressed: () => onPressed(EditorType.Journal), + ), + ), + ], + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + ), + ); + } +}