I have a client config that is on a server in JSON format.
example JSON would be like { \"icon\" : \"facebook\" }
I have the widget below.
There are two ways you can eliminate some of your code duplication.
Switch statement
IconData getIconForName(String iconName) {
switch(iconName) {
case 'facebook': {
return FontAwesomeIcons.facebook;
}
break;
case 'twitter': {
return FontAwesomeIcons.twitter;
}
break;
default: {
return FontAwesomeIcons.home;
}
}
}
Build Function
@override
Widget build(BuildContext context) {
return Icon(getIconForName(icon), color: HexColor(color));
}
or 2. Create a Map
Map iconMapping = {
'facebook' : FontAwesomeIcons.facebook,
'twitter' : FontAwesomeIcons.twitter,
'home' : FontAwesomeIcons.home
};
Build Function
@override
Widget build(BuildContext context) {
return Icon(iconMapping [icon], color: HexColor(color));
}