import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:go_router/go_router.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../../../../core/theme/theme_helper.dart'; import 'package:flutter_native_splash/flutter_native_splash.dart'; class WelcomeScreen extends StatefulWidget { const WelcomeScreen({super.key}); @override State createState() => _WelcomeScreenState(); } class _WelcomeScreenState extends State { late final GoRouter goRouter; @override void initState() { super.initState(); goRouter = GoRouter.of(context); } @override Widget build(BuildContext context) { FlutterNativeSplash.remove(); return Scaffold( body: Stack( clipBehavior: Clip.none, children: [ Positioned( left: -20, top: -20, right: -20, bottom: -20, child: Image.asset( 'assets/images/bg_welcome.png', fit: BoxFit.cover, ), ), Positioned.fill( child: SafeArea( child: Padding( padding: const EdgeInsets.only(bottom: 16), child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ const SizedBox(height: 80), SvgPicture.asset('assets/images/logo_welcome.svg'), const Spacer(), Padding( padding: const EdgeInsets.all(16), child: Material( borderRadius: BorderRadius.circular(14), color: Colors.white, child: Padding( padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox(height: 16), const Text( 'Добро пожаловать!', style: TextStyle( fontSize: 28, fontWeight: FontWeight.w800, height: 1, ), ), const SizedBox(height: 20), const Text( 'Это первая версия приложения,\nи мы активно работаем над его\nулучшением. Если вы заметите ошибку\nили у вас есть идея — пожалуйста,\nсообщите нам!\n\nВаша помощь бесценна', style: TextStyle( fontSize: 16, fontWeight: FontWeight.w500, height: 1.15, ), ), const SizedBox(height: 24), InkWell( onTap: () async { final sharedPreferences = await SharedPreferences.getInstance(); await sharedPreferences.setBool('welcomeScreenWasShowed', true); goRouter.go('/feed-screen'); }, borderRadius: BorderRadius.circular(8), child: Ink( height: 52, decoration: BoxDecoration( color: appTheme.blueA400, borderRadius: BorderRadius.circular(8), ), child: const Center( child: Text( 'Начать пользоваться', style: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, height: 1, color: Colors.white, ), ), ), ), ), const SizedBox(height: 16), ], ), ), ), ), ], ), ), ), ), ], ), ); } }