initState method
Initialises the TBaseViewModel and its needed methods.
Implementation
@override
void initState() {
_viewModel = widget._viewModelBuilder()
..disposableBuildContext = DisposableBuildContext(this)
.._mounted = (() => mounted)
..arguments = widget._argumentBuilder?.call();
final minBusyDuration = widget.minBusyDuration;
final showLoadingIndicator = minBusyDuration != null;
if (showLoadingIndicator) {
final busyService = TBusyService.instance();
busyService.setBusy(
true,
minBusyDuration: minBusyDuration,
);
_busyListener = () {
if (!busyService.isBusy) {
busyService.isBusyListenable.removeListener(_busyListener!);
_busyListener = null;
Future.delayed(widget.contentFadeDuration, () {
_viewModel.setInitialised(true);
});
}
};
busyService.isBusyListenable.addListener(_busyListener!);
}
WidgetsBinding.instance.addPostFrameCallback((_) async {
await _viewModel.initialise(doSetInitialised: !showLoadingIndicator);
if (showLoadingIndicator) {
TBusyService.instance().setBusy(false);
}
});
super.initState();
}