renderWithLayout method
Sends a template with layout.
Implementation
Future<void> renderWithLayout(
String viewName,
String layoutName, {
Map<String, dynamic> data = const {},
Map<String, dynamic> layoutData = const {},
}) async {
final renderer = ViewRenderer.instance;
final viewContext = await _buildViewContext(data);
// Render the main content
final content = await renderer.render(viewName, context: viewContext);
// Render the layout with content injected
final layoutContext = await _buildViewContext({
...layoutData,
'content': content,
});
final fullContent =
await renderer.render(layoutName, context: layoutContext);
_headers.setContentType(ContentType.html);
_body.sendHtml(fullContent);
}