showTaskDialog
Thu Oct 23 2025 04:06:59 GMT+0000 (Coordinated Universal Time)
Saved by @mehran
import 'package:flutter/material.dart';
import 'package:task_manager_app/screens/task.dart';
Future<Task02?> showTaskDialog({
required BuildContext context,
Task02? existingTask,
}) async {
final TextEditingController titleController =
TextEditingController(text: existingTask?.title ?? '');
final TextEditingController descController =
TextEditingController(text: existingTask?.description ?? '');
return showDialog<Task02>(
context: context,
builder: (context) {
return AlertDialog(
title: Text(existingTask == null ? "افزودن وظیفه جدید" : "ویرایش وظیفه"),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
TextField(
controller: titleController,
decoration: const InputDecoration(
border: OutlineInputBorder(),
labelText: 'عنوان',
),
),
const SizedBox(height: 12),
TextField(
controller: descController,
maxLines: 3,
decoration: const InputDecoration(
border: OutlineInputBorder(),
labelText: 'جزئیات',
),
),
],
),
actions: [
TextButton(
onPressed: () => Navigator.pop(context),
child: const Text("انصراف"),
),
ElevatedButton(
onPressed: () {
if (titleController.text.trim().isEmpty) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text("عنوان نمیتواند خالی باشد 🚫")),
);
return;
}
final task = Task02(
title: titleController.text.trim(),
description: descController.text.trim(),
isDone: existingTask?.isDone ?? false,
);
Navigator.pop(context, task);
},
child: const Text("ذخیره"),
),
],
);
},
);
}



Comments