together_mobile/lib/screens/contact/components/group_chat_tile.dart

70 lines
2.0 KiB
Dart
Raw Permalink Normal View History

2023-06-21 17:44:28 +08:00
import 'package:flutter/material.dart';
2024-04-09 17:23:28 +08:00
import 'package:cached_network_image/cached_network_image.dart';
2023-06-21 17:44:28 +08:00
import 'package:go_router/go_router.dart';
import 'package:hive_flutter/hive_flutter.dart';
2024-04-09 17:23:28 +08:00
import '/database/box_type.dart';
import '/models/contact_model.dart';
import '/models/init_get_it.dart';
import '/request/server.dart';
2023-06-21 17:44:28 +08:00
class GroupChatTile extends StatelessWidget {
const GroupChatTile({
super.key,
required this.groupChatId,
});
final String groupChatId;
2023-06-21 17:44:28 +08:00
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () async {
await Hive.openBox<MessageT>('message_$groupChatId');
// ignore: use_build_context_synchronously
context.goNamed(
'Message',
queryParameters: {'groupChatId': groupChatId, 'type': '1'},
);
},
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0),
2023-06-21 17:44:28 +08:00
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const SizedBox(
2023-06-21 17:44:28 +08:00
width: 10.0,
),
CircleAvatar(
backgroundImage: CachedNetworkImageProvider(
'$groupChatAvatarsUrl/${getIt.get<ContactAccountProfile>().groupChats[groupChatId]!.avatar}',
),
2023-06-21 17:44:28 +08:00
),
const SizedBox(
2023-06-21 17:44:28 +08:00
width: 10.0,
),
Text(
getIt
.get<Contact>()
.groupChats[groupChatId]!
.groupChatRemark
.isEmpty
? getIt<ContactAccountProfile>().groupChats[groupChatId]!.name
: getIt
.get<Contact>()
.groupChats[groupChatId]!
.groupChatRemark,
2023-06-21 17:44:28 +08:00
overflow: TextOverflow.ellipsis,
style: const TextStyle(fontSize: 17),
2023-06-21 17:44:28 +08:00
),
const SizedBox(
2023-06-21 17:44:28 +08:00
width: 10.0,
),
],
),
),
);
}
}