import 'package:auto_size_text/auto_size_text.dart'; import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:provider_architecture/shared/functions.dart'; import 'base_model.dart'; import '../../locator.dart'; class BaseView extends StatefulWidget { final Widget Function(BuildContext context, T model, Widget child) builder; final Function(T) onModelReady; final Function(T) onDispose; BaseView({this.builder, this.onModelReady, this.onDispose}); @override _BaseViewState createState() => _BaseViewState(); } class _BaseViewState extends State> { T model = locator(); @override void initState() { if (widget.onModelReady != null) { nextTick(() { widget.onModelReady(model); }); } super.initState(); } @override void dispose() { if (widget.onDispose != null) widget.onDispose(model); super.dispose(); } }