import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../locator.dart'; class BaseView extends StatefulWidget { final Widget Function(BuildContext context, T model, Widget child) builder; final Function(T) onModelReady; BaseView({ this.builder, this.onModelReady, }); @override _BaseViewState createState() => _BaseViewState(); } class _BaseViewState extends State> { T model = locator(); @override void initState() { if (widget.onModelReady != null) { widget.onModelReady(model); } super.initState(); } @override Widget build(BuildContext context) { return ChangeNotifierProvider( create: (BuildContext context) => model, child: Consumer(builder: widget.builder), ); } }