Files
syncrow-app/lib/features/splash/view/splash_view.dart
Mohammad Salameh cb913cd784 Refactor navigation in SplashView and add CustomPageRoute
Introduce CustomPageRoute for smoother navigation transitions in SplashView.
Update navigation in SplashView to use CustomPageRoute for login redirection.
2024-03-19 15:06:10 +03:00

68 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:syncrow_app/features/auth/bloc/auth_cubit.dart';
import 'package:syncrow_app/features/auth/view/widgets/login/login_view.dart';
import 'package:syncrow_app/generated/assets.dart';
import 'package:syncrow_app/navigation/routing_constants.dart';
import 'package:syncrow_app/utils/helpers/custom_page_route.dart';
class SplashView extends StatelessWidget {
const SplashView({super.key});
@override
Widget build(BuildContext context) {
return BlocBuilder<AuthCubit, AuthState>(
builder: (context, state) {
if (state is AuthTokenSuccess) {
Future.delayed(const Duration(seconds: 1), () {
Navigator.pushReplacementNamed(context, Routes.homeRoute);
});
} else {
Future.delayed(const Duration(seconds: 1), () {
Navigator.pushReplacement(
context,
CustomPageRoute(builder: (context) => const LoginView()),
);
});
}
return Scaffold(
body: Stack(
alignment: Alignment.center,
children: [
Container(
width: MediaQuery.sizeOf(context).width,
height: MediaQuery.sizeOf(context).height,
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage(
Assets.imagesBackground,
),
fit: BoxFit.cover,
),
),
),
Container(
width: MediaQuery.sizeOf(context).width,
height: MediaQuery.sizeOf(context).height,
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage(Assets.imagesVector),
fit: BoxFit.cover,
opacity: 0.9,
),
),
),
SvgPicture.asset(
Assets.imagesLogo,
width: 240,
)
],
),
);
},
);
}
}