feat: later page: multi select

feat: fav detail page: multi select

opt: reply item

opt: load more

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-11-28 20:53:52 +08:00
parent 665dd8b92a
commit 12818ae415
51 changed files with 988 additions and 759 deletions

View File

@@ -21,17 +21,18 @@ class DynamicsTabController extends CommonController {
}
@override
Future onRefresh() async {
Future onRefresh() {
if (dynamicsType == 'all') {
mainController.setCount();
}
offset = '';
await queryData();
return super.onRefresh();
}
@override
bool customHandleResponse(Success response) {
offset = response.response.offset;
isEnd = response.response.items.isEmpty;
if (currentPage != 1 && loadingState.value is Success) {
response.response.items
.insertAll(0, (loadingState.value as Success).response);

View File

@@ -47,12 +47,6 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
tag: widget.dynamicsType,
);
_dynamicsTabController.scrollController.addListener(() {
if (_dynamicsTabController.scrollController.position.pixels >=
_dynamicsTabController.scrollController.position.maxScrollExtent -
200) {
_dynamicsTabController.onLoadMore();
}
StreamController<bool> mainStream =
Get.find<MainController>().bottomBarStream;
StreamController<bool> searchBarStream =
@@ -155,10 +149,14 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
crossAxisSpacing: StyleString.cardSpace / 2,
mainAxisSpacing: StyleString.cardSpace / 2,
lastChildLayoutTypeBuilder: (index) =>
index == loadingState.response.length
? LastChildLayoutType.foot
: LastChildLayoutType.none,
lastChildLayoutTypeBuilder: (index) {
if (index == loadingState.response.length - 1) {
_dynamicsTabController.onLoadMore();
}
return index == loadingState.response.length
? LastChildLayoutType.foot
: LastChildLayoutType.none;
},
children: [
if (dynamicsController.tabController.index == 4 &&
dynamicsController.mid.value != -1) ...[
@@ -186,6 +184,9 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
sliver: SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) {
if (index == loadingState.response.length - 1) {
_dynamicsTabController.onLoadMore();
}
if ((dynamicsController.tabController.index == 4 &&
dynamicsController.mid.value != -1) ||
!dynamicsController.tempBannedList.contains(
@@ -196,7 +197,7 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
onRemove: _dynamicsTabController.onRemove,
);
}
return const SizedBox();
return const SizedBox.shrink();
},
childCount: loadingState.response.length,
),