feat: 添加好友功能并集成 LiteLLM 代理服务
- 新增好友搜索、添加、好友列表功能 - 集成 LiteLLM 代理服务及多模型定价配置 - 更新 iOS CocoaPods 配置 - 更新 .gitignore 和环境变量配置
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:go_router/go_router.dart';
|
||||
import '../../../../core/di/injection.dart';
|
||||
import '../../../../core/theme/design_tokens.dart';
|
||||
import '../../../../shared/widgets/page_header.dart' as widgets;
|
||||
import '../../../friends/data/friends_api.dart';
|
||||
import '../../../users/data/models/user_response.dart';
|
||||
import '../../../users/data/users_api.dart';
|
||||
|
||||
@@ -16,20 +17,35 @@ class SettingsScreen extends StatefulWidget {
|
||||
class _SettingsScreenState extends State<SettingsScreen> {
|
||||
UserResponse? _user;
|
||||
bool _isLoading = true;
|
||||
int _friendsCount = 0;
|
||||
String? _firstFriendName;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_loadUser();
|
||||
_loadData();
|
||||
}
|
||||
|
||||
Future<void> _loadUser() async {
|
||||
Future<void> _loadData() async {
|
||||
try {
|
||||
final usersApi = sl<UsersApi>();
|
||||
final user = await usersApi.getMe();
|
||||
final friendsApi = sl<FriendsApi>();
|
||||
|
||||
final results = await Future.wait([
|
||||
usersApi.getMe(),
|
||||
friendsApi.getFriends(),
|
||||
]);
|
||||
|
||||
final user = results[0] as UserResponse;
|
||||
final friends = results[1] as List<FriendResponse>;
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_user = user;
|
||||
_friendsCount = friends.length;
|
||||
_firstFriendName = friends.isNotEmpty
|
||||
? friends.first.friend.username
|
||||
: null;
|
||||
_isLoading = false;
|
||||
});
|
||||
}
|
||||
@@ -181,6 +197,16 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
);
|
||||
}
|
||||
|
||||
String _buildFriendsSubtitle() {
|
||||
if (_friendsCount == 0) {
|
||||
return '暂无联系人';
|
||||
}
|
||||
if (_friendsCount == 1) {
|
||||
return '已添加 1 位:$_firstFriendName';
|
||||
}
|
||||
return '已添加 $_friendsCount 位联系人';
|
||||
}
|
||||
|
||||
Widget _buildQuickActions(BuildContext context) {
|
||||
return Container(
|
||||
height: 120,
|
||||
@@ -199,7 +225,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
iconBg: AppColors.surfaceTertiary,
|
||||
iconBorder: const Color(0xFFE6ECF7),
|
||||
title: '联系人',
|
||||
subtitle: '已添加 1 位:Toki',
|
||||
subtitle: _buildFriendsSubtitle(),
|
||||
onTap: () => context.push('/contacts'),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user