Files
GitJournal/lib/widgets/note_editor_selector.dart
Vishesh Handa 9d00fdac06 Use import_sorter
flutter pub run import_sorter:main --no-comments

The code feels much cleaner
2020-07-24 12:43:28 +02:00

75 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/fa_icon.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/screens/note_editor.dart';
class NoteEditorSelector extends StatelessWidget {
final EditorType currentEditor;
final NoteFileFormat fileFormat;
NoteEditorSelector(this.currentEditor, this.fileFormat);
@override
Widget build(BuildContext context) {
var list = Column(
children: <Widget>[
if (fileFormat != NoteFileFormat.Txt)
_buildTile(
context,
EditorType.Markdown,
"Markdown Editor",
FontAwesomeIcons.markdown,
),
_buildTile(
context,
EditorType.Raw,
"Raw Editor",
FontAwesomeIcons.dna,
),
_buildTile(
context,
EditorType.Checklist,
"Checklist Editor",
FontAwesomeIcons.tasks,
),
_buildTile(
context,
EditorType.Journal,
"Journal Editor",
FontAwesomeIcons.book,
),
],
mainAxisSize: MainAxisSize.min,
);
return AlertDialog(
title: const Text("Choose Editor"),
content: list,
);
}
ListTile _buildTile(
BuildContext context,
EditorType et,
String text,
IconData iconData,
) {
var selected = et == currentEditor;
var theme = Theme.of(context);
var listTileTheme = ListTileTheme.of(context);
var textStyle = theme.textTheme.bodyText2.copyWith(
color: selected ? theme.primaryColor : listTileTheme.textColor,
);
return ListTile(
title: Text(text),
leading: FaIcon(iconData, color: textStyle.color),
onTap: () => Navigator.of(context).pop(et),
selected: selected,
);
}
}