fix(mobile-next): 把加载、失败、断网接到真实 SDK 与目录请求

会话列表、通讯录、好友申请、添加同事页覆盖 CompanyLoadingView/CompanyFailView;
主页断网横幅跟随 IMSdkStatus.connectionFailed。不伪造状态。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
编码工程师
2026-08-20 02:52:24 +08:00
co-authored by Cursor multica-agent
parent 092f513708
commit 2b2c2d28a4
9 changed files with 432 additions and 186 deletions
+32 -16
View File
@@ -9,6 +9,7 @@ import '../mine/mine_view.dart';
import 'home_logic.dart';
import 'package:persistent_bottom_nav_bar_v2/persistent_bottom_nav_bar_v2.dart';
import '../../company/feature_flags.dart';
import '../../company/ui/state_views.dart';
class HomePage extends StatelessWidget {
final logic = Get.find<HomeLogic>();
@@ -22,9 +23,11 @@ class HomePage extends StatelessWidget {
onDoubleTap: () {
logic.scrollToUnreadMessage();
},
child: _setupIcon(ImageRes.homeTab1Sel.toImage, logic.unreadMsgCount.value),
child: _setupIcon(
ImageRes.homeTab1Sel.toImage, logic.unreadMsgCount.value),
),
inactiveIcon: _setupIcon(ImageRes.homeTab1Nor.toImage, logic.unreadMsgCount.value),
inactiveIcon: _setupIcon(
ImageRes.homeTab1Nor.toImage, logic.unreadMsgCount.value),
title: StrRes.home,
textStyle: Styles.ts_0089FF_10sp_semibold,
),
@@ -32,8 +35,10 @@ class HomePage extends StatelessWidget {
PersistentTabConfig(
screen: ContactsPage(),
item: ItemConfig(
icon: _setupIcon(ImageRes.homeTab2Sel.toImage, logic.unhandledCount.value),
inactiveIcon: _setupIcon(ImageRes.homeTab2Nor.toImage, logic.unhandledCount.value),
icon: _setupIcon(
ImageRes.homeTab2Sel.toImage, logic.unhandledCount.value),
inactiveIcon: _setupIcon(
ImageRes.homeTab2Nor.toImage, logic.unhandledCount.value),
title: StrRes.contacts,
textStyle: Styles.ts_0089FF_10sp_semibold,
),
@@ -81,19 +86,30 @@ class HomePage extends StatelessWidget {
return Scaffold(
backgroundColor: Styles.c_FFFFFF,
body: Obx(
() => PersistentTabView(
tabs: _tabs(),
navBarBuilder: (navBarConfig) => Style1BottomNavBar(
navBarConfig: navBarConfig,
navBarDecoration: const NavBarDecoration(
color: Colors.white,
boxShadow: [
BoxShadow(color: Colors.black12, blurRadius: 0.5, spreadRadius: 0.5),
],
() => Column(
children: [
if (logic.isOffline.value) const CompanyOfflineBanner(),
Expanded(
child: PersistentTabView(
tabs: _tabs(),
navBarBuilder: (navBarConfig) => Style1BottomNavBar(
navBarConfig: navBarConfig,
navBarDecoration: const NavBarDecoration(
color: Colors.white,
boxShadow: [
BoxShadow(
color: Colors.black12,
blurRadius: 0.5,
spreadRadius: 0.5),
],
),
),
navBarOverlap: const NavBarOverlap.none(),
screenTransitionAnimation:
const ScreenTransitionAnimation.none(),
),
),
),
navBarOverlap: const NavBarOverlap.none(),
screenTransitionAnimation: const ScreenTransitionAnimation.none(),
],
),
),
);