added simple search feature
This commit is contained in:
@@ -7,6 +7,7 @@ import '../service/shared_link_provider.dart';
|
||||
import '../service/storage.dart';
|
||||
import '../widgets/create_bookmark_collection_dialog.dart';
|
||||
import 'collection_page.dart';
|
||||
import 'search_page.dart' show SearchPage;
|
||||
|
||||
class CollectionsListPage extends StatefulWidget {
|
||||
const CollectionsListPage({super.key});
|
||||
@@ -88,6 +89,12 @@ class _CollectionsListPageState extends State<CollectionsListPage> {
|
||||
TextButton(
|
||||
onPressed: () => provider.removeCurrentMapsLink(),
|
||||
child: Text('Cancel'),
|
||||
)
|
||||
else
|
||||
IconButton(
|
||||
onPressed: () =>
|
||||
Navigator.of(context).pushNamed(SearchPage.routeName),
|
||||
icon: Icon(Icons.search),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -1,11 +1,43 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SearchPage extends StatelessWidget {
|
||||
import '../model/bookmark.dart';
|
||||
import '../service/storage.dart';
|
||||
import '../widgets/search_widgets/search_bar_widget.dart';
|
||||
import '../widgets/search_widgets/search_results_widget.dart';
|
||||
|
||||
class SearchPage extends StatefulWidget {
|
||||
const SearchPage({super.key});
|
||||
|
||||
static const String routeName = '/search';
|
||||
|
||||
@override
|
||||
State<SearchPage> createState() => _SearchPageState();
|
||||
}
|
||||
|
||||
class _SearchPageState extends State<SearchPage> {
|
||||
final List<Bookmark> allBookmarks = Storage.loadBookmarks();
|
||||
String searchString = '';
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Placeholder();
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: Text('Search')),
|
||||
body: Column(
|
||||
children: [
|
||||
SearchBarWidget(
|
||||
onEditingComplete: (searchString) => setState(() {
|
||||
this.searchString = searchString;
|
||||
}),
|
||||
),
|
||||
Expanded(
|
||||
child: SearchResultsWidget(
|
||||
bookmarks: allBookmarks.where(
|
||||
(bookmark) => bookmark.name.contains(searchString),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user