PersonModalSelect function
void
PersonModalSelect(
- dynamic context, {
- required String entity,
- required Function callback,
- required Map personsMap,
- required DefaultProvider defaultProvider,
- required ApiProvider apiProvider,
- bool? deletable,
Implementation
void PersonModalSelect(
context, {
required String entity,
required Function callback,
required Map personsMap,
required DefaultProvider defaultProvider,
required ApiProvider apiProvider,
bool? deletable
}) {
final language = Language();
final appIcons = AppIcons();
final appcolors = AppColors();
final colorScheme = Theme.of(context).colorScheme;
bool isNew = false;
void onCallback(Person? person){
callback(person);
Navigator.of(context).pop();
}
Widget child = StatefulBuilder(
builder: (BuildContext context, StateSetter setStateModal ) {
return Scaffold(
appBar: isNew ? null : CustomAppBar(
title: language.translateUpperCase(entity),
subtitle: 'Seleccione o agregue uno',
rightButtons: [
if(deletable == true)
AppBarButtonText(
text: 'BORRAR',
textColor: appcolors.error,
onPressed: ()=>onCallback(null),
),
AppBarButtonText(
text: 'NUEVO',
onPressed: ()=>setStateModal(()=> isNew = true),
textColor: colorScheme.primary,
),
],
),
body: isNew
? PersonCreate(
entity: entity,
currentPerson: Person(),
permissions: {},
defaultProvider: defaultProvider,
apiProvider: apiProvider,
callback: (action, Person person)=>onCallback(person),
)
: PersonsList(
personsMap: personsMap,
icon: appIcons.getIconByName('${entity}s'),
callbackItem: (Person person)=>onCallback(person),
)
);
}
);
customAutoDialog(context, child);
}