search page

This commit is contained in:
nyne
2024-10-04 10:37:31 +08:00
parent df9a854cb0
commit 2772289a19
9 changed files with 689 additions and 200 deletions

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