import 'package:filcnaplo/utils/color.dart';
import 'package:filcnaplo_kreta_api/models/note.dart';
import 'package:filcnaplo_mobile_ui/common/profile_image/profile_image.dart';
import 'package:flutter/material.dart';

class NoteTile extends StatelessWidget {
  const NoteTile(this.note, {Key? key, this.onTap, this.padding})
      : super(key: key);

  final Note note;
  final void Function()? onTap;
  final EdgeInsetsGeometry? padding;

  @override
  Widget build(BuildContext context) {
    return Material(
      type: MaterialType.transparency,
      child: Padding(
        padding: padding ?? const EdgeInsets.symmetric(horizontal: 8.0),
        child: ListTile(
          visualDensity: VisualDensity.compact,
          contentPadding: const EdgeInsets.only(left: 8.0, right: 12.0),
          onTap: onTap,
          shape:
              RoundedRectangleBorder(borderRadius: BorderRadius.circular(14.0)),
          leading: ProfileImage(
            name: (note.teacher.isRenamed
                    ? note.teacher.renamedTo
                    : note.teacher.name) ??
                '',
            radius: 22.0,
            backgroundColor: ColorUtils.stringToColor(
              (note.teacher.isRenamed
                      ? note.teacher.renamedTo
                      : note.teacher.name) ??
                  '',
            ),
          ),
          title: Text(
            note.title,
            maxLines: 2,
            overflow: TextOverflow.ellipsis,
            style: const TextStyle(fontWeight: FontWeight.w600),
          ),
          subtitle: Text(
            note.content.replaceAll('\n', ' '),
            maxLines: 1,
            overflow: TextOverflow.ellipsis,
            style: const TextStyle(fontWeight: FontWeight.w500),
          ),
          minLeadingWidth: 0,
        ),
      ),
    );
  }
}