mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
search page
This commit is contained in:
62
lib/pages/search_result_page.dart
Normal file
62
lib/pages/search_result_page.dart
Normal file
@@ -0,0 +1,62 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:venera/components/components.dart';
|
||||
import 'package:venera/foundation/comic_source/comic_source.dart';
|
||||
|
||||
class SearchResultPage extends StatefulWidget {
|
||||
const SearchResultPage({
|
||||
super.key,
|
||||
required this.text,
|
||||
required this.sourceKey,
|
||||
required this.options,
|
||||
});
|
||||
|
||||
final String text;
|
||||
|
||||
final String sourceKey;
|
||||
|
||||
final List<String> options;
|
||||
|
||||
@override
|
||||
State<SearchResultPage> createState() => _SearchResultPageState();
|
||||
}
|
||||
|
||||
class _SearchResultPageState extends State<SearchResultPage> {
|
||||
late SearchBarController controller;
|
||||
|
||||
late String sourceKey;
|
||||
|
||||
late List<String> options;
|
||||
|
||||
void search([String? text]) {}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
controller = SearchBarController(
|
||||
initialText: widget.text,
|
||||
onSearch: search,
|
||||
);
|
||||
sourceKey = widget.sourceKey;
|
||||
options = widget.options;
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ComicList(
|
||||
errorLeading: AppSearchBar(
|
||||
controller: controller,
|
||||
),
|
||||
leadingSliver: SliverSearchBar(
|
||||
controller: controller,
|
||||
),
|
||||
loadPage: (i) {
|
||||
var source = ComicSource.find(sourceKey);
|
||||
return source!.searchPageData!.loadPage!(
|
||||
controller.initialText,
|
||||
i,
|
||||
options,
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user