import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:hadi_hoda_flutter/common_ui/resources/my_colors.dart'; import 'package:hadi_hoda_flutter/common_ui/resources/my_spaces.dart'; import 'package:hadi_hoda_flutter/common_ui/resources/my_text_style.dart'; import 'package:hadi_hoda_flutter/core/utils/my_localization.dart'; import 'package:hadi_hoda_flutter/features/intro/presentation/bloc/intro_bloc.dart'; import 'package:hadi_hoda_flutter/features/intro/presentation/bloc/intro_event.dart'; import 'package:hadi_hoda_flutter/features/intro/presentation/bloc/intro_state.dart'; class IntroPage extends StatefulWidget { const IntroPage({super.key}); @override State createState() => _IntroPageState(); } class _IntroPageState extends State with WidgetsBindingObserver { @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); } @override void dispose() { WidgetsBinding.instance.removeObserver(this); super.dispose(); } @override void didChangeAppLifecycleState(AppLifecycleState state) { if (!mounted) return; context.read().handleAppLifecycleState(state); } @override Widget build(BuildContext context) { return Scaffold( body: SizedBox.expand( child: GestureDetector( onTap: () => context.read().add(ChangeVideosEvent()), child: Stack(children: [_mainScreen(), _skipButton(context)]), ), ), ); } BlocBuilder _mainScreen() { return BlocBuilder( builder: (context, state) => AnimatedSwitcher( duration: const Duration(milliseconds: 200), reverseDuration: const Duration(milliseconds: 200), switchInCurve: Curves.linear, switchOutCurve: Curves.linear, child: context.read().intros[state.currentIntro], transitionBuilder: (child, animation) => FadeTransition(opacity: animation, child: child), ), ); } PositionedDirectional _skipButton(BuildContext context) { return PositionedDirectional( start: MySpaces.s30, bottom: MySpaces.s16, child: TextButton( onPressed: () => context.read().goToHomePage(), style: TextButton.styleFrom( foregroundColor: MyColors.white.withValues(alpha: 0.7), ), child: Text( context.translate.skip, style: MYTextStyle.button2.copyWith( color: MyColors.white.withValues(alpha: 0.7), ), ), ), ); } }