refactor: move dialog to widgets

This commit is contained in:
DenserMeerkat
2024-07-06 15:36:39 +05:30
parent 58b5300f06
commit a5845d606f
5 changed files with 3 additions and 3 deletions

View File

@ -0,0 +1,41 @@
import 'package:flutter/material.dart';
showRenameDialog(
BuildContext context,
String dialogTitle,
String? name,
Function(String) onRename,
) {
showDialog(
context: context,
builder: (context) {
final controller = TextEditingController(text: name ?? "");
controller.selection =
TextSelection(baseOffset: 0, extentOffset: controller.text.length);
return AlertDialog(
title: Text(dialogTitle),
content: TextField(
autofocus: true,
controller: controller,
decoration: const InputDecoration(hintText: "Enter new name"),
),
actions: <Widget>[
OutlinedButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text('CANCEL')),
FilledButton(
onPressed: () {
final val = controller.text.trim();
onRename(val);
Navigator.pop(context);
Future.delayed(const Duration(milliseconds: 100), () {
controller.dispose();
});
},
child: const Text('OK')),
],
);
});
}