tryParse static method

ColorTheme? tryParse(
  1. Object? payload
)

Implementation

static ColorTheme? tryParse(Object? payload) {
  if (payload == null) return null;
  if (payload is String) payload = jsonDecode(payload);
  if (payload is! Map) return null;

  final rawThemeMode =
      payload['themeMode'] ?? payload['theme_mode'] ?? payload['mode'];
  final themeMode = rawThemeMode is Object ? rawThemeMode.themeMode : null;

  final green = ThemeColor.tryParse(payload['green']);
  final grey = ThemeColor.tryParse(payload['grey']);
  final blue = ThemeColor.tryParse(payload['blue']);
  final red = ThemeColor.tryParse(payload['red']);
  final orange = ThemeColor.tryParse(payload['orange']);
  final yellow = ThemeColor.tryParse(payload['yellow']);
  final purple = ThemeColor.tryParse(payload['purple']);
  final pink = ThemeColor.tryParse(payload['pink']);

  final base = ColorThemeConfig.tryParse(payload[_kBase]);
  final appbar = ColorThemeConfig.tryParse(payload[_kAppbar]);
  final background = ColorThemeConfig.tryParse(payload[_kBackground]);
  final bottom = ColorThemeConfig.tryParse(payload[_kBottom]);
  final card = ColorThemeConfig.tryParse(payload[_kCard]);
  final dialog = ColorThemeConfig.tryParse(payload[_kDialog]);
  final divider = ColorThemeConfig.tryParse(payload[_kDivider]);
  final highlight = ColorThemeConfig.tryParse(payload[_kHighlight]);
  final hint = ColorThemeConfig.tryParse(payload[_kHint]);
  final hover = ColorThemeConfig.tryParse(payload[_kHover]);
  final icon = ColorThemeConfig.tryParse(payload[_kIcon]);
  final label = ColorThemeConfig.tryParse(payload[_kLabel]);
  final placeholder = ColorThemeConfig.tryParse(payload[_kPlaceholder]);
  final scaffold = ColorThemeConfig.tryParse(payload[_kScaffold]);
  final shadow = ColorThemeConfig.tryParse(payload[_kShadow]);
  final surface = ColorThemeConfig.tryParse(payload[_kSurface]);
  final text = ColorThemeConfig.tryParse(payload[_kText]);
  final rawColors = payload['colors'];
  final colors = rawColors is List
      ? rawColors
          .map(ColorThemeData.tryParse)
          .whereType<ColorThemeData>()
          .toList()
      : null;

  final rawGradients = payload['gradients'];
  final gradients = rawGradients is List
      ? rawGradients
          .map(GradientThemeData.tryParse)
          .whereType<GradientThemeData>()
          .toList()
      : null;

  return ColorTheme(
    themeMode: themeMode,
    green: green,
    grey: grey,
    blue: blue,
    red: red,
    orange: orange,
    yellow: yellow,
    purple: purple,
    pink: pink,
    base: base,
    appbar: appbar,
    background: background,
    bottom: bottom,
    card: card,
    dialog: dialog,
    divider: divider,
    highlight: highlight,
    hint: hint,
    hover: hover,
    icon: icon,
    label: label,
    placeholder: placeholder,
    scaffold: scaffold,
    shadow: shadow,
    surface: surface,
    text: text,
    colors: colors ?? [],
    gradients: gradients ?? [],
  );
}