4import '/features/main_menu/domain/entities/banner_entity.dart';
5import 'package:animate_do/animate_do.dart';
6import 'package:flutter/material.dart';
7import 'package:flutter_bloc/flutter_bloc.dart';
8import 'package:flutter_screenutil/flutter_screenutil.dart';
9import 'package:smooth_page_indicator/smooth_page_indicator.dart';
11import '../../logic/cubit/banners_cubit.dart';
17 State<BannerSliderView>
createState() => _BannerSliderViewState();
20class _BannerSliderViewState
extends State<BannerSliderView> {
25 image:
'assets/images/banner1.png',
30 image:
'assets/images/banner2.png',
35 image:
'assets/images/banner3.png',
39 Widget
build(BuildContext context) {
41 return BlocBuilder<BannersCubit, BannersState>(
42 builder: (context, state) {
43 if (state is BannerLoadingSuccessfully) {
44 return state.banners.isEmpty
45 ? SizedBox(height: 20.sp)
46 : BannerSlider(
banners: state.banners);
48 return SizedBox(height: 20.sp);
50 return SizedBox(height: 20.sp);
69class _BannerSliderState
extends State<BannerSlider> {
78 Future.delayed(
const Duration(seconds: 1), () {
84 Timer.periodic(
const Duration(seconds: 3), (Timer timer) {
93 duration:
const Duration(milliseconds: 350),
106 Widget
build(BuildContext context) {
111 margin: EdgeInsets.symmetric(vertical: 15.sp),
112 width: MediaQuery.of(context).size.width,
114 decoration: BoxDecoration(
115 borderRadius: BorderRadius.circular(10),
121 onPageChanged: (index) {
123 _currentPage = index;
126 itemCount: widget.banners.length,
127 itemBuilder: (context, index) {
129 decoration: BoxDecoration(
130 color: Theme.of(context)
134 borderRadius: BorderRadius.circular(10),
137 borderRadius: BorderRadius.circular(10),
139 widget.banners[index].image ??
'',
155 child: SmoothPageIndicator(
162 dotColor: Theme.of(context)
166 activeDotColor: Theme.of(context).primaryColor,
class BannerSliderView extends StatefulWidget banners
const BannersLoadingFailure({required this.failure})
override void initState()
class EnergyScreen extends StatefulWidget _pageController
override Widget build(BuildContext context)