44 lines
1.1 KiB
Dart
44 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
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 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),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|