getOptionWidget function
Implementation
Widget? getOptionWidget(context, OptionsItem? option, Map? person){
final launcherUrl = LauncherUrl();
final icons = CustomIcons();
final colors = CustomColors();
if(person == null || person.isEmpty) return null;
switch (option) {
case OptionsItem.email:
String data = person['email'] ?? '';
if(data.trim().isEmpty) return null;
return IconButton(
onPressed: ()=>launcherUrl.emailSend(data),
icon: Icon(icons.email, color: colors.email),
);
case OptionsItem.whatsapp:
String data = person['phone'] ?? '';
if(data.trim().isEmpty) return null;
return IconButton(
onPressed: ()=>launcherUrl.whatsappChat(data),
icon: Icon(icons.whatsapp, color: colors.whatsapp),
);
case OptionsItem.call:
String data = person['phone'] ?? '';
if(data.trim().isEmpty) return null;
return IconButton(
onPressed: ()=>launcherUrl.phoneCall(data),
icon: Icon(icons.call),
);
case OptionsItem.sms:
String data = person['phone'] ?? '';
if(data.trim().isEmpty) return null;
return IconButton(
onPressed: ()=>launcherUrl.phoneSms(data, ''),
icon: Icon(icons.message, color: colors.messages),
);
case OptionsItem.direction:
String data = person['address'] ?? '';
if(data.trim().isEmpty) return null;
String addressFormat = (data).replaceAll(' ', '+').replaceAll('#', '');
return IconButton(
onPressed: ()=>launcherUrl.mapsSearchAddress(addressFormat),
icon: Icon(icons.mapNavigate, color: colors.mapNavigate),
);
case OptionsItem.selected:
return IconButton(
onPressed: ()=>{},
icon: Icon(icons.confirm, color: Theme.of(context).colorScheme.primary ),
);
default: return null;
}
}