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

@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
class SearchBarWidget extends StatelessWidget {
const SearchBarWidget({super.key, required this.onEditingComplete});
final Function(String searchString) onEditingComplete;
@override
Widget build(BuildContext context) {
TextEditingController searchBarController = TextEditingController();
return TextField(
controller: searchBarController,
onEditingComplete: () => onEditingComplete(searchBarController.text),
);
}
}

View File

@@ -0,0 +1,36 @@
import 'package:flutter/material.dart';
import '../../model/bookmark.dart';
import '../../service/notifying.dart';
import '../../service/url_launcher.dart';
class SearchResultsWidget extends StatelessWidget {
const SearchResultsWidget({super.key, required this.bookmarks});
final Iterable<Bookmark> bookmarks;
Widget bookmarkListItemBuilder(BuildContext context, int index) {
final bookmark = bookmarks.elementAt(index);
return ListTile(
title: Text(bookmark.name),
onTap: () => launchUrlFromString(bookmark.link).then((errorCode) {
if (context.mounted && errorCode != UrlLaunchErrorCode.none) {
Notifying.showUrlErrorSnackbar(context, errorCode);
} else if (context.mounted) {
Navigator.of(context).pop();
}
}),
);
}
@override
Widget build(BuildContext context) {
if (bookmarks.isNotEmpty) {
return ListView.builder(
itemBuilder: bookmarkListItemBuilder,
itemCount: bookmarks.length,
);
}
return Center(child: Text('Start searching'));
}
}