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';
part 'analytics_tab_event.dart';
part 'analytics_tab_state.dart';
class AnalyticsTabBloc extends Bloc<AnalyticsTabEvent, AnalyticsTabState> {
AnalyticsTabBloc() : super(const AnalyticsTabState()) {
class AnalyticsTabBloc extends Bloc<AnalyticsTabEvent, AnalyticsPageTab> {
AnalyticsTabBloc() : super(AnalyticsPageTab.energyManagement) {
on<UpdateAnalyticsTabEvent>(_onUpdateAnalyticsTabEvent);
}
void _onUpdateAnalyticsTabEvent(
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
Widget build(BuildContext context) {
return BlocBuilder<AnalyticsTabBloc, AnalyticsTabState>(
buildWhen: (previous, current) => previous.selectedTab != current.selectedTab,
builder: (context, state) => Column(
return BlocBuilder<AnalyticsTabBloc, AnalyticsPageTab>(
buildWhen: (previous, current) => previous != current,
builder: (context, selectedTab) => Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
@ -21,10 +21,7 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
child: Container(
width: MediaQuery.sizeOf(context).width * 1,
decoration: subSectionContainerDecoration,
padding: const EdgeInsets.symmetric(
horizontal: 32,
// vertical: 48,
),
padding: const EdgeInsets.symmetric(horizontal: 32),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
@ -44,7 +41,7 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
...AnalyticsPageTab.values.map(
(tab) => AnalyticsPageTabButton(
tab: tab,
isSelected: tab == state.selectedTab,
isSelected: tab == selectedTab,
),
),
],
@ -71,7 +68,7 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
child: AnimatedSwitcher(
switchInCurve: Curves.easeIn,
duration: const Duration(milliseconds: 200),
child: state.selectedTab.child,
child: selectedTab.child,
),
),
),