mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
refa: query data (#659)
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/pages/common/common_controller.dart';
|
||||
import 'package:PiliPlus/models/video/reply/emote.dart';
|
||||
import 'package:PiliPlus/pages/common/common_list_controller.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
import '../../http/reply.dart';
|
||||
|
||||
class EmotePanelController extends CommonController
|
||||
class EmotePanelController
|
||||
extends CommonListController<List<Packages>?, Packages>
|
||||
with GetTickerProviderStateMixin {
|
||||
TabController? tabController;
|
||||
|
||||
@@ -16,15 +18,17 @@ class EmotePanelController extends CommonController
|
||||
}
|
||||
|
||||
@override
|
||||
bool customHandleResponse(Success response) {
|
||||
tabController =
|
||||
TabController(length: response.response.length, vsync: this);
|
||||
bool customHandleResponse(bool isRefresh, Success<List<Packages>?> response) {
|
||||
if (response.response?.isNotEmpty == true) {
|
||||
tabController =
|
||||
TabController(length: response.response!.length, vsync: this);
|
||||
}
|
||||
loadingState.value = response;
|
||||
return true;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<LoadingState> customGetData() =>
|
||||
Future<LoadingState<List<Packages>?>> customGetData() =>
|
||||
ReplyHttp.getEmoteList(business: 'reply');
|
||||
|
||||
@override
|
||||
|
||||
@@ -29,16 +29,16 @@ class _EmotePanelState extends State<EmotePanel>
|
||||
return Obx(() => _buildBody(_emotePanelController.loadingState.value));
|
||||
}
|
||||
|
||||
Widget _buildBody(LoadingState loadingState) {
|
||||
Widget _buildBody(LoadingState<List<Packages>?> loadingState) {
|
||||
return switch (loadingState) {
|
||||
Loading() => loadingWidget,
|
||||
Success() => (loadingState.response as List?)?.isNotEmpty == true
|
||||
Success() => loadingState.response?.isNotEmpty == true
|
||||
? Column(
|
||||
children: [
|
||||
Expanded(
|
||||
child: tabBarView(
|
||||
controller: _emotePanelController.tabController,
|
||||
children: (loadingState.response as List<Packages>).map(
|
||||
children: loadingState.response!.map(
|
||||
(e) {
|
||||
int size = e.emote!.first.meta!.size!;
|
||||
int type = e.type!;
|
||||
@@ -100,7 +100,7 @@ class _EmotePanelState extends State<EmotePanel>
|
||||
dividerColor: Colors.transparent,
|
||||
dividerHeight: 0,
|
||||
isScrollable: true,
|
||||
tabs: (loadingState.response as List<Packages>)
|
||||
tabs: loadingState.response!
|
||||
.map(
|
||||
(e) => Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
|
||||
Reference in New Issue
Block a user