Files
tasks/lib/widgets/task_dismissible.dart

45 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
class TaskDismissible extends StatelessWidget {
const TaskDismissible({
required super.key,
this.onDismissedRight,
required this.child,
});
final VoidCallback? onDismissedRight;
final Widget child;
@override
Widget build(BuildContext context) {
return Dismissible(
key: key!,
direction: DismissDirection.startToEnd,
background: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: Theme.of(context).colorScheme.error,
),
child: Align(
alignment: AlignmentGeometry.centerLeft,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 12),
child: Icon(
Icons.delete,
color: Theme.of(context).colorScheme.onError,
),
),
),
),
onDismissed: onDismissed,
child: child,
);
}
void onDismissed(DismissDirection direction) {
if (direction == DismissDirection.startToEnd && onDismissedRight != null) {
onDismissedRight!();
}
}
}