fix: loadingState cast

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-12-01 13:59:02 +08:00
parent 62a1768307
commit 43977c737b
4 changed files with 26 additions and 20 deletions

View File

@@ -18,12 +18,14 @@ abstract class MultiSelectController extends CommonController {
}
void handleSelect([bool checked = false]) {
List? list = (loadingState.value as Success?)?.response;
if (list.isNullOrEmpty.not) {
if (loadingState.value is Success) {
List list = (loadingState.value as Success).response;
if (list.isNotEmpty) {
loadingState.value = LoadingState.success(
list!.map((item) => item..checked = checked).toList());
list.map((item) => item..checked = checked).toList());
checkedCount.value = checked ? list.length : 0;
}
}
if (checked.not) {
enableMultiSelect.value = false;
}

View File

@@ -200,8 +200,9 @@ abstract class ReplyController extends CommonController {
savedReplies[key] = null;
if (GlobalData().grpcReply) {
ReplyInfo replyInfo = Utils.replyCast(res);
MainListReply response =
(loadingState.value as Success?)?.response ?? MainListReply();
MainListReply response = loadingState.value is Success
? (loadingState.value as Success).response
: MainListReply();
if (oid != null) {
response.replies.insert(hasUpTop ? 1 : 0, replyInfo);
} else {
@@ -210,8 +211,9 @@ abstract class ReplyController extends CommonController {
count.value += 1;
loadingState.value = LoadingState.success(response);
} else {
ReplyData response =
(loadingState.value as Success?)?.response ?? ReplyData();
ReplyData response = loadingState.value is Success
? (loadingState.value as Success).response
: ReplyData();
response.replies ??= <ReplyItemModel>[];
if (oid != null) {
response.replies

View File

@@ -179,9 +179,11 @@ class HistoryController extends MultiSelectController {
TextButton(
onPressed: () async {
Get.back();
if (loadingState.value is Success) {
_onDelete(((loadingState.value as Success).response as List)
.where((e) => e.checked)
.toList());
}
},
child: const Text('确认'),
)

View File

@@ -298,19 +298,19 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel> {
_savedReplies[key] = null;
if (GlobalData().grpcReply) {
ReplyInfo replyInfo = Utils.replyCast(res);
List list =
(_videoReplyReplyController.loadingState.value as Success?)
?.response ??
<ReplyInfo>[];
List list = _videoReplyReplyController.loadingState.value is Success
? (_videoReplyReplyController.loadingState.value as Success)
.response
: <ReplyInfo>[];
list.insert(index + 1, replyInfo);
_videoReplyReplyController.count.value += 1;
_videoReplyReplyController.loadingState.value =
LoadingState.success(list);
} else {
List list =
(_videoReplyReplyController.loadingState.value as Success?)
?.response ??
<ReplyItemModel>[];
List list = _videoReplyReplyController.loadingState.value is Success
? (_videoReplyReplyController.loadingState.value as Success)
.response
: <ReplyItemModel>[];
list.insert(index + 1, ReplyItemModel.fromJson(res, ''));
_videoReplyReplyController.count.value += 1;
_videoReplyReplyController.loadingState.value =