rem oved comments and removed copyWith fromAnalyticsTabState because the state object only has one property, so i replaced the state object with AnalyticsPageTab enum.

This commit is contained in:
Faris Armoush
2025-04-30 09:17:52 +03:00
parent fb1f79c7bb
commit fdd5d0feed
3 changed files with 10 additions and 34 deletions

View File

@ -3,17 +3,16 @@ import 'package:equatable/equatable.dart';
import 'package:syncrow_web/pages/analytics/modules/analytics/enums/analytics_page_tab.dart'; import 'package:syncrow_web/pages/analytics/modules/analytics/enums/analytics_page_tab.dart';
part 'analytics_tab_event.dart'; part 'analytics_tab_event.dart';
part 'analytics_tab_state.dart';
class AnalyticsTabBloc extends Bloc<AnalyticsTabEvent, AnalyticsTabState> { class AnalyticsTabBloc extends Bloc<AnalyticsTabEvent, AnalyticsPageTab> {
AnalyticsTabBloc() : super(const AnalyticsTabState()) { AnalyticsTabBloc() : super(AnalyticsPageTab.energyManagement) {
on<UpdateAnalyticsTabEvent>(_onUpdateAnalyticsTabEvent); on<UpdateAnalyticsTabEvent>(_onUpdateAnalyticsTabEvent);
} }
void _onUpdateAnalyticsTabEvent( void _onUpdateAnalyticsTabEvent(
UpdateAnalyticsTabEvent event, UpdateAnalyticsTabEvent event,
Emitter<AnalyticsTabState> emit, Emitter<AnalyticsPageTab> emit,
) { ) {
emit(state.copyWith(selectedTab: event.analyticsTab)); emit(event.analyticsTab);
} }
} }

View File

@ -1,20 +0,0 @@
part of 'analytics_tab_bloc.dart';
final class AnalyticsTabState extends Equatable {
const AnalyticsTabState({
this.selectedTab = AnalyticsPageTab.energyManagement,
});
final AnalyticsPageTab selectedTab;
AnalyticsTabState copyWith({
AnalyticsPageTab? selectedTab,
}) {
return AnalyticsTabState(
selectedTab: selectedTab ?? this.selectedTab,
);
}
@override
List<Object> get props => [selectedTab];
}

View File

@ -11,9 +11,9 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocBuilder<AnalyticsTabBloc, AnalyticsTabState>( return BlocBuilder<AnalyticsTabBloc, AnalyticsPageTab>(
buildWhen: (previous, current) => previous.selectedTab != current.selectedTab, buildWhen: (previous, current) => previous != current,
builder: (context, state) => Column( builder: (context, selectedTab) => Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
@ -21,10 +21,7 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
child: Container( child: Container(
width: MediaQuery.sizeOf(context).width * 1, width: MediaQuery.sizeOf(context).width * 1,
decoration: subSectionContainerDecoration, decoration: subSectionContainerDecoration,
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(horizontal: 32),
horizontal: 32,
// vertical: 48,
),
child: Row( child: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
@ -44,7 +41,7 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
...AnalyticsPageTab.values.map( ...AnalyticsPageTab.values.map(
(tab) => AnalyticsPageTabButton( (tab) => AnalyticsPageTabButton(
tab: tab, tab: tab,
isSelected: tab == state.selectedTab, isSelected: tab == selectedTab,
), ),
), ),
], ],
@ -71,7 +68,7 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
child: AnimatedSwitcher( child: AnimatedSwitcher(
switchInCurve: Curves.easeIn, switchInCurve: Curves.easeIn,
duration: const Duration(milliseconds: 200), duration: const Duration(milliseconds: 200),
child: state.selectedTab.child, child: selectedTab.child,
), ),
), ),
), ),