1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import 'dart:async';
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:vitalapp/routes/nav_ids.dart';
- import 'package:vitalapp/routes/routes.dart';
- class RedirectPage extends StatefulWidget {
- static bool _isBusy = false;
- static int count = 0;
- static bool get isBusy => _isBusy;
- static set isBusy(bool val) {
- print("isBusy -> $val");
- _isBusy = val;
- }
- const RedirectPage({super.key});
- @override
- State<StatefulWidget> createState() => _RedirectPageState();
- }
- class _RedirectPageState extends State<RedirectPage> {
- late final String targetName;
- late final String? targetPatientInfo;
- bool isLoading = true;
- @override
- void initState() {
- RedirectPage.isBusy = true;
- RedirectPage.count++;
- targetName = Routes.parameters["name"]!;
- super.initState();
- WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
- wait();
- });
- }
- @override
- void dispose() {
- RedirectPage.count--;
- if (RedirectPage.count == 0) {
- RedirectPage.isBusy = false;
- }
- super.dispose();
- }
- void wait() {
- Future.delayed(const Duration(milliseconds: 300), () {
- setState(() {
- isLoading = false;
- });
- redirectTo();
- });
- }
- void redirectTo() {
- Future.delayed(const Duration(milliseconds: 100), () {
- Get.offAllNamed(targetName, id: NavIds.HOME);
- // Routes.parameters = {};
- RedirectPage.isBusy = false;
- });
- }
- @override
- Widget build(BuildContext context) {
- if (isLoading) {
- return const Center(
- child: SizedBox(
- width: 50,
- height: 50,
- child: CircularProgressIndicator(),
- ),
- );
- }
- return const SizedBox();
- }
- }
|