NoteEditor: Allow switching between Raw and Rich Editor

This commit is contained in:
Vishesh Handa
2019-10-09 16:46:17 +02:00
parent 5ba7713494
commit 48b3cf6ba7

View File

@ -4,7 +4,7 @@ import 'package:gitjournal/state_container.dart';
import 'package:gitjournal/widgets/note_header.dart'; import 'package:gitjournal/widgets/note_header.dart';
import 'package:gitjournal/storage/serializers.dart'; import 'package:gitjournal/storage/serializers.dart';
enum NoteEditorDropDownChoices { Discard, RawEditor } enum NoteEditorDropDownChoices { Discard, SwitchEditor }
class NoteEditor extends StatefulWidget { class NoteEditor extends StatefulWidget {
final Note note; final Note note;
@ -82,12 +82,18 @@ class NoteEditorState extends State<NoteEditor> {
Navigator.pop(context); Navigator.pop(context);
} }
break; break;
case NoteEditorDropDownChoices.RawEditor: case NoteEditorDropDownChoices.SwitchEditor:
setState(() { setState(() {
rawEditor = true; if (rawEditor) {
var noteData = rawEditor = false;
NoteData(_textController.text, note.data.props); note.data = serializer.decode(_textController.text);
_textController.text = serializer.encode(noteData); _textController.text = note.body;
} else {
rawEditor = true;
var noteData =
NoteData(_textController.text, note.data.props);
_textController.text = serializer.encode(noteData);
}
}); });
break; break;
} }
@ -98,9 +104,9 @@ class NoteEditorState extends State<NoteEditor> {
value: NoteEditorDropDownChoices.Discard, value: NoteEditorDropDownChoices.Discard,
child: Text('Discard'), child: Text('Discard'),
), ),
const PopupMenuItem<NoteEditorDropDownChoices>( PopupMenuItem<NoteEditorDropDownChoices>(
value: NoteEditorDropDownChoices.RawEditor, value: NoteEditorDropDownChoices.SwitchEditor,
child: Text('RawEditor'), child: rawEditor ? Text('Rich Editor') : Text('Raw Editor'),
), ),
], ],
), ),