onInit method
override
Called immediately after the widget is allocated in memory. You might use this to initialize something for the controller.
Implementation
@override
void onInit() {
SchedulerBinding.instance.addPostFrameCallback(
(_) => WebUtils.deleteLoader(),
);
if (router.byLink) {
final String? slug = router.initial?.uri.path.replaceFirst(
Routes.directLink,
'',
);
if (slug != null) {
_slug = DirectLinkSlug(slug);
_scheduleChat();
}
} else {
_scheduleSupport();
}
final ModalRoute dummyRoute = RawDialogRoute(
pageBuilder: (_, _, _) => const SizedBox(),
);
bool hasRoute = false;
_opacityWorker = ever(opacity, (d) {
final bool shouldRoute = d > 0;
if (hasRoute != shouldRoute) {
hasRoute = shouldRoute;
if (hasRoute) {
router.obscuring.add(dummyRoute);
} else {
router.obscuring.remove(dummyRoute);
}
}
});
opacity.value = _authService.userId.isLocal ? 1 : 0;
String previous = router.route;
_routesWorker = ever(router.routes, (routes) {
final String last = routes.lastOrNull ?? '';
if (last != previous) {
Log.debug('_routesWorker -> `last` is `$last`', '$runtimeType');
if (last.startsWith(Routes.directLink)) {
final String slug = last.replaceFirst(Routes.directLink, '');
if (slug.isNotEmpty) {
_slug = DirectLinkSlug(slug);
_scheduleChat(route: last);
}
}
previous = last;
}
});
super.onInit();
}