build method

IconData build()

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()}");
}