mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-26 19:18:43 +00:00
@@ -6,7 +6,6 @@ import 'package:PiliPlus/models_new/member/search_archive/vlist.dart';
|
|||||||
import 'package:PiliPlus/pages/member_video_web/archive/controller.dart';
|
import 'package:PiliPlus/pages/member_video_web/archive/controller.dart';
|
||||||
import 'package:PiliPlus/pages/member_video_web/base/view.dart';
|
import 'package:PiliPlus/pages/member_video_web/base/view.dart';
|
||||||
import 'package:PiliPlus/pages/search/widgets/search_text.dart';
|
import 'package:PiliPlus/pages/search/widgets/search_text.dart';
|
||||||
import 'package:PiliPlus/utils/grid.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
@@ -37,8 +36,7 @@ class _MemberVideoWebState
|
|||||||
SearchArchiveData,
|
SearchArchiveData,
|
||||||
VListItemModel,
|
VListItemModel,
|
||||||
ArchiveOrderTypeWeb
|
ArchiveOrderTypeWeb
|
||||||
>
|
> {
|
||||||
with GridMixin {
|
|
||||||
@override
|
@override
|
||||||
late final MemberVideoWebCtr controller;
|
late final MemberVideoWebCtr controller;
|
||||||
|
|
||||||
|
|||||||
@@ -188,7 +188,9 @@ abstract class BaseVideoWebState<
|
|||||||
|
|
||||||
void onSubmit([_]) {
|
void onSubmit([_]) {
|
||||||
try {
|
try {
|
||||||
controller.jumpToPage(int.parse(pageStr));
|
controller.jumpToPage(
|
||||||
|
int.parse(pageStr).clamp(1, controller.totalPage!),
|
||||||
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
SmartDialog.showToast(e.toString());
|
SmartDialog.showToast(e.toString());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import 'package:PiliPlus/models_new/member/season_web/archive.dart';
|
|||||||
import 'package:PiliPlus/models_new/member/season_web/data.dart';
|
import 'package:PiliPlus/models_new/member/season_web/data.dart';
|
||||||
import 'package:PiliPlus/pages/member_video_web/base/view.dart';
|
import 'package:PiliPlus/pages/member_video_web/base/view.dart';
|
||||||
import 'package:PiliPlus/pages/member_video_web/season_series/controller.dart';
|
import 'package:PiliPlus/pages/member_video_web/season_series/controller.dart';
|
||||||
import 'package:PiliPlus/utils/grid.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
@@ -39,8 +38,7 @@ class _MemberSSWebState
|
|||||||
SeasonWebData,
|
SeasonWebData,
|
||||||
SeasonArchive,
|
SeasonArchive,
|
||||||
ArchiveSortTypeApp
|
ArchiveSortTypeApp
|
||||||
>
|
> {
|
||||||
with GridMixin {
|
|
||||||
@override
|
@override
|
||||||
late final MemberSSWebCtr controller;
|
late final MemberSSWebCtr controller;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
|
|||||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
|
||||||
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
|
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
|
||||||
|
import 'package:PiliPlus/common/widgets/sliver/sliver_pinned_header.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:PiliPlus/models/common/image_preview_type.dart';
|
import 'package:PiliPlus/models/common/image_preview_type.dart';
|
||||||
import 'package:PiliPlus/models/common/image_type.dart';
|
import 'package:PiliPlus/models/common/image_type.dart';
|
||||||
@@ -85,7 +86,6 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
|
|||||||
Success(:final response) => Column(
|
Success(:final response) => Column(
|
||||||
children: [
|
children: [
|
||||||
_buildUserInfo(theme, response),
|
_buildUserInfo(theme, response),
|
||||||
_buildHeader(theme),
|
|
||||||
Expanded(
|
Expanded(
|
||||||
child: refreshIndicator(
|
child: refreshIndicator(
|
||||||
onRefresh: _controller.onRefresh,
|
onRefresh: _controller.onRefresh,
|
||||||
@@ -122,15 +122,17 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildHeader(ThemeData theme) {
|
Widget _buildHeader(ThemeData theme) {
|
||||||
return Container(
|
return SliverPinnedHeader(
|
||||||
height: 40,
|
backgroundColor: theme.colorScheme.surface,
|
||||||
padding: const EdgeInsets.fromLTRB(12, 0, 6, 0),
|
child: Padding(
|
||||||
child: Row(
|
padding: const EdgeInsets.fromLTRB(12, 4, 6, 4),
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
child: Row(
|
||||||
children: [
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
?_buildCount(),
|
children: [
|
||||||
_buildSortBtn(theme),
|
?_buildCount(),
|
||||||
],
|
_buildSortBtn(theme),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -179,32 +181,37 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
|
|||||||
),
|
),
|
||||||
Success(:final response) =>
|
Success(:final response) =>
|
||||||
response != null && response.isNotEmpty
|
response != null && response.isNotEmpty
|
||||||
? SliverFixedExtentList.builder(
|
? SliverMainAxisGroup(
|
||||||
itemBuilder: (context, index) {
|
slivers: [
|
||||||
if (index == response.length - 1 && _controller.hasNext) {
|
_buildHeader(theme),
|
||||||
_controller.onLoadMore();
|
SliverFixedExtentList.builder(
|
||||||
}
|
itemBuilder: (context, index) {
|
||||||
final SpaceArchiveItem videoItem = response[index];
|
if (index == response.length - 1 && _controller.hasNext) {
|
||||||
return Padding(
|
_controller.onLoadMore();
|
||||||
padding: const EdgeInsets.only(bottom: 2),
|
}
|
||||||
child: VideoCardHMemberVideo(
|
final videoItem = response[index];
|
||||||
videoItem: videoItem,
|
return Padding(
|
||||||
bvid: _bvid,
|
padding: const EdgeInsets.only(bottom: 2),
|
||||||
onTap: () {
|
child: VideoCardHMemberVideo(
|
||||||
Get.back();
|
videoItem: videoItem,
|
||||||
widget.ugcIntroController.onChangeEpisode(
|
bvid: _bvid,
|
||||||
BaseEpisodeItem(
|
onTap: () {
|
||||||
bvid: videoItem.bvid,
|
Get.back();
|
||||||
cid: videoItem.cid,
|
widget.ugcIntroController.onChangeEpisode(
|
||||||
cover: videoItem.cover,
|
BaseEpisodeItem(
|
||||||
),
|
bvid: videoItem.bvid,
|
||||||
);
|
cid: videoItem.cid,
|
||||||
},
|
cover: videoItem.cover,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
itemCount: response.length,
|
),
|
||||||
itemExtent: 100,
|
);
|
||||||
|
},
|
||||||
|
itemCount: response.length,
|
||||||
|
itemExtent: 100,
|
||||||
|
),
|
||||||
|
],
|
||||||
)
|
)
|
||||||
: HttpError(onReload: _controller.onReload),
|
: HttpError(onReload: _controller.onReload),
|
||||||
Error(:final errMsg) => HttpError(
|
Error(:final errMsg) => HttpError(
|
||||||
|
|||||||
Reference in New Issue
Block a user