Files
Vishesh Handa f4dd4fd148 Add experimental card view
This notes are displayed as cards. This is meant to emulate a more
google keep style.
2020-03-12 14:23:15 +01:00

65 lines
1.7 KiB
Dart

import 'package:fimber/fimber.dart';
import 'package:flutter/material.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/notes_folder.dart';
import 'package:gitjournal/folder_views/card_view.dart';
import 'package:gitjournal/folder_views/journal_view.dart';
import 'package:gitjournal/screens/note_editor.dart';
import 'package:gitjournal/utils.dart';
import 'standard_view.dart';
enum FolderViewType {
Standard,
Journal,
Card,
}
Widget buildFolderView(
BuildContext context,
FolderViewType viewType,
NotesFolderReadOnly folder,
String emptyText,
StandardViewHeader header,
bool showSummary,
) {
var noteSelectionFn = (Note note) async {
var route = MaterialPageRoute(
builder: (context) => NoteEditor.fromNote(note),
);
var showUndoSnackBar = await Navigator.of(context).push(route);
if (showUndoSnackBar != null) {
Fimber.d("Showing an undo snackbar");
var snackBar = buildUndoDeleteSnackbar(context, note);
Scaffold.of(context).showSnackBar(snackBar);
}
};
switch (viewType) {
case FolderViewType.Standard:
return StandardView(
folder: folder,
noteSelectedFunction: noteSelectionFn,
emptyText: emptyText,
headerType: header,
showSummary: showSummary,
);
case FolderViewType.Journal:
return JournalView(
folder: folder,
noteSelectedFunction: noteSelectionFn,
emptyText: emptyText,
);
case FolderViewType.Card:
return CardView(
folder: folder,
noteSelectedFunction: noteSelectionFn,
emptyText: emptyText,
);
}
assert(false, "Code path should never be executed");
return Container();
}