import 'package:flutter/material.dart'; import 'package:flutter_example_packages/base/di/app_di.dart'; import 'package:flutter_example_packages/theme/colors.dart'; import 'package:scoped_model/scoped_model.dart'; class BlockLayout extends StatelessWidget { const BlockLayout({ super.key, this.title, required this.builder, }); final String? title; final Widget Function(BuildContext context, Widget? child, T model) builder; @override Widget build(BuildContext context) { final theme = Theme.of(context); return ScopedModel( model: getIt(), child: ScopedModelDescendant(builder: (context, child, model) { return Scaffold( appBar: title == null ? null : AppBar( backgroundColor: AppColors.primaryDark, title: Text( title!, textAlign: TextAlign.left, style: theme.textTheme.titleSmall?.copyWith(color: Colors.white), ), ), body: Padding( padding: EdgeInsets.all(title == null ? 0 : 20), child: builder.call(context, child, model), ), ); }), ); } }