import 'package:flutter/material.dart';

import 'package:cached_network_image/cached_network_image.dart';
import 'package:go_router/go_router.dart';
import 'package:hive_flutter/hive_flutter.dart';

import '/database/box_type.dart';
import '/models/contact_model.dart';
import '/models/init_get_it.dart';
import '/request/server.dart';

class GroupChatTile extends StatelessWidget {
  const GroupChatTile({
    super.key,
    required this.groupChatId,
  });

  final String groupChatId;

  @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),
        child: Row(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            const SizedBox(
              width: 10.0,
            ),
            CircleAvatar(
              backgroundImage: CachedNetworkImageProvider(
                '$groupChatAvatarsUrl/${getIt.get<ContactAccountProfile>().groupChats[groupChatId]!.avatar}',
              ),
            ),
            const SizedBox(
              width: 10.0,
            ),
            Text(
              getIt
                      .get<Contact>()
                      .groupChats[groupChatId]!
                      .groupChatRemark
                      .isEmpty
                  ? getIt<ContactAccountProfile>().groupChats[groupChatId]!.name
                  : getIt
                      .get<Contact>()
                      .groupChats[groupChatId]!
                      .groupChatRemark,
              overflow: TextOverflow.ellipsis,
              style: const TextStyle(fontSize: 17),
            ),
            const SizedBox(
              width: 10.0,
            ),
          ],
        ),
      ),
    );
  }
}