updateScreenResponse method
void
updateScreenResponse(
- String screenRoute,
- StandardScreenResponseCubit cubit,
- ApiResponseCubit apiCubit,
- List<
StandardPageResponseWidgets> widgets, [ - Map<
String, dynamic> ? dataStore,
Implementation
void updateScreenResponse(String screenRoute, StandardScreenResponseCubit cubit,ApiResponseCubit apiCubit,
List<StandardPageResponseWidgets> widgets,
[Map<String, dynamic>? dataStore]) {
final response = cubit.state.responseMap;
final screenResponse = response[screenRoute];
if (screenResponse != null) {
final responseWidgetIds = Map.fromEntries(
screenResponse.widgets.map((widget) => MapEntry(widget.id, widget)),
);
for (final widget in widgets) {
final existingWidget = responseWidgetIds[widget.id];
if (existingWidget != null) {
screenResponse.dataStore![widget.id] = dataStore;
} else {
screenResponse.widgets.add(widget);
screenResponse.dataStore![widget.id] = dataStore;
}
}
cubit.updateStandardScreenResponse(screenRoute, screenResponse,response);
apiCubit.updatePage();
} else {
throw Exception('Screen Reference does not exists!');
}
}