1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import 'package:app_flowy/welcome/domain/deps.dart';
- import 'package:app_flowy/welcome/presentation/widgets/body.dart';
- import 'package:app_flowy/startup/startup.dart';
- import 'package:app_flowy/welcome/application/welcome_bloc.dart';
- import 'package:flowy_style/route/animation.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_bloc/flutter_bloc.dart';
- import 'package:flowy_style/time/prelude.dart';
- class WelcomeScreen extends StatelessWidget {
- const WelcomeScreen({Key? key}) : super(key: key);
- @override
- Widget build(BuildContext context) {
- return BlocProvider(
- create: (context) {
- return getIt<WelcomeBloc>()..add(const WelcomeEvent.check());
- },
- child: Scaffold(
- body: BlocListener<WelcomeBloc, WelcomeState>(
- listener: (context, state) {
- state.auth.map(
- authenticated: (_) =>
- _pushToScreen(context, getIt<IWelcomeRoute>().home()),
- unauthenticated: (_) =>
- _pushToScreen(context, getIt<IWelcomeRoute>().signIn()),
- );
- },
- child: const Body(),
- ),
- ),
- );
- }
- void _pushToScreen(BuildContext context, Widget screen) {
- /// Let the splash view sit for a bit. Mainly for aesthetics and to ensure a smooth intro animation.
- Future<void>.delayed(1.0.seconds, () {
- Navigator.push(
- context,
- PageRoutes.fade(
- () => screen, RouteDurations.slow.inMilliseconds * .001));
- });
- }
- }
|