showForwardSelector static method

void showForwardSelector(
  1. BuildContext context,
  2. ForwardMessageFunction forwardMessage, {
  3. List<String>? filterUser,
  4. required String sessionName,
  5. 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);
          }
        }
      });
    }
  });
}