tryParse static method
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 ?? [],
);
}