YurSearch<T> function
Future<T?>
YurSearch<T>({
- required BuildContext context,
- required dynamic onConfirm(
- TextEditingController textController
- dynamic onCancel()?,
- bool isDialogShow = false,
- bool isDismissable = true,
- bool isSuccess = true,
- required String labelForm,
- required TextEditingController textController,
Implementation
Future<T?> YurSearch<T>({
required BuildContext context,
required Function(TextEditingController textController) onConfirm,
Function()? onCancel,
bool isDialogShow = false,
bool isDismissable = true,
bool isSuccess = true,
required String labelForm,
required TextEditingController textController,
}) async {
textController.clear();
if (isDialogShow) return null;
isDialogShow = true;
return showDialog(
context: context,
barrierColor: Colors.black54,
useSafeArea: true,
useRootNavigator: true,
builder: (BuildContext context) {
return BackdropFilter(
filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5),
child: PopScope(
canPop: isDialogShow && isDismissable,
onPopInvoked: (didPop) {
if (didPop) {
onConfirm(textController);
}
},
child: Dialog(
elevation: 3,
insetPadding: e16,
shape: const RoundedRectangleBorder(borderRadius: br16),
backgroundColor: Colors.white.withOpacity(0.99),
clipBehavior: Clip.antiAliasWithSaveLayer,
child: Padding(
padding: e12,
child: Row(
children: [
Expanded(
flex: 3,
child: YurForm(
label: labelForm,
focusNode: FocusNode(),
controller: textController,
onComplete: () {
onConfirm(textController);
Get.back();
YurLog(
name: "MediSearch",
"MediDialogForm",
);
},
),
),
gapW8,
Expanded(
flex: 1,
child: YurButton(
text: "Cari",
buttonStyle: BStyle.primaryRed,
fontSize: 12,
onPressed: () {
onConfirm(textController);
Get.back();
YurLog(
name: "MediSearch",
"MediDialogForm",
);
},
),
),
],
),
),
),
),
);
},
);
}