import 'package:flutter/material.dart';

import 'package:matrix/matrix.dart';

import '../config/app_config.dart';
import 'matrix.dart';

class UnreadBadgeBackButton extends StatelessWidget {
  final String roomId;

  const UnreadBadgeBackButton({
    Key? key,
    required this.roomId,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        const Center(child: BackButton()),
        StreamBuilder(
            stream: Matrix.of(context).client.onSync.stream,
            builder: (context, _) {
              final unreadCount = Matrix.of(context)
                  .client
                  .rooms
                  .where((r) =>
                      r.id != roomId &&
                      (r.isUnread || r.membership == Membership.invite))
                  .length;
              return unreadCount > 0
                  ? Align(
                      alignment: Alignment.bottomRight,
                      child: Container(
                        padding: const EdgeInsets.all(4),
                        margin: const EdgeInsets.only(bottom: 4, right: 8),
                        decoration: BoxDecoration(
                          color: Theme.of(context).primaryColor,
                          borderRadius:
                              BorderRadius.circular(AppConfig.borderRadius),
                        ),
                        child: Text(
                          '$unreadCount',
                          style: const TextStyle(
                            fontSize: 12,
                            color: Colors.white,
                          ),
                        ),
                      ),
                    )
                  : Container();
            }),
      ],
    );
  }
}