mod: delete dynamic on dynamic page

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-12-30 13:54:30 +08:00
parent 2a1849d24c
commit 52f9b0f83c
3 changed files with 25 additions and 3 deletions

View File

@@ -1,8 +1,10 @@
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/http/msg.dart';
import 'package:PiliPalaX/pages/common/common_controller.dart';
import 'package:PiliPalaX/utils/extension.dart';
import 'package:PiliPalaX/http/member.dart';
import 'package:PiliPalaX/models/dynamics/result.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
class MemberDynamicsController extends CommonController {
MemberDynamicsController(this.mid);
@@ -46,4 +48,16 @@ class MemberDynamicsController extends CommonController {
offset: offset,
mid: mid,
);
Future onRemove(dynamicId) async {
var res = await MsgHttp.removeDynamic(dynamicId);
if (res['status']) {
List list = (loadingState.value as Success).response;
list.removeWhere((item) => item.idStr == dynamicId);
loadingState.value = LoadingState.success(list);
SmartDialog.showToast('删除成功');
} else {
SmartDialog.showToast(res['msg']);
}
}
}

View File

@@ -105,7 +105,12 @@ class _MemberDynamicsPageState extends State<MemberDynamicsPage>
: LastChildLayoutType.none;
},
children: (loadingState.response as List)
.map((item) => DynamicPanel(item: item))
.map(
(item) => DynamicPanel(
item: item,
onRemove: _memberDynamicController.onRemove,
),
)
.toList(),
)
: SliverCrossAxisGroup(
@@ -120,7 +125,9 @@ class _MemberDynamicsPageState extends State<MemberDynamicsPage>
_memberDynamicController.onLoadMore();
}
return DynamicPanel(
item: loadingState.response[index]);
item: loadingState.response[index],
onRemove: _memberDynamicController.onRemove,
);
},
childCount: loadingState.response.length,
),