AppModal function
void
AppModal(
- dynamic context,
- App app,
- dynamic callback,
- Map permissions,
)
Implementation
void AppModal(context, App app, callback, Map permissions) {
bool isNew = app.isEmpty();
bool isDeleting = false;
bool isEnableForm = isNew;
void confirm(String action, App app) {
try {
Navigator.of(context).pop();
callback(action, app);
} catch(error) {
showSnackBar(context, SnackType.error, error.toString());
}
}
void callbackUpdate(action, app, setStateModal, ){
action == 'cancel' ? setStateModal(() => isEnableForm = isNew)
: action == 'enableForm' ? setStateModal(()=>isEnableForm = true)
: action == 'confirmDelete' ? setStateModal(()=>isDeleting = true)
: confirm(action, app);
}
Widget child = StatefulBuilder(
builder: (BuildContext context, StateSetter setStateModal ) {
return isDeleting
? ContentConfirmDelete(
title: 'Eliminar ${app.name ?? ''}',
message: 'Tenga en cuenta que al eliminar a esta appe también serán eliminados los datos asociados.',
onCancel: ()=>setStateModal(() { isDeleting = false; }),
onConfirm: ()=>confirm('delete', app)
)
: isEnableForm
? AppCreate(app, (action, app)=>callbackUpdate(action, app, setStateModal), permissions)
: AppShow(app, (action, app)=>callbackUpdate(action, app, setStateModal), permissions);
}
);
customAutoDialog(context, child);
}