Merge pull request #189 from SyncrowIOT/1495-calendar-bugfixes

1495 calendar bugfixes
This commit is contained in:
Faris Armoush
2025-05-15 14:31:11 +03:00
committed by GitHub
5 changed files with 70 additions and 41 deletions

View File

@ -14,7 +14,6 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final spaceTreeState = context.read<SpaceTreeBloc>().state;
return BlocBuilder<AnalyticsTabBloc, AnalyticsPageTab>( return BlocBuilder<AnalyticsTabBloc, AnalyticsPageTab>(
buildWhen: (previous, current) => previous != current, buildWhen: (previous, current) => previous != current,
builder: (context, selectedTab) => Column( builder: (context, selectedTab) => Column(
@ -68,15 +67,21 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
context.read<AnalyticsDatePickerBloc>().add( context.read<AnalyticsDatePickerBloc>().add(
UpdateAnalyticsDatePickerEvent(montlyDate: value), UpdateAnalyticsDatePickerEvent(montlyDate: value),
); );
FetchEnergyManagementDataHelper.loadEnergyManagementData(
context, final spaceTreeState =
selectedDate: value, context.read<SpaceTreeBloc>().state;
communityId: if (spaceTreeState.selectedSpaces.isNotEmpty) {
spaceTreeState.selectedCommunities.firstOrNull ?? FetchEnergyManagementDataHelper
'', .loadEnergyManagementData(
spaceId: context,
spaceTreeState.selectedSpaces.firstOrNull ?? '', selectedDate: value,
); communityId:
spaceTreeState.selectedCommunities.firstOrNull ??
'',
spaceId:
spaceTreeState.selectedSpaces.firstOrNull ?? '',
);
}
}, },
selectedDate: context selectedDate: context
.watch<AnalyticsDatePickerBloc>() .watch<AnalyticsDatePickerBloc>()

View File

@ -28,25 +28,13 @@ abstract final class FetchOccupancyDataHelper {
loadAnalyticsDevices(context, communityUuid: communityId, spaceUuid: spaceId); loadAnalyticsDevices(context, communityUuid: communityId, spaceUuid: spaceId);
final selectedDevice = context.read<AnalyticsDevicesBloc>().state.selectedDevice; final selectedDevice = context.read<AnalyticsDevicesBloc>().state.selectedDevice;
context.read<OccupancyBloc>().add( loadOccupancyChartData(
LoadOccupancyEvent( context,
GetOccupancyParam( communityUuid: communityId,
monthDate: spaceUuid: spaceId,
'${datePickerState.monthlyDate.year}-${datePickerState.monthlyDate.month}', date: datePickerState.monthlyDate,
spaceUuid: spaceId, );
communityUuid: communityId, loadHeatMapData(context, spaceUuid: spaceId, year: datePickerState.yearlyDate);
),
),
);
context.read<OccupancyHeatMapBloc>().add(
LoadOccupancyHeatMapEvent(
GetOccupancyHeatMapParam(
spaceUuid: spaceId,
year: datePickerState.yearlyDate,
),
),
);
if (selectedDevice case final AnalyticsDevice device) { if (selectedDevice case final AnalyticsDevice device) {
context.read<RealtimeDeviceChangesBloc>() context.read<RealtimeDeviceChangesBloc>()
@ -57,6 +45,35 @@ abstract final class FetchOccupancyDataHelper {
} }
} }
static void loadHeatMapData(
BuildContext context, {
required String spaceUuid,
required DateTime year,
}) {
context.read<OccupancyHeatMapBloc>().add(
LoadOccupancyHeatMapEvent(
GetOccupancyHeatMapParam(spaceUuid: spaceUuid, year: year),
),
);
}
static void loadOccupancyChartData(
BuildContext context, {
required String communityUuid,
required String spaceUuid,
required DateTime date,
}) {
context.read<OccupancyBloc>().add(
LoadOccupancyEvent(
GetOccupancyParam(
monthDate: '${date.year}-${date.month}',
spaceUuid: spaceUuid,
communityUuid: communityUuid,
),
),
);
}
static void loadAnalyticsDevices( static void loadAnalyticsDevices(
BuildContext context, { BuildContext context, {
required String communityUuid, required String communityUuid,

View File

@ -47,11 +47,17 @@ class OccupancyChartBox extends StatelessWidget {
context.read<AnalyticsDatePickerBloc>().add( context.read<AnalyticsDatePickerBloc>().add(
UpdateAnalyticsDatePickerEvent(montlyDate: value), UpdateAnalyticsDatePickerEvent(montlyDate: value),
); );
FetchOccupancyDataHelper.loadOccupancyData( if (spaceTreeState.selectedSpaces.isNotEmpty) {
context, FetchOccupancyDataHelper.loadOccupancyChartData(
communityId: spaceTreeState.selectedCommunities.firstOrNull ?? '', context,
spaceId: spaceTreeState.selectedSpaces.firstOrNull ?? '', communityUuid:
); spaceTreeState.selectedCommunities.firstOrNull ??
'',
spaceUuid:
spaceTreeState.selectedSpaces.firstOrNull ?? '',
date: value,
);
}
}, },
selectedDate: context selectedDate: context
.watch<AnalyticsDatePickerBloc>() .watch<AnalyticsDatePickerBloc>()

View File

@ -47,12 +47,14 @@ class OccupancyHeatMapBox extends StatelessWidget {
context.read<AnalyticsDatePickerBloc>().add( context.read<AnalyticsDatePickerBloc>().add(
UpdateAnalyticsDatePickerEvent(yearlyDate: value), UpdateAnalyticsDatePickerEvent(yearlyDate: value),
); );
FetchOccupancyDataHelper.loadOccupancyData( if (spaceTreeState.selectedSpaces.isNotEmpty) {
context, FetchOccupancyDataHelper.loadHeatMapData(
communityId: context,
spaceTreeState.selectedCommunities.firstOrNull ?? '', spaceUuid:
spaceId: spaceTreeState.selectedSpaces.firstOrNull ?? '', spaceTreeState.selectedSpaces.firstOrNull ?? '',
); year: value,
);
}
}, },
datePickerType: DatePickerType.year, datePickerType: DatePickerType.year,
selectedDate: context selectedDate: context

View File

@ -39,7 +39,6 @@ class RemoteOccupancyAnalyticsDevicesService implements AnalyticsDevicesService
path: path:
'/projects/$projectUuid/communities/${param.communityUuid}/spaces/${param.spaceUuid}/devices', '/projects/$projectUuid/communities/${param.communityUuid}/spaces/${param.spaceUuid}/devices',
queryParameters: { queryParameters: {
'requestType': param.requestType.name,
'communityUuid': param.communityUuid, 'communityUuid': param.communityUuid,
'spaceUuid': param.spaceUuid, 'spaceUuid': param.spaceUuid,
'productType': param.deviceTypes.first, 'productType': param.deviceTypes.first,