maybeFromDynamic static method
JsonScaffoldBuilderModel?
maybeFromDynamic(
- dynamic map, {
- Map<
String, dynamic> args = const {}, - JsonWidgetRegistry? registry,
Implementation
static JsonScaffoldBuilderModel? maybeFromDynamic(
dynamic map, {
Map<String, dynamic> args = const {},
JsonWidgetRegistry? registry,
}) {
JsonScaffoldBuilderModel? result;
if (map != null) {
if (map is String) {
map = yaon.parse(
map,
normalize: true,
);
}
if (map is JsonScaffoldBuilderModel) {
result = map;
} else {
registry ??= JsonWidgetRegistry.instance;
map = registry.processArgs(map, <String>{}).value;
result = JsonScaffoldBuilderModel(
args,
appBar: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['appBar'],
registry: registry,
);
return parsed;
}(),
backgroundColor: () {
dynamic parsed = ThemeDecoder.decodeColor(
map['backgroundColor'],
validate: false,
);
return parsed;
}(),
body: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['body'],
registry: registry,
);
return parsed;
}(),
bottomNavigationBar: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['bottomNavigationBar'],
registry: registry,
);
return parsed;
}(),
bottomSheet: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['bottomSheet'],
registry: registry,
);
return parsed;
}(),
drawer: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['drawer'],
registry: registry,
);
return parsed;
}(),
drawerDragStartBehavior: () {
dynamic parsed = ThemeDecoder.decodeDragStartBehavior(
map['drawerDragStartBehavior'],
validate: false,
);
parsed ??= DragStartBehavior.start;
return parsed;
}(),
drawerEdgeDragWidth: () {
dynamic parsed =
JsonClass.maybeParseDouble(map['drawerEdgeDragWidth']);
return parsed;
}(),
drawerEnableOpenDragGesture: JsonClass.parseBool(
map['drawerEnableOpenDragGesture'],
whenNull: true,
),
drawerScrimColor: () {
dynamic parsed = ThemeDecoder.decodeColor(
map['drawerScrimColor'],
validate: false,
);
return parsed;
}(),
endDrawer: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['endDrawer'],
registry: registry,
);
return parsed;
}(),
endDrawerEnableOpenDragGesture: JsonClass.parseBool(
map['endDrawerEnableOpenDragGesture'],
whenNull: true,
),
extendBody: JsonClass.parseBool(
map['extendBody'],
whenNull: false,
),
extendBodyBehindAppBar: JsonClass.parseBool(
map['extendBodyBehindAppBar'],
whenNull: false,
),
floatingActionButton: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['floatingActionButton'],
registry: registry,
);
return parsed;
}(),
floatingActionButtonAnimator: () {
dynamic parsed = ThemeDecoder.decodeFloatingActionButtonAnimator(
map['floatingActionButtonAnimator'],
validate: false,
);
return parsed;
}(),
floatingActionButtonLocation: () {
dynamic parsed = ThemeDecoder.decodeFloatingActionButtonLocation(
map['floatingActionButtonLocation'],
validate: false,
);
return parsed;
}(),
onDrawerChanged: map['onDrawerChanged'],
onEndDrawerChanged: map['onEndDrawerChanged'],
persistentFooterAlignment: () {
dynamic parsed = ThemeDecoder.decodeAlignmentDirectional(
map['persistentFooterAlignment'],
validate: false,
);
parsed ??= AlignmentDirectional.centerEnd;
return parsed;
}(),
persistentFooterButtons: () {
dynamic parsed = JsonWidgetData.maybeFromDynamicList(
map['persistentFooterButtons'],
registry: registry,
);
return parsed;
}(),
primary: JsonClass.parseBool(
map['primary'],
whenNull: true,
),
resizeToAvoidBottomInset: JsonClass.maybeParseBool(
map['resizeToAvoidBottomInset'],
),
restorationId: map['restorationId'],
);
}
}
return result;
}