serializeIcon function

Map<String, dynamic>? serializeIcon(
  1. IconData icon, {
  2. IconPack? iconPack,
})

Implementation

Map<String, dynamic>? serializeIcon(IconData icon, {IconPack? iconPack}) {
  if (iconPack == null) {
    if (icon.fontFamily == "MaterialIcons")
      iconPack = IconPack.material;
    else if (icon.fontFamily == "CupertinoIcons")
      iconPack = IconPack.cupertino;
    else if (icon.fontPackage == "font_awesome_flutter")
      iconPack = IconPack.fontAwesomeIcons;
    else if (icon.fontPackage == "line_awesome_flutter")
      iconPack = IconPack.lineAwesomeIcons;
    else
      iconPack = IconPack.custom;
  }
  switch (iconPack) {
    case IconPack.material:
      return {
        'pack': "material",
        'key': _getIconKey(DefaultMaterial.defaultIcons, icon),
      };
    case IconPack.allMaterial:
      return {
        'pack': "material",
        'key': _getIconKey(AllMaterial.allIcons, icon),
      };
    case IconPack.sharpMaterial:
      return {
        'pack': "material",
        'key': _getIconKey(SharpMaterial.sharpIcons, icon),
      };
    case IconPack.roundedMaterial:
      return {
        'pack': "material",
        'key': _getIconKey(RoundedMaterial.roundedIcons, icon),
      };
    case IconPack.outlinedMaterial:
      return {
        'pack': "material",
        'key': _getIconKey(OutlinedMaterial.outlinedIcons, icon),
      };
    case IconPack.cupertino:
      return {
        'pack': "cupertino",
        'key': _getIconKey(Cupertino.cupertinoIcons, icon),
      };
    case IconPack.fontAwesomeIcons:
      return {
        'pack': "fontAwesomeIcons",
        'key': _getIconKey(FontAwesome.fontAwesomeIcons, icon),
      };
    case IconPack.lineAwesomeIcons:
      return {
        'pack': "lineAwesomeIcons",
        'key': _getIconKey(LineAwesome.lineAwesomeIcons, icon),
      };
    case IconPack.custom:
      return {
        'pack': "custom",
        'iconData': {
          'codePoint': icon.codePoint,
          'fontFamily': icon.fontFamily,
          'fontPackage': icon.fontPackage,
          'matchTextDirection': icon.matchTextDirection,
        }
      };
    default:
      return null;
  }
}