45 lines
1.1 KiB
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!();
|
|
}
|
|
}
|
|
}
|