Implement scrolling through previous notes
This commit is contained in:
@@ -61,3 +61,42 @@ Future<Scratch?> getLatestScratch() async {
|
||||
Future<void> createScratch(String content) async {
|
||||
await DB.db.insert('scratches', {'content': content});
|
||||
}
|
||||
|
||||
// Get the note immediately older than the given date
|
||||
Future<Note?> getPreviousNote(String currentDate) async {
|
||||
final List<Map<String, dynamic>> notes = await DB.db.query(
|
||||
'notes',
|
||||
where: 'date < ?',
|
||||
whereArgs: [currentDate],
|
||||
orderBy: 'date DESC',
|
||||
limit: 1,
|
||||
);
|
||||
if (notes.isNotEmpty) {
|
||||
return Note(
|
||||
date: notes.first['date'] as String,
|
||||
content: notes.first['content'] as String,
|
||||
);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Get the note immediately newer than the given date
|
||||
Future<Note?> getNextNote(String currentDate) async {
|
||||
final List<Map<String, dynamic>> notes = await DB.db.query(
|
||||
'notes',
|
||||
where: 'date > ?',
|
||||
whereArgs: [currentDate],
|
||||
orderBy: 'date ASC',
|
||||
limit: 1,
|
||||
);
|
||||
if (notes.isNotEmpty) {
|
||||
return Note(
|
||||
date: notes.first['date'] as String,
|
||||
content: notes.first['content'] as String,
|
||||
);
|
||||
}
|
||||
// If there's no newer note, it means we might be at the latest
|
||||
// but let's double-check by explicitly getting the latest again.
|
||||
// This handles the case where the `currentDate` might not be the absolute latest.
|
||||
return getLatestNote();
|
||||
}
|
||||
|
Reference in New Issue
Block a user