buildChildComponentSections function
Implementation
List<Widget> buildChildComponentSections({
required BuildContext context,
required Map<String, dynamic> editorConfig,
required Map<String, dynamic> callbacks,
required Map<String, dynamic> parentData,
}) {
final Map<String, dynamic> registry = Map<String, dynamic>.from(
callbacks['childComponents'] ?? {},
);
return List<Widget>.from(
(editorConfig['childComponents'] as List).map((name) {
final dynamic builder = registry[name];
if (builder == null) {
return ListTile(
key: ValueKey('childComponent_$name'),
leading: const Icon(Icons.error_outline, color: Colors.red),
title: Text('Child component [$name] Not Found'),
);
}
return Card(
key: ValueKey('childComponent_$name'),
child: ListTile(
title: Text(childComponentLabel(name)),
trailing: const Icon(Icons.chevron_right),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => builder(
parentData: parentData,
props: {'isChildComponent': true, 'showAppMenu': false},
),
),
);
},
),
);
}),
);
}