friend_home_binding.dart 1.3 KB
import 'package:doublefeel_flutter/app/modules/home/controllers/today_controller.dart';
import 'package:doublefeel_flutter/core/network/api/health_api.dart';
import 'package:doublefeel_flutter/core/network/api/user_api.dart';
import 'package:doublefeel_flutter/core/services/health_kit_upload_service.dart';
import 'package:doublefeel_flutter/core/services/user_state_service.dart';
import 'package:doublefeel_flutter/app/apple_health_upload/apple_health_upload_tool.dart';
import 'package:get/get.dart';

/// 跳转到好友主页时需要传入的参数。
class FriendHomeArguments {
  const FriendHomeArguments({
    required this.userId,
    this.name,
    this.avatarUrl,
  });

  final int userId;
  final String? name;
  final String? avatarUrl;
}

class FriendHomeBinding extends Bindings {
  @override
  void dependencies() {
    final args = Get.arguments as FriendHomeArguments;
    Get.lazyPut<TodayController>(
      () => TodayController(
        Get.find<UserApi>(),
        Get.find<HealthApi>(),
        Get.find<UserStateService>(),
        Get.find<HealthKitUploadService>(),
        Get.find<AppleHealthUploadTool>(),
        friendUserId: args.userId, // 好友 userId,驱动 isFriend = true
      ),
      tag: 'friend_${args.userId}', // 动态 tag,支持多个好友同时在路由栈中
    );
  }
}