opt: pages

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-11-21 18:06:33 +08:00
parent 5b2a4fa681
commit c5f5c00d37
66 changed files with 1504 additions and 1534 deletions

View File

@@ -45,14 +45,14 @@ class SearchPanelController extends CommonController {
if (dataList.isNotEmpty) {
loadingState.value = LoadingState.success(dataList);
} else {
loadingState.value = LoadingState.empty();
loadingState.value = LoadingState.success([]);
}
if (currentPage == 1) {
onPushDetail(response.response.list);
}
} else {
if (currentPage == 1) {
loadingState.value = LoadingState.empty();
loadingState.value = LoadingState.success([]);
}
}
return true;

View File

@@ -206,7 +206,7 @@ Widget searchArticlePanel(BuildContext context, searchPanelCtr, loadingState) {
)
: HttpError(
errMsg: loadingState is Error ? loadingState.errMsg : '没有相关数据',
fn: searchPanelCtr.onReload,
callback: searchPanelCtr.onReload,
),
],
);

View File

@@ -1,4 +1,4 @@
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/common/widgets/loading_widget.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -8,36 +8,39 @@ import 'package:PiliPalaX/utils/utils.dart';
import '../../../utils/grid.dart';
Widget searchLivePanel(BuildContext context, ctr, loadingState) {
return loadingState is Success
? GridView.builder(
padding: const EdgeInsets.only(
left: StyleString.safeSpace,
right: StyleString.safeSpace,
bottom: StyleString.safeSpace,
),
primary: false,
controller: ctr!.scrollController,
gridDelegate: SliverGridDelegateWithExtentAndRatio(
maxCrossAxisExtent: Grid.maxRowWidth,
crossAxisSpacing: StyleString.safeSpace,
mainAxisSpacing: StyleString.safeSpace,
childAspectRatio: StyleString.aspectRatio,
mainAxisExtent: MediaQuery.textScalerOf(context).scale(80),
),
itemCount: loadingState.response.length,
itemBuilder: (context, index) {
return LiveItem(liveItem: loadingState.response[index]);
},
)
: CustomScrollView(
slivers: [
HttpError(
errMsg: loadingState is Error ? loadingState.errMsg : '没有相关数据',
fn: ctr.onReload,
Widget searchLivePanel(BuildContext context, ctr, LoadingState loadingState) {
return switch (loadingState) {
Loading() => loadingWidget,
Success() => (loadingState.response as List?)?.isNotEmpty == true
? GridView.builder(
padding: const EdgeInsets.only(
left: StyleString.safeSpace,
right: StyleString.safeSpace,
bottom: StyleString.safeSpace,
),
],
);
primary: false,
controller: ctr!.scrollController,
gridDelegate: SliverGridDelegateWithExtentAndRatio(
maxCrossAxisExtent: Grid.maxRowWidth,
crossAxisSpacing: StyleString.safeSpace,
mainAxisSpacing: StyleString.safeSpace,
childAspectRatio: StyleString.aspectRatio,
mainAxisExtent: MediaQuery.textScalerOf(context).scale(80),
),
itemCount: loadingState.response.length,
itemBuilder: (context, index) {
return LiveItem(liveItem: loadingState.response[index]);
},
)
: errorWidget(
callback: ctr.onReload,
),
Error() => errorWidget(
errMsg: loadingState.errMsg,
callback: ctr.onReload,
),
LoadingState() => throw UnimplementedError(),
};
}
class LiveItem extends StatelessWidget {

View File

@@ -192,7 +192,7 @@ Widget searchBangumiPanel(BuildContext context, ctr, loadingState) {
)
: HttpError(
errMsg: loadingState is Error ? loadingState.errMsg : '没有相关数据',
fn: ctr.onReload,
callback: ctr.onReload,
),
],
);

View File

@@ -150,7 +150,7 @@ Widget searchUserPanel(BuildContext context, searchPanelCtr, loadingState) {
)
: HttpError(
errMsg: loadingState is Error ? loadingState.errMsg : '没有相关数据',
fn: searchPanelCtr.onReload,
callback: searchPanelCtr.onReload,
)
],
);

View File

@@ -123,7 +123,7 @@ class SearchVideoPanel extends StatelessWidget {
)
: HttpError(
errMsg: loadingState is Error ? loadingState.errMsg : '没有相关数据',
fn: ctr.onReload,
callback: ctr.onReload,
),
],
);