From 48b3cf6ba7a054b2ef79bfa1297577f0a4d46f14 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Wed, 9 Oct 2019 16:46:17 +0200 Subject: [PATCH] NoteEditor: Allow switching between Raw and Rich Editor --- lib/screens/note_editor.dart | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/lib/screens/note_editor.dart b/lib/screens/note_editor.dart index bee4bb53..356e0395 100644 --- a/lib/screens/note_editor.dart +++ b/lib/screens/note_editor.dart @@ -4,7 +4,7 @@ import 'package:gitjournal/state_container.dart'; import 'package:gitjournal/widgets/note_header.dart'; import 'package:gitjournal/storage/serializers.dart'; -enum NoteEditorDropDownChoices { Discard, RawEditor } +enum NoteEditorDropDownChoices { Discard, SwitchEditor } class NoteEditor extends StatefulWidget { final Note note; @@ -82,12 +82,18 @@ class NoteEditorState extends State { Navigator.pop(context); } break; - case NoteEditorDropDownChoices.RawEditor: + case NoteEditorDropDownChoices.SwitchEditor: setState(() { - rawEditor = true; - var noteData = - NoteData(_textController.text, note.data.props); - _textController.text = serializer.encode(noteData); + if (rawEditor) { + rawEditor = false; + note.data = serializer.decode(_textController.text); + _textController.text = note.body; + } else { + rawEditor = true; + var noteData = + NoteData(_textController.text, note.data.props); + _textController.text = serializer.encode(noteData); + } }); break; } @@ -98,9 +104,9 @@ class NoteEditorState extends State { value: NoteEditorDropDownChoices.Discard, child: Text('Discard'), ), - const PopupMenuItem( - value: NoteEditorDropDownChoices.RawEditor, - child: Text('RawEditor'), + PopupMenuItem( + value: NoteEditorDropDownChoices.SwitchEditor, + child: rawEditor ? Text('Rich Editor') : Text('Raw Editor'), ), ], ),