lastorado_server_test/lib/widgets/list_item.dart

45 lines
1.1 KiB
Dart

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,
),
);
}