deserializeIcon function
Implementation
IconData? deserializeIcon(
Map<String, dynamic> iconMap, {
IconPack? iconPack,
}) {
final pack = iconMap['pack'];
final iconKey = iconMap['key'];
if (pack == "material" && iconPack == null) {
throw AssertionError(
"The argument iconPack is required for material icons in deserializeIcon.");
}
try {
switch (pack) {
case "material":
switch (iconPack) {
case IconPack.material:
return DefaultMaterial.defaultIcons[iconKey];
case IconPack.allMaterial:
return AllMaterial.allIcons[iconKey];
case IconPack.sharpMaterial:
return SharpMaterial.sharpIcons[iconKey];
case IconPack.roundedMaterial:
return RoundedMaterial.roundedIcons[iconKey];
case IconPack.outlinedMaterial:
return OutlinedMaterial.outlinedIcons[iconKey];
default:
return DefaultMaterial.defaultIcons[iconKey];
}
case "cupertino":
return Cupertino.cupertinoIcons[iconKey];
case "fontAwesomeIcons":
return FontAwesome.fontAwesomeIcons[iconKey];
case "lineAwesomeIcons":
return LineAwesome.lineAwesomeIcons[iconKey];
case "custom":
final iconData = iconMap['iconData'];
return IconData(
iconData['codePoint'],
fontFamily: iconData['fontFamily'],
fontPackage: iconData['fontPackage'],
matchTextDirection: iconData['matchTextDirection'],
);
default:
return null;
}
} catch (e) {
return null;
}
}