showForwardSelector static method
void
showForwardSelector(
- BuildContext context,
- ForwardMessageFunction forwardMessage, {
- List<
String> ? filterUser, - required String sessionName,
- ForwardType type = ForwardType.normal,
跳转转发选择器
Implementation
static void showForwardSelector(
BuildContext context, ForwardMessageFunction forwardMessage,
{List<String>? filterUser,
required String sessionName,
ForwardType type = ForwardType.normal}) {
Navigator.push(context, MaterialPageRoute(builder: (context) {
return ChatForwardPage(
filterSession: filterUser,
);
})).then((selectedList) {
if (selectedList is List<SelectedBeam>) {
String forwardStr;
if (type == ForwardType.normal) {
forwardStr = S.of(context).messageForwardMessageTips(sessionName);
} else if (type == ForwardType.merge) {
forwardStr =
S.of(context).messageForwardMessageMergedTips(sessionName);
} else {
forwardStr =
S.of(context).messageForwardMessageOneByOneTips(sessionName);
}
showChatForwardNewDialog(
context: context,
contentStr: forwardStr,
selectedBeams: selectedList)
.then((result) async {
if (result != null && result.result == true) {
var recentList = selectedList
.map((selected) =>
RecentForward(selected.sessionId!, selected.type))
.toList(growable: false);
ChatMessageRepo.saveRecentForward(recentList);
for (int i = 0; i < selectedList.length; i++) {
var selected = selectedList[i];
var conversationId = selected.conversationId;
forwardMessage(conversationId ?? '',
postScript: result.postScript,
isLastUser: i == selectedList.length - 1);
}
}
});
}
});
}