roleFormEntry method
Implementation
Widget roleFormEntry({
String title = 'Role',
String subTitle = 'the role',
Function(UserRoles?)? onChanged,
UserRoles? defaultValue,
UserRoles? preDefinedRole,
}) {
return formEntry(
title: 'Select Role',
subTitle: 'the role of the employee',
inputWidget: DropdownButtonFormField<UserRoles>(
value: preDefinedRole ?? defaultValue,
style: Theme.of(context).textTheme.bodyLarge,
dropdownColor: Theme.of(context).primaryColor,
hint: Text(
'Select Role',
style: Theme.of(context).textTheme.labelLarge,
),
decoration: elegantInputDecoration(
hintText: '',
prefix: const Icon(Icons.perm_contact_calendar_sharp),
),
items: ROLES.map((UserRoles role) {
return DropdownMenuItem<UserRoles>(
enabled: role == UserRoles.Admin || role == UserRoles.Owner
? false
: (preDefinedRole != null ? role == preDefinedRole : true),
value: role,
child: Text(role.name),
);
}).toList(),
onChanged: isEdit
? (value) {
onChanged!(value);
widget.formKey.currentState!.save();
if (widget.onModified != null) {
widget.onModified!();
}
}
: null,
validator: (value) => (value == null) ? 'Role is required' : null,
),
);
}