build method
Implementation
IconData build() {
if ([icon, cupertinoIcon, macosIcon, fluentIcon, yaruIcon].every((element) => element == null)) {
throw Exception("At least one icon should be specified for NativeIconData. It is recommended to fill out icon, cupertinoIcon, fluentIcon, and yaruIcon.");
}
if ([icon, cupertinoIcon, macosIcon, fluentIcon, yaruIcon].any((element) => element == null) && disableWarnings == false) {
warn("It is recommended to fill out icon, cupertinoIcon, fluentIcon, and yaruIcon into NativeIconData.");
}
if (Design.isMaterial()) {
return icon ?? fallback;
}
if (Design.isCupertino()) {
return cupertinoIcon ?? fallback;
}
if (Design.isMacOS()) {
return macosIcon ?? (icon ?? fallback);
}
if (Design.isFluent()) {
return fluentIcon ?? fallback;
}
if (Design.isYaru()) {
return yaruIcon ?? fallback;
}
throw Exception("Unrecognized platform: ${getPlatform()}");
}