import 'package:flutter/material.dart';

class CollectionGridItem extends StatelessWidget {
  const CollectionGridItem({
    super.key,
    required this.cover,
    required this.title,
    this.subtitle,
    this.subtitle2,
    this.icon,
  });

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Expanded(
            child: Stack(
              children: [
                cover,
                if (icon != null)
                  Padding(
                    padding: const EdgeInsets.all(8),
                    child: Align(
                      alignment: AlignmentDirectional.topEnd,
                      child: IconTheme(
                        data: const IconThemeData(
                          size: 20,
                          color: Colors.white,
                        ),
                        child: icon!,
                      ),
                    ),
                  ),
              ],
            ),
          ),
          const SizedBox(height: 8),
          Text(
            title,
            style: Theme.of(context).textTheme.bodyMedium,
            textAlign: TextAlign.start,
            maxLines: 1,
            overflow: TextOverflow.ellipsis,
          ),
          const SizedBox(height: 2),
          Row(
            children: [
              Expanded(
                child: Text(
                  subtitle ?? "",
                  style: Theme.of(context).textTheme.bodySmall,
                  textAlign: TextAlign.start,
                  maxLines: 1,
                  overflow: TextOverflow.ellipsis,
                ),
              ),
              if (subtitle2?.isNotEmpty == true)
                Text(
                  subtitle2!,
                  style: Theme.of(context).textTheme.bodySmall,
                  textAlign: TextAlign.end,
                  maxLines: 1,
                ),
            ],
          ),
        ],
      ),
    );
  }

  final Widget cover;
  final String title;
  final String? subtitle;

  /// Appears after [subtitle], aligned to the end side of parent
  final String? subtitle2;
  final Widget? icon;
}