import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; class ListItem extends ConsumerWidget { const ListItem({ required this.title, this.subtitle, this.icon, this.color, this.deleteButton = false, this.itemId, super.key, }); final Widget title; final Widget? subtitle; final Widget? icon; final Color? color; final bool deleteButton; final int? itemId; @override Widget build(final BuildContext context, final WidgetRef ref) => Container( margin: const EdgeInsets.symmetric( vertical: 4, horizontal: 16, ), decoration: BoxDecoration( color: color, ), child: ListTile( leading: icon, title: title, subtitle: subtitle, trailing: deleteButton ? IconButton( icon: const Icon(Icons.delete), onPressed: () => ref.read(listProvider.notifier).remove(itemId), ) : null, ), ); }