base_state.dart 676 Bytes
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';

abstract class BaseState<T extends StatefulWidget> extends State<T> {
  bool _isFirstBuild = true;

  @override
  Widget build(BuildContext context) {
    if (_isFirstBuild) {
      onFirstBuildBody(context);
      _isFirstBuild = false;
    }
    return buildBody(context);
  }

  Widget buildBody(BuildContext context);

  void onFirstBuildBody(BuildContext context) {}

  showLoading({String text = 'Loading...'}) {
    EasyLoading.show(status: text);
  }

  hideLoading() {
    EasyLoading.dismiss();
  }

  toast(String text) {
    EasyLoading.showToast(text);
  }
}