feat: second confirmation on deletion

This commit is contained in:
Simon Ding
2024-08-07 12:48:15 +08:00
parent 1aa3dca2c6
commit 1390277b43

View File

@@ -112,17 +112,37 @@ class _DetailCardState extends ConsumerState<DetailCard> {
return Tooltip( return Tooltip(
message: widget.details.mediaType == "tv" ? "删除剧集" : "删除电影", message: widget.details.mediaType == "tv" ? "删除剧集" : "删除电影",
child: IconButton( child: IconButton(
onPressed: () { onPressed: () => showConfirmDialog(), icon: const Icon(Icons.delete)),
var f = ref );
.read( }
mediaDetailsProvider(widget.details.id.toString()).notifier)
.delete() Future<void> showConfirmDialog() {
.then((v) => context.go(widget.details.mediaType == "tv" return showDialog<void>(
? WelcomePage.routeTv context: context,
: WelcomePage.routeMoivie)); barrierDismissible: true,
showLoadingWithFuture(f); builder: (BuildContext context) {
}, return AlertDialog(
icon: const Icon(Icons.delete)), title: const Text("确认删除:"),
content: Text("${widget.details.name}"),
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: const Text("取消")),
TextButton(
onPressed: () {
var f = ref
.read(mediaDetailsProvider(widget.details.id.toString())
.notifier)
.delete()
.then((v) => context.go(widget.details.mediaType == "tv"
? WelcomePage.routeTv
: WelcomePage.routeMoivie));
Navigator.of(context).pop();
},
child: const Text("确认"))
],
);
},
); );
} }
@@ -183,13 +203,13 @@ class _DetailCardState extends ConsumerState<DetailCard> {
onPressed: () { onPressed: () {
if (_formKey.currentState!.saveAndValidate()) { if (_formKey.currentState!.saveAndValidate()) {
final values = _formKey.currentState!.value; final values = _formKey.currentState!.value;
var f = ref var f = ref
.read(mediaDetailsProvider(widget.details.id.toString()) .read(mediaDetailsProvider(widget.details.id.toString())
.notifier) .notifier)
.edit(values["resolution"], values["target_dir"], values["limiter"]) .edit(values["resolution"], values["target_dir"],
.then((v) => Navigator.of(context).pop()); values["limiter"])
showLoadingWithFuture(f); .then((v) => Navigator.of(context).pop());
showLoadingWithFuture(f);
} }
}, },
child: const Text("确认")) child: const Text("确认"))