added simple search feature

This commit is contained in:
2026-01-14 22:49:32 +01:00
parent 36e4eaee17
commit 143206cd72
4 changed files with 93 additions and 2 deletions

View File

@@ -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),
),
],
),

View File

@@ -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),
),
),
),
],
),
);
}
}