ScreenDoc.fromJson constructor

ScreenDoc.fromJson(
  1. Map<String, Object?> json
)

Implementation

factory ScreenDoc.fromJson(Map<String, Object?> json) {
  final layoutName = (json['layout'] ?? 'listDetail').toString();
  final layout = LayoutKind.values.firstWhere(
    (l) => l.name == layoutName,
    orElse: () => LayoutKind.listDetail,
  );
  return ScreenDoc(
    layout: layout,
    name: (json['name'] ?? '').toString(),
    root: _nodeFromJson(json['root'] as Map<String, Object?>? ?? const {}),
    states:
        (json['states'] as List?)?.map((e) => e.toString()).toList() ??
        const <String>['loading', 'empty', 'error', 'data'],
    bindings:
        (json['bindings'] as List?)
            ?.map((e) => UiBinding.fromJson(e as Map<String, Object?>))
            .toList() ??
        const <UiBinding>[],
  );
}