getOptionWidget function

Widget? getOptionWidget(
  1. dynamic context,
  2. OptionsItem? option,
  3. Map? person
)

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;
  }
}