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 StatelessWidget { const IntroPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: SizedBox.expand( child: GestureDetector( onTap: () => context.read().add(ChangeIntroEvent()), child: Stack( children: [ _mainScreen(), _skipButton(context), ], ), ), ), ); } BlocBuilder _mainScreen() { return BlocBuilder( builder: (context, state) => AnimatedSwitcher( duration: Duration(milliseconds: 200), reverseDuration: 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().goToLevelPage(), 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), ), ), ), ); } }