mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
86 lines
3.9 KiB
Dart
86 lines
3.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:syncrow_web/pages/analytics/modules/analytics/blocs/analytics_tab/analytics_tab_bloc.dart';
|
|
import 'package:syncrow_web/pages/analytics/modules/analytics/widgets/analytics_communities_sidebar.dart';
|
|
import 'package:syncrow_web/pages/analytics/modules/analytics/widgets/analytics_page_tabs_and_children.dart';
|
|
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/energy_consumption_by_phases/energy_consumption_by_phases_bloc.dart';
|
|
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/energy_consumption_per_device/energy_consumption_per_device_bloc.dart';
|
|
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/power_clamp_info/power_clamp_info_bloc.dart';
|
|
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_bloc.dart';
|
|
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/total_energy_consumption/total_energy_consumption_bloc.dart';
|
|
import 'package:syncrow_web/pages/analytics/modules/occupancy/blocs/occupancy/occupancy_bloc.dart';
|
|
import 'package:syncrow_web/pages/analytics/services/energy_consumption_by_phases/fake_energy_consumption_by_phases_service.dart';
|
|
import 'package:syncrow_web/pages/analytics/services/energy_consumption_per_device/fake_energy_consumption_per_device_service.dart';
|
|
import 'package:syncrow_web/pages/analytics/services/occupacy/fake_occupacy_service.dart';
|
|
import 'package:syncrow_web/pages/analytics/services/power_clamp_info/remote_power_clamp_info_service.dart';
|
|
import 'package:syncrow_web/pages/analytics/services/realtime_device_service/firebase_realtime_device_service.dart';
|
|
import 'package:syncrow_web/pages/analytics/services/total_energy_consumption/fake_total_energy_consumption_service.dart';
|
|
import 'package:syncrow_web/pages/device_managment/shared/navigate_home_grid_view.dart';
|
|
import 'package:syncrow_web/services/api/http_service.dart';
|
|
import 'package:syncrow_web/utils/theme/responsive_text_theme.dart';
|
|
import 'package:syncrow_web/web_layout/web_scaffold.dart';
|
|
|
|
class AnalyticsPage extends StatelessWidget {
|
|
const AnalyticsPage({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MultiBlocProvider(
|
|
providers: [
|
|
BlocProvider<AnalyticsTabBloc>(
|
|
create: (context) => AnalyticsTabBloc(),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => TotalEnergyConsumptionBloc(
|
|
FakeTotalEnergyConsumptionService(),
|
|
),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => EnergyConsumptionByPhasesBloc(
|
|
FakeEnergyConsumptionByPhasesService(),
|
|
),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => EnergyConsumptionPerDeviceBloc(
|
|
FakeEnergyConsumptionPerDeviceService(),
|
|
),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => PowerClampInfoBloc(
|
|
RemotePowerClampInfoService(HTTPService()),
|
|
),
|
|
),
|
|
BlocProvider<RealtimeDeviceChangesBloc>(
|
|
create: (context) => RealtimeDeviceChangesBloc(
|
|
FirebaseRealtimeDeviceService(),
|
|
),
|
|
),
|
|
BlocProvider(create: (context) => OccupancyBloc(FakeOccupacyService())),
|
|
],
|
|
child: const AnalyticsPageForm(),
|
|
);
|
|
}
|
|
}
|
|
|
|
class AnalyticsPageForm extends StatelessWidget {
|
|
const AnalyticsPageForm({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return WebScaffold(
|
|
rightBody: const NavigateHomeGridView(),
|
|
appBarTitle: Text(
|
|
'Syncrow Analytics',
|
|
style: ResponsiveTextTheme.of(context).deviceManagementTitle,
|
|
),
|
|
enableMenuSidebar: false,
|
|
scaffoldBody: const Row(
|
|
children: [
|
|
AnalyticsCommunitiesSidebar(),
|
|
Expanded(flex: 5, child: AnalyticsPageTabsAndChildren()),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|