goToTeamDetail<T extends Object?> function

Future<T?> goToTeamDetail<T extends Object?>(
  1. BuildContext context,
  2. String teamId
)

跳转到群组详情页面

  • 桌面/Web 端:使用 Dialog 弹框展示,保持左右分栏布局不被破坏 需提前调用 setDesktopTeamDetailBuilder 注入 Widget 构造函数
  • 移动端:正常 push 页面

Implementation

Future<T?> goToTeamDetail<T extends Object?>(
    BuildContext context, String teamId) {
  // 桌面/Web 端:使用 Dialog 弹框展示群组详情
  if (ChatKitUtils.isDesktopOrWeb && _desktopTeamDetailBuilder != null) {
    return showDialog<T>(
      context: context,
      builder: (dialogContext) {
        return Dialog(
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(12),
          ),
          child: ClipRRect(
            borderRadius: BorderRadius.circular(12),
            child: SizedBox(
              width: 400,
              height: 520,
              child: _desktopTeamDetailBuilder!(teamId),
            ),
          ),
        );
      },
    );
  }

  if (IMKitRouter.instance.enableGoRouter) {
    return context.pushNamed(RouterConstants.PATH_TEAM_DETAIL_PAGE,
        extra: {'teamId': teamId});
  }
  return Navigator.pushNamed(context, RouterConstants.PATH_TEAM_DETAIL_PAGE,
      arguments: {'teamId': teamId});
}