Fix 13 lint issues: immutability, imports, async/await, and code style
High-priority fixes (10 issues): - assignment_to_final errors (7): Use copyWith() to respect immutability in YourLocation, active_fires.dart, generic_map.dart, location_utils.dart, and fetch_data_middleware.dart instead of direct assignment - Fixed import paths (3): Updated falsePositiveTypes.dart → false_positive_types.dart and firesApi.dart → fires_api.dart in reducers.dart, fire_notification_actions.dart, fires_api.dart Medium/Low priority fixes (3 issues): - unnecessary_non_null_assertion: Removed redundant '!' in app_intro_page.dart line 54 - use_super_parameters: Updated app_intro_page.dart to use modern super(key: key) syntax - no_logic_in_create_state: Fixed material_app_with_intro.dart by moving parameters to State instead of createState - noop_primitive_operations: Removed redundant .toString() in string interpolation - avoid_void_async: Changed void _selectLocation to Future<void> in places_autocomplete_utils.dart - avoid_dynamic_calls: Fixed dynamic map access in fires_api.dart by properly casting intermediate values Result: Reduced lint issues from 56 to 20 (all remaining are by-design: library_private_types_in_public_api and implementation_imports from external packages) APK builds successfully with no errors.
This commit is contained in:
parent
12653b80a4
commit
30a89fc5c0
23 changed files with 205 additions and 80 deletions
|
|
@ -5,13 +5,13 @@ import 'package:get_it/get_it.dart';
|
|||
import 'package:objectid/objectid.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
|
||||
import '../models/appState.dart';
|
||||
import '../models/fireNotification.dart';
|
||||
import '../models/fireNotificationsPersist.dart';
|
||||
import '../models/firesApi.dart';
|
||||
import '../models/yourLocation.dart';
|
||||
import '../models/yourLocationPersist.dart';
|
||||
import '../objectIdUtils.dart';
|
||||
import '../models/app_state.dart';
|
||||
import '../models/fire_notification.dart';
|
||||
import '../models/fire_notifications_persist.dart';
|
||||
import '../models/fires_api.dart';
|
||||
import '../models/your_location.dart';
|
||||
import '../models/your_location_persist.dart';
|
||||
import '../object_id_utils.dart';
|
||||
import 'actions.dart';
|
||||
|
||||
// A middleware takes in 3 parameters: your Store, which you can use to
|
||||
|
|
@ -157,23 +157,26 @@ void fetchDataMiddleware(
|
|||
// If it succeeds, dispatch a success action with the YourLocations.
|
||||
// Our reducer will then update the State using these YourLocations.
|
||||
// unsubscribe all locally to sync the subs state
|
||||
for (final YourLocation location in localLocations) {
|
||||
location.subscribed = false;
|
||||
}
|
||||
final List<YourLocation> unsubscribedLocations = localLocations
|
||||
.map(
|
||||
(YourLocation location) => location.copyWith(subscribed: false))
|
||||
.toList();
|
||||
for (final YourLocation subsLoc in subscribedLocations) {
|
||||
final YourLocation locSubs = localLocations.firstWhere(
|
||||
(YourLocation localLocation) => localLocation.id == subsLoc.id,
|
||||
orElse: () {
|
||||
localLocations.add(subsLoc);
|
||||
return subsLoc;
|
||||
});
|
||||
locSubs.subscribed = true;
|
||||
final int index = unsubscribedLocations.indexWhere(
|
||||
(YourLocation localLocation) => localLocation.id == subsLoc.id);
|
||||
if (index >= 0) {
|
||||
unsubscribedLocations[index] =
|
||||
unsubscribedLocations[index].copyWith(subscribed: true);
|
||||
} else {
|
||||
unsubscribedLocations.add(subsLoc);
|
||||
}
|
||||
}
|
||||
|
||||
store.dispatch(FetchYourLocationsSucceededAction(localLocations));
|
||||
persistYourLocations(localLocations);
|
||||
store
|
||||
.dispatch(FetchYourLocationsSucceededAction(unsubscribedLocations));
|
||||
persistYourLocations(unsubscribedLocations);
|
||||
|
||||
for (final YourLocation yl in localLocations) {
|
||||
for (final YourLocation yl in unsubscribedLocations) {
|
||||
api
|
||||
.getFiresInLocation(
|
||||
state: store.state,
|
||||
|
|
@ -181,8 +184,8 @@ void fetchDataMiddleware(
|
|||
lon: yl.lon,
|
||||
distance: yl.distance)
|
||||
.then((UpdateFireMapStatsAction value) {
|
||||
yl.currentNumFires = value.numFires;
|
||||
store.dispatch(UpdateYourLocationAction(yl));
|
||||
store.dispatch(UpdateYourLocationAction(
|
||||
yl.copyWith(currentNumFires: value.numFires)));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -243,8 +246,8 @@ void getFiresStatsInLocation(Store<AppState> store, YourLocation loc) {
|
|||
distance: loc.distance)
|
||||
.then((UpdateFireMapStatsAction result) {
|
||||
store.dispatch(result);
|
||||
loc.currentNumFires = result.numFires;
|
||||
store.dispatch(UpdateYourLocationAction(loc));
|
||||
store.dispatch(UpdateYourLocationAction(
|
||||
loc.copyWith(currentNumFires: result.numFires)));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue