rename tag

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages
2023-08-10 10:08:33 +08:00
parent 46b3cf1871
commit db45552a05
38 changed files with 204 additions and 63 deletions

View File

@@ -1448,3 +1448,74 @@ void editAbTagDialog(
);
});
}
void renameDialog(
{required String oldName,
FormFieldValidator<String>? validator,
required ValueChanged<String> onSubmit,
Function? onCancel}) async {
RxBool isInProgress = false.obs;
var controller = TextEditingController(text: oldName);
final formKey = GlobalKey<FormState>();
gFFI.dialogManager.show((setState, close, context) {
submit() async {
String text = controller.text.trim();
if (validator != null && formKey.currentState?.validate() == false) {
return;
}
isInProgress.value = true;
onSubmit(text);
close();
isInProgress.value = false;
}
cancel() {
onCancel?.call();
close();
}
return CustomAlertDialog(
title: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.edit_rounded, color: MyTheme.accent),
Text(translate('Rename')).paddingOnly(left: 10),
],
),
content: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
child: Form(
key: formKey,
child: TextFormField(
controller: controller,
autofocus: true,
decoration: InputDecoration(labelText: translate('Name')),
validator: validator,
),
),
),
Obx(() => Offstage(
offstage: isInProgress.isFalse,
child: const LinearProgressIndicator())),
],
),
actions: [
dialogButton(
"Cancel",
icon: Icon(Icons.close_rounded),
onPressed: cancel,
isOutline: true,
),
dialogButton(
"OK",
icon: Icon(Icons.done_rounded),
onPressed: submit,
),
],
onSubmit: submit,
onCancel: cancel,
);
});
}