42 lines
1.2 KiB
Dart
42 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:sendtrain/daos/activities_dao.dart';
|
|
import 'package:sendtrain/database/database.dart';
|
|
// import 'package:sendtrain/widgets/activities/activity_card.dart';
|
|
import 'package:sendtrain/widgets/generic/elements/form_search_input.dart';
|
|
|
|
class ActivityFinderService {
|
|
final BuildContext context;
|
|
final ActivitiesDao dao;
|
|
|
|
ActivityFinderService(this.context)
|
|
: dao = ActivitiesDao(Provider.of<AppDatabase>(context, listen: false));
|
|
|
|
void finish() {}
|
|
|
|
Future<List<Suggestion>?> fetchSuggestions(String input) async {
|
|
List<Activity> activities = await dao.contains(input);
|
|
|
|
if (activities.isNotEmpty) {
|
|
return activities
|
|
.map<Suggestion>((activity) => Suggestion<Activity>(activity))
|
|
.toList();
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
Widget resultWidget(Activity activity, Function? callback) {
|
|
// return ActivityCard(activity: activity, callback: callback);
|
|
return ListTile(
|
|
title: Text(activity.title),
|
|
subtitle: Text(activity.description),
|
|
onTap: () {
|
|
if (callback != null) {
|
|
callback();
|
|
}
|
|
},
|
|
);
|
|
}
|
|
}
|