mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-29 10:17:16 +08:00
FolderViews: Minor refactor
Expose the noteTapped and noteLongPressed functions from all the views. This will be required in the future as we support selecting a note (or multiple notes) in order to perform some action on it. Right now selecting a note means opening the Note Editor.
This commit is contained in:
@ -7,14 +7,16 @@ import 'package:gitjournal/core/notes_folder.dart';
|
|||||||
import 'package:gitjournal/folder_views/note_tile.dart';
|
import 'package:gitjournal/folder_views/note_tile.dart';
|
||||||
|
|
||||||
class CardView extends StatelessWidget {
|
class CardView extends StatelessWidget {
|
||||||
final NoteSelectedFunction noteSelectedFunction;
|
final NoteSelectedFunction noteTapped;
|
||||||
|
final NoteSelectedFunction noteLongPressed;
|
||||||
final NotesFolder folder;
|
final NotesFolder folder;
|
||||||
final String emptyText;
|
final String emptyText;
|
||||||
final bool fixedHeight;
|
final bool fixedHeight;
|
||||||
|
|
||||||
CardView({
|
CardView({
|
||||||
@required this.folder,
|
@required this.folder,
|
||||||
@required this.noteSelectedFunction,
|
@required this.noteTapped,
|
||||||
|
@required this.noteLongPressed,
|
||||||
@required this.emptyText,
|
@required this.emptyText,
|
||||||
this.fixedHeight = false,
|
this.fixedHeight = false,
|
||||||
});
|
});
|
||||||
@ -46,7 +48,11 @@ class CardView extends StatelessWidget {
|
|||||||
itemCount: folder.notes.length,
|
itemCount: folder.notes.length,
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
var note = folder.notes[index];
|
var note = folder.notes[index];
|
||||||
return NoteTile(note, noteSelectedFunction);
|
return NoteTile(
|
||||||
|
note: note,
|
||||||
|
noteTapped: noteTapped,
|
||||||
|
noteLongPressed: noteLongPressed,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
maxCrossAxisExtent: 200.0,
|
maxCrossAxisExtent: 200.0,
|
||||||
staggeredTileBuilder: (int i) => stagTile,
|
staggeredTileBuilder: (int i) => stagTile,
|
||||||
|
@ -29,12 +29,14 @@ Widget buildFolderView(
|
|||||||
bool showSummary,
|
bool showSummary,
|
||||||
) {
|
) {
|
||||||
var noteSelectionFn = (Note note) => openNoteEditor(context, note);
|
var noteSelectionFn = (Note note) => openNoteEditor(context, note);
|
||||||
|
var noteLongPressedFn = (Note note) {};
|
||||||
|
|
||||||
switch (viewType) {
|
switch (viewType) {
|
||||||
case FolderViewType.Standard:
|
case FolderViewType.Standard:
|
||||||
return StandardView(
|
return StandardView(
|
||||||
folder: folder,
|
folder: folder,
|
||||||
noteSelectedFunction: noteSelectionFn,
|
noteTapped: noteSelectionFn,
|
||||||
|
noteLongPressed: noteLongPressedFn,
|
||||||
emptyText: emptyText,
|
emptyText: emptyText,
|
||||||
headerType: header,
|
headerType: header,
|
||||||
showSummary: showSummary,
|
showSummary: showSummary,
|
||||||
@ -42,19 +44,22 @@ Widget buildFolderView(
|
|||||||
case FolderViewType.Journal:
|
case FolderViewType.Journal:
|
||||||
return JournalView(
|
return JournalView(
|
||||||
folder: folder,
|
folder: folder,
|
||||||
noteSelectedFunction: noteSelectionFn,
|
noteTapped: noteSelectionFn,
|
||||||
|
noteLongPressed: noteLongPressedFn,
|
||||||
emptyText: emptyText,
|
emptyText: emptyText,
|
||||||
);
|
);
|
||||||
case FolderViewType.Card:
|
case FolderViewType.Card:
|
||||||
return CardView(
|
return CardView(
|
||||||
folder: folder,
|
folder: folder,
|
||||||
noteSelectedFunction: noteSelectionFn,
|
noteTapped: noteSelectionFn,
|
||||||
|
noteLongPressed: noteLongPressedFn,
|
||||||
emptyText: emptyText,
|
emptyText: emptyText,
|
||||||
);
|
);
|
||||||
case FolderViewType.Grid:
|
case FolderViewType.Grid:
|
||||||
return GridFolderView(
|
return GridFolderView(
|
||||||
folder: folder,
|
folder: folder,
|
||||||
noteSelectedFunction: noteSelectionFn,
|
noteTapped: noteSelectionFn,
|
||||||
|
noteLongPressed: noteLongPressedFn,
|
||||||
emptyText: emptyText,
|
emptyText: emptyText,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -6,13 +6,15 @@ import 'package:gitjournal/folder_views/card_view.dart';
|
|||||||
import 'package:gitjournal/folder_views/note_tile.dart';
|
import 'package:gitjournal/folder_views/note_tile.dart';
|
||||||
|
|
||||||
class GridFolderView extends StatelessWidget {
|
class GridFolderView extends StatelessWidget {
|
||||||
final NoteSelectedFunction noteSelectedFunction;
|
final NoteSelectedFunction noteTapped;
|
||||||
|
final NoteSelectedFunction noteLongPressed;
|
||||||
final NotesFolder folder;
|
final NotesFolder folder;
|
||||||
final String emptyText;
|
final String emptyText;
|
||||||
|
|
||||||
GridFolderView({
|
GridFolderView({
|
||||||
@required this.folder,
|
@required this.folder,
|
||||||
@required this.noteSelectedFunction,
|
@required this.noteTapped,
|
||||||
|
@required this.noteLongPressed,
|
||||||
@required this.emptyText,
|
@required this.emptyText,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -20,7 +22,8 @@ class GridFolderView extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return CardView(
|
return CardView(
|
||||||
folder: folder,
|
folder: folder,
|
||||||
noteSelectedFunction: noteSelectedFunction,
|
noteTapped: noteTapped,
|
||||||
|
noteLongPressed: noteLongPressed,
|
||||||
emptyText: emptyText,
|
emptyText: emptyText,
|
||||||
fixedHeight: true,
|
fixedHeight: true,
|
||||||
);
|
);
|
||||||
|
@ -9,7 +9,8 @@ import 'package:gitjournal/core/sorting_mode.dart';
|
|||||||
import 'package:gitjournal/folder_views/list_view.dart';
|
import 'package:gitjournal/folder_views/list_view.dart';
|
||||||
|
|
||||||
class JournalView extends StatelessWidget {
|
class JournalView extends StatelessWidget {
|
||||||
final NoteSelectedFunction noteSelectedFunction;
|
final NoteSelectedFunction noteTapped;
|
||||||
|
final NoteSelectedFunction noteLongPressed;
|
||||||
final NotesFolder folder;
|
final NotesFolder folder;
|
||||||
final String emptyText;
|
final String emptyText;
|
||||||
|
|
||||||
@ -18,7 +19,8 @@ class JournalView extends StatelessWidget {
|
|||||||
|
|
||||||
JournalView({
|
JournalView({
|
||||||
@required this.folder,
|
@required this.folder,
|
||||||
@required this.noteSelectedFunction,
|
@required this.noteTapped,
|
||||||
|
@required this.noteLongPressed,
|
||||||
@required this.emptyText,
|
@required this.emptyText,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -77,7 +79,8 @@ class JournalView extends StatelessWidget {
|
|||||||
children: children,
|
children: children,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
),
|
),
|
||||||
onTap: () => noteSelectedFunction(note),
|
onTap: () => noteTapped(note),
|
||||||
|
onLongPress: () => noteLongPressed(note),
|
||||||
);
|
);
|
||||||
|
|
||||||
var dc = Theme.of(context).dividerColor;
|
var dc = Theme.of(context).dividerColor;
|
||||||
|
@ -9,9 +9,14 @@ typedef void NoteSelectedFunction(Note note);
|
|||||||
|
|
||||||
class NoteTile extends StatelessWidget {
|
class NoteTile extends StatelessWidget {
|
||||||
final Note note;
|
final Note note;
|
||||||
final NoteSelectedFunction noteSelectedFunction;
|
final NoteSelectedFunction noteTapped;
|
||||||
|
final NoteSelectedFunction noteLongPressed;
|
||||||
|
|
||||||
NoteTile(this.note, this.noteSelectedFunction);
|
NoteTile({
|
||||||
|
@required this.note,
|
||||||
|
@required this.noteTapped,
|
||||||
|
@required this.noteLongPressed,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -76,7 +81,8 @@ class NoteTile extends StatelessWidget {
|
|||||||
child: InkWell(
|
child: InkWell(
|
||||||
child: tileContent,
|
child: tileContent,
|
||||||
borderRadius: borderRadius,
|
borderRadius: borderRadius,
|
||||||
onTap: () => noteSelectedFunction(note),
|
onTap: () => noteTapped(note),
|
||||||
|
onLongPress: () => noteLongPressed(note),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,8 @@ enum StandardViewHeader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class StandardView extends StatelessWidget {
|
class StandardView extends StatelessWidget {
|
||||||
final NoteSelectedFunction noteSelectedFunction;
|
final NoteSelectedFunction noteTapped;
|
||||||
|
final NoteSelectedFunction noteLongPressed;
|
||||||
final NotesFolder folder;
|
final NotesFolder folder;
|
||||||
final String emptyText;
|
final String emptyText;
|
||||||
|
|
||||||
@ -26,7 +27,8 @@ class StandardView extends StatelessWidget {
|
|||||||
|
|
||||||
StandardView({
|
StandardView({
|
||||||
@required this.folder,
|
@required this.folder,
|
||||||
@required this.noteSelectedFunction,
|
@required this.noteTapped,
|
||||||
|
@required this.noteLongPressed,
|
||||||
@required this.emptyText,
|
@required this.emptyText,
|
||||||
@required this.headerType,
|
@required this.headerType,
|
||||||
@required this.showSummary,
|
@required this.showSummary,
|
||||||
@ -115,13 +117,15 @@ class StandardView extends StatelessWidget {
|
|||||||
children: summary,
|
children: summary,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
),
|
),
|
||||||
onTap: () => noteSelectedFunction(note),
|
onTap: () => noteTapped(note),
|
||||||
|
onLongPress: () => noteLongPressed(note),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
tile = ListTile(
|
tile = ListTile(
|
||||||
isThreeLine: false,
|
isThreeLine: false,
|
||||||
title: titleRow,
|
title: titleRow,
|
||||||
onTap: () => noteSelectedFunction(note),
|
onTap: () => noteTapped(note),
|
||||||
|
onLongPress: () => noteLongPressed(note),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user