From 564fa4cbc04e1c1a84d73ba4c7d197a956b90721 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Mon, 30 Mar 2020 13:09:19 +0200 Subject: [PATCH] move NoteEditorSelector to its own file --- lib/screens/note_editor.dart | 38 ++------------------- lib/widgets/note_editor_selector.dart | 49 +++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 36 deletions(-) create mode 100644 lib/widgets/note_editor_selector.dart diff --git a/lib/screens/note_editor.dart b/lib/screens/note_editor.dart index 864f2384..ae2bf5ff 100644 --- a/lib/screens/note_editor.dart +++ b/lib/screens/note_editor.dart @@ -10,6 +10,7 @@ import 'package:gitjournal/editors/checklist_editor.dart'; import 'package:gitjournal/settings.dart'; import 'package:gitjournal/state_container.dart'; import 'package:gitjournal/widgets/folder_selection_dialog.dart'; +import 'package:gitjournal/widgets/note_editor_selector.dart'; import 'package:gitjournal/widgets/rename_dialog.dart'; import 'package:provider/provider.dart'; @@ -145,45 +146,10 @@ class NoteEditorState extends State { } void _noteEditorChooserSelected(Note _note) async { - var onEditorChange = (EditorType et) => Navigator.of(context).pop(et); - var newEditorType = await showDialog( context: context, builder: (BuildContext context) { - var children = [ - RadioListTile( - title: const Text("Markdown Editor"), - value: EditorType.Markdown, - groupValue: editorType, - onChanged: onEditorChange, - ), - RadioListTile( - title: const Text("Raw Editor"), - value: EditorType.Raw, - groupValue: editorType, - onChanged: onEditorChange, - ), - RadioListTile( - title: const Text("Checklist Editor"), - value: EditorType.Checklist, - groupValue: editorType, - onChanged: onEditorChange, - ), - RadioListTile( - title: const Text("Journal Editor"), - value: EditorType.Journal, - groupValue: editorType, - onChanged: onEditorChange, - ), - ]; - - return AlertDialog( - title: const Text("Choose Editor"), - content: Column( - children: children, - mainAxisSize: MainAxisSize.min, - ), - ); + return NoteEditorSelector(editorType); }, ); diff --git a/lib/widgets/note_editor_selector.dart b/lib/widgets/note_editor_selector.dart new file mode 100644 index 00000000..f72ad149 --- /dev/null +++ b/lib/widgets/note_editor_selector.dart @@ -0,0 +1,49 @@ +import 'package:flutter/material.dart'; +import 'package:gitjournal/screens/note_editor.dart'; + +class NoteEditorSelector extends StatelessWidget { + final EditorType currentEditor; + + NoteEditorSelector(this.currentEditor); + + @override + Widget build(BuildContext context) { + var onEditorChange = (EditorType et) => Navigator.of(context).pop(et); + + var children = [ + // FIXME: Change this to ListTiles with nice icons + RadioListTile( + title: const Text("Markdown Editor"), + value: EditorType.Markdown, + groupValue: currentEditor, + onChanged: onEditorChange, + ), + RadioListTile( + title: const Text("Raw Editor"), + value: EditorType.Raw, + groupValue: currentEditor, + onChanged: onEditorChange, + ), + RadioListTile( + title: const Text("Checklist Editor"), + value: EditorType.Checklist, + groupValue: currentEditor, + onChanged: onEditorChange, + ), + RadioListTile( + title: const Text("Journal Editor"), + value: EditorType.Journal, + groupValue: currentEditor, + onChanged: onEditorChange, + ), + ]; + + return AlertDialog( + title: const Text("Choose Editor"), + content: Column( + children: children, + mainAxisSize: MainAxisSize.min, + ), + ); + } +}