mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-15 09:45:25 +00:00
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:
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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];
|
|
||||||
}
|
|
@ -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,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
Reference in New Issue
Block a user