import 'package:PiliPlus/http/dynamics.dart'; import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/http/msg.dart'; import 'package:PiliPlus/models/common/dynamic/dynamics_type.dart'; import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:PiliPlus/pages/common/common_list_controller.dart'; import 'package:PiliPlus/pages/main/controller.dart'; import 'package:PiliPlus/utils/extension.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; class DynamicsTabController extends CommonListController { DynamicsTabController({required this.dynamicsType}); final DynamicsTabType dynamicsType; String offset = ''; int? mid; late final MainController mainController = Get.find(); @override void onInit() { super.onInit(); queryData(); } @override Future onRefresh() { if (dynamicsType == DynamicsTabType.all) { mainController.setCount(); } offset = ''; return super.onRefresh(); } @override List? getDataList(DynamicsDataModel response) { return response.items; } @override bool customHandleResponse( bool isRefresh, Success response) { offset = response.response.offset ?? ''; return false; } @override Future> customGetData() => DynamicsHttp.followDynamic( type: dynamicsType, offset: offset, mid: mid, ); Future onRemove(dynamic dynamicId) async { var res = await MsgHttp.removeDynamic(dynIdStr: dynamicId); if (res['status']) { loadingState.value.data!.removeWhere((item) => item.idStr == dynamicId); loadingState.refresh(); SmartDialog.showToast('删除成功'); } else { SmartDialog.showToast(res['msg']); } } Future onSetTop(bool isTop, dynamic dynamicId) async { var res = await DynamicsHttp.setTop(dynamicId: dynamicId); if (res['status']) { SmartDialog.showToast('${isTop ? '取消' : ''}置顶成功'); } else { SmartDialog.showToast(res['msg']); } } @override Future onReload() { scrollController.jumpToTop(); return super.onReload(); } }