mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
fix: search ctr
related #306 Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -46,7 +46,7 @@ class _SearchPanelState extends State<SearchPanel>
|
||||
searchType: widget.searchType,
|
||||
tag: widget.tag,
|
||||
),
|
||||
tag: widget.searchType.name + widget.keyword,
|
||||
tag: widget.searchType.name + widget.tag,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,11 +14,12 @@ import 'package:PiliPlus/utils/utils.dart';
|
||||
|
||||
import '../../../utils/grid.dart';
|
||||
|
||||
Widget searchArticlePanel(context, searchPanelCtr, LoadingState loadingState) {
|
||||
Widget searchArticlePanel(BuildContext context,
|
||||
SearchPanelController searchPanelCtr, LoadingState loadingState) {
|
||||
TextStyle textStyle = TextStyle(
|
||||
fontSize: Theme.of(context).textTheme.labelSmall!.fontSize,
|
||||
color: Theme.of(context).colorScheme.outline);
|
||||
final ctr = Get.put(ArticlePanelController());
|
||||
final ctr = Get.put(ArticlePanelController(), tag: searchPanelCtr.tag);
|
||||
|
||||
return CustomScrollView(
|
||||
controller: searchPanelCtr.scrollController,
|
||||
@@ -288,7 +289,9 @@ class ArticlePanelController extends GetxController {
|
||||
SmartDialog.showToast("「${item['label']}」的筛选结果");
|
||||
SearchPanelController ctr =
|
||||
Get.find<SearchPanelController>(
|
||||
tag: 'article${searchPanelCtr.keyword}');
|
||||
tag: searchPanelCtr.searchType.name +
|
||||
searchPanelCtr.tag,
|
||||
);
|
||||
ctr.order.value = item['order'];
|
||||
SmartDialog.showLoading(msg: 'loading');
|
||||
await ctr.onReload();
|
||||
@@ -321,7 +324,9 @@ class ArticlePanelController extends GetxController {
|
||||
SmartDialog.showToast("「${item['label']}」的筛选结果");
|
||||
SearchPanelController ctr =
|
||||
Get.find<SearchPanelController>(
|
||||
tag: 'article${searchPanelCtr.keyword}');
|
||||
tag: searchPanelCtr.searchType.name +
|
||||
searchPanelCtr.tag,
|
||||
);
|
||||
ctr.categoryId = item['categoryId'];
|
||||
SmartDialog.showLoading(msg: 'loading');
|
||||
await ctr.onReload();
|
||||
|
||||
@@ -12,11 +12,12 @@ import 'package:PiliPlus/utils/utils.dart';
|
||||
|
||||
import '../../../utils/grid.dart';
|
||||
|
||||
Widget searchUserPanel(context, searchPanelCtr, LoadingState loadingState) {
|
||||
Widget searchUserPanel(BuildContext context,
|
||||
SearchPanelController searchPanelCtr, LoadingState loadingState) {
|
||||
TextStyle style = TextStyle(
|
||||
fontSize: Theme.of(context).textTheme.labelSmall!.fontSize,
|
||||
color: Theme.of(context).colorScheme.outline);
|
||||
final ctr = Get.put(UserPanelController());
|
||||
final ctr = Get.put(UserPanelController(), tag: searchPanelCtr.tag);
|
||||
|
||||
return CustomScrollView(
|
||||
controller: searchPanelCtr.scrollController,
|
||||
@@ -213,7 +214,9 @@ class UserPanelController extends GetxController {
|
||||
SmartDialog.showToast("「${item['label']}」的筛选结果");
|
||||
SearchPanelController ctr =
|
||||
Get.find<SearchPanelController>(
|
||||
tag: 'bili_user${searchPanelCtr.keyword}');
|
||||
tag: searchPanelCtr.searchType.name +
|
||||
searchPanelCtr.tag,
|
||||
);
|
||||
ctr.orderSort = item['orderSort'];
|
||||
ctr.order.value = item['order'];
|
||||
SmartDialog.showLoading(msg: 'loading');
|
||||
@@ -247,7 +250,9 @@ class UserPanelController extends GetxController {
|
||||
SmartDialog.showToast("「${item['label']}」的筛选结果");
|
||||
SearchPanelController ctr =
|
||||
Get.find<SearchPanelController>(
|
||||
tag: 'bili_user${searchPanelCtr.keyword}');
|
||||
tag: searchPanelCtr.searchType.name +
|
||||
searchPanelCtr.tag,
|
||||
);
|
||||
ctr.userType = item['userType'];
|
||||
SmartDialog.showLoading(msg: 'loading');
|
||||
await ctr.onReload();
|
||||
|
||||
@@ -14,10 +14,11 @@ import 'package:intl/intl.dart';
|
||||
import '../../../common/constants.dart';
|
||||
import '../../../utils/grid.dart';
|
||||
|
||||
Widget searchVideoPanel(context, ctr, LoadingState loadingState) {
|
||||
final controller = Get.put(VideoPanelController());
|
||||
Widget searchVideoPanel(BuildContext context,
|
||||
SearchPanelController searchPanelCtr, LoadingState loadingState) {
|
||||
final controller = Get.put(VideoPanelController(), tag: searchPanelCtr.tag);
|
||||
return CustomScrollView(
|
||||
controller: ctr.scrollController,
|
||||
controller: searchPanelCtr.scrollController,
|
||||
slivers: [
|
||||
SliverPersistentHeader(
|
||||
pinned: false,
|
||||
@@ -48,10 +49,10 @@ Widget searchVideoPanel(context, ctr, LoadingState loadingState) {
|
||||
: Theme.of(context).colorScheme.outline,
|
||||
onTap: (value) async {
|
||||
controller.selectedType.value = i['type'];
|
||||
ctr.order.value =
|
||||
searchPanelCtr.order.value =
|
||||
i['type'].toString().split('.').last;
|
||||
SmartDialog.showLoading(msg: 'loading');
|
||||
await ctr.onReload();
|
||||
await searchPanelCtr.onReload();
|
||||
SmartDialog.dismiss();
|
||||
},
|
||||
),
|
||||
@@ -72,7 +73,7 @@ Widget searchVideoPanel(context, ctr, LoadingState loadingState) {
|
||||
padding: WidgetStateProperty.all(EdgeInsets.zero),
|
||||
),
|
||||
onPressed: () =>
|
||||
controller.onShowFilterDialog(context, ctr),
|
||||
controller.onShowFilterDialog(context, searchPanelCtr),
|
||||
icon: Icon(
|
||||
Icons.filter_list_outlined,
|
||||
size: 18,
|
||||
@@ -101,7 +102,7 @@ Widget searchVideoPanel(context, ctr, LoadingState loadingState) {
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(BuildContext context, int index) {
|
||||
if (index == loadingState.response.length - 1) {
|
||||
ctr.onLoadMore();
|
||||
searchPanelCtr.onLoadMore();
|
||||
}
|
||||
return VideoCardH(
|
||||
videoItem: loadingState.response[index],
|
||||
@@ -113,11 +114,11 @@ Widget searchVideoPanel(context, ctr, LoadingState loadingState) {
|
||||
),
|
||||
)
|
||||
: HttpError(
|
||||
callback: ctr.onReload,
|
||||
callback: searchPanelCtr.onReload,
|
||||
),
|
||||
Error() => HttpError(
|
||||
errMsg: loadingState.errMsg,
|
||||
callback: ctr.onReload,
|
||||
callback: searchPanelCtr.onReload,
|
||||
),
|
||||
_ => throw UnimplementedError(),
|
||||
},
|
||||
@@ -236,7 +237,8 @@ class VideoPanelController extends GetxController {
|
||||
SmartDialog.dismiss();
|
||||
// SmartDialog.showToast("「${item['label']}」的筛选结果");
|
||||
SearchPanelController ctr = Get.find<SearchPanelController>(
|
||||
tag: 'video${searchPanelCtr.keyword}');
|
||||
tag: searchPanelCtr.searchType.name + searchPanelCtr.tag,
|
||||
);
|
||||
ctr.pubBegin = DateTime(
|
||||
pubBegin.year,
|
||||
pubBegin.month,
|
||||
@@ -303,7 +305,9 @@ class VideoPanelController extends GetxController {
|
||||
SmartDialog.showToast("「${item['label']}」的筛选结果");
|
||||
SearchPanelController ctr =
|
||||
Get.find<SearchPanelController>(
|
||||
tag: 'video${searchPanelCtr.keyword}');
|
||||
tag: searchPanelCtr.searchType.name +
|
||||
searchPanelCtr.tag,
|
||||
);
|
||||
DateTime now = DateTime.now();
|
||||
if (item['value'] == 0) {
|
||||
ctr.pubBegin = null;
|
||||
@@ -381,7 +385,9 @@ class VideoPanelController extends GetxController {
|
||||
SmartDialog.showToast("「${item['label']}」的筛选结果");
|
||||
SearchPanelController ctr =
|
||||
Get.find<SearchPanelController>(
|
||||
tag: 'video${searchPanelCtr.keyword}');
|
||||
tag: searchPanelCtr.searchType.name +
|
||||
searchPanelCtr.tag,
|
||||
);
|
||||
ctr.duration.value = item['value'];
|
||||
SmartDialog.showLoading(msg: 'loading');
|
||||
await ctr.onReload();
|
||||
@@ -418,7 +424,9 @@ class VideoPanelController extends GetxController {
|
||||
SmartDialog.showToast("「${item['label']}」的筛选结果");
|
||||
SearchPanelController ctr =
|
||||
Get.find<SearchPanelController>(
|
||||
tag: 'video${searchPanelCtr.keyword}');
|
||||
tag: searchPanelCtr.searchType.name +
|
||||
searchPanelCtr.tag,
|
||||
);
|
||||
ctr.tids = item['tids'];
|
||||
SmartDialog.showLoading(msg: 'loading');
|
||||
await ctr.onReload();
|
||||
|
||||
@@ -32,11 +32,15 @@ class _SearchResultPageState extends State<SearchResultPage>
|
||||
vsync: this,
|
||||
initialIndex: Get.arguments is int ? Get.arguments : 0,
|
||||
length: SearchType.values.length,
|
||||
)..addListener(() {
|
||||
);
|
||||
|
||||
if (Get.arguments is int) {
|
||||
_tabController.addListener(() {
|
||||
if (Get.isRegistered<SSearchController>()) {
|
||||
Get.find<SSearchController>().initIndex = _tabController.index;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -110,8 +114,7 @@ class _SearchResultPageState extends State<SearchResultPage>
|
||||
onTap: (index) {
|
||||
if (_tabController.indexIsChanging.not) {
|
||||
Get.find<SearchPanelController>(
|
||||
tag: SearchType.values[index].name +
|
||||
_searchResultController.keyword)
|
||||
tag: SearchType.values[index].name + _tag)
|
||||
.animateToTop();
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user