- Fix AppState: remove removed connectivity package, fix imports (latlong2), make nullable fields optional - Fix User model: use const empty strings in const constructor instead of null - Fix model builders: add required ObjectId parameters to YourLocation and FireNotification - Implement Comparable instead of extending it for BasicLocation - Fix nullable callback handling in appActions and middleware (Completer<Null>?) - Add null checks for BuildContext in dialogs (fireAlert, homePage, etc.) - Fix nullable scaffold state access using ?. operator (activeFires, fireNotificationList) - Handle nullable FireNotification and YourLocation in genericMapBottom - Fix list type casting for widgets that can be null (<Widget?> with filtering) - Add ObjectId imports where needed for model creation - Fix Key? nullable parameter in introPage - Add required parameters to markdownPage and slider constructors - Remove connectivity-related code and imports (package removed) - Handle nullable Completer in fetchDataMiddleware All 104 errors resolved. 0 errors, 61 warnings/info remaining.
110 lines
3.9 KiB
Dart
110 lines
3.9 KiB
Dart
import 'package:redux/redux.dart';
|
|
import 'package:fires_flutter/models/yourLocation.dart';
|
|
import 'package:objectid/objectid.dart';
|
|
import '../models/fireMapState.dart';
|
|
import 'actions.dart';
|
|
|
|
final fireMapReducer = combineReducers<FireMapState>([
|
|
new TypedReducer<FireMapState, ShowYourLocationMapAction>(
|
|
_showYourLocationMap),
|
|
new TypedReducer<FireMapState, ShowFireNotificationMapAction>(
|
|
_showFireNotificationMap),
|
|
new TypedReducer<FireMapState, UpdateFireMapStatsAction>(
|
|
_updateYourLocationMapStats),
|
|
new TypedReducer<FireMapState, SubscribeAction>(_subscribeYourLocationMap),
|
|
new TypedReducer<FireMapState, SubscribeConfirmAction>(
|
|
_subscribeConfirmYourLocationMap),
|
|
new TypedReducer<FireMapState, UnSubscribeAction>(
|
|
_unsubscribeYourLocationMap),
|
|
new TypedReducer<FireMapState, EditYourLocationAction>(_editYourLocationMap),
|
|
new TypedReducer<FireMapState, EditConfirmYourLocationAction>(
|
|
_editConfirmYourLocationMap),
|
|
new TypedReducer<FireMapState, EditCancelYourLocationAction>(
|
|
_editCancelYourLocationMap),
|
|
new TypedReducer<FireMapState, ToggleMapLayerAction>(_toggleMapLayer),
|
|
new TypedReducer<FireMapState, UpdateYourLocationMapAction>(
|
|
_updateYourLocationMap)
|
|
]);
|
|
|
|
FireMapState _updateYourLocationMapStats(
|
|
FireMapState state, UpdateFireMapStatsAction action) {
|
|
return state.copyWith(
|
|
numFires: action.numFires,
|
|
fires: action.fires,
|
|
falsePos: action.falsePos,
|
|
industries: action.industries);
|
|
}
|
|
|
|
FireMapState _updateYourLocationMap(
|
|
FireMapState state, UpdateYourLocationMapAction action) {
|
|
return state.copyWith(yourLocation: action.loc);
|
|
}
|
|
|
|
FireMapState _showYourLocationMap(
|
|
FireMapState state, ShowYourLocationMapAction action) {
|
|
return state.copyWith(
|
|
status: action.loc.subscribed
|
|
? FireMapStatus.unsubscribe
|
|
: FireMapStatus.view,
|
|
yourLocation: action.loc,
|
|
fireNotication: null);
|
|
}
|
|
|
|
FireMapState _showFireNotificationMap(
|
|
FireMapState state, ShowFireNotificationMapAction action) {
|
|
// TODO: use here you real location?
|
|
YourLocation pseudoLoc = new YourLocation(
|
|
id: ObjectId(),
|
|
lat: action.notif.lat,
|
|
lon: action.notif.lon,
|
|
description: action.notif.description);
|
|
return state.copyWith(
|
|
status: FireMapStatus.viewFireNotification,
|
|
yourLocation: pseudoLoc,
|
|
fireNotication: action.notif);
|
|
}
|
|
|
|
FireMapState _subscribeYourLocationMap(
|
|
FireMapState state, SubscribeAction action) {
|
|
return state.copyWith(status: FireMapStatus.subscriptionConfirm);
|
|
}
|
|
|
|
FireMapState _subscribeConfirmYourLocationMap(
|
|
FireMapState state, SubscribeConfirmAction action) {
|
|
return state.copyWith(
|
|
status: FireMapStatus.unsubscribe, yourLocation: action.loc);
|
|
}
|
|
|
|
FireMapState _unsubscribeYourLocationMap(
|
|
FireMapState state, UnSubscribeAction action) {
|
|
return state.copyWith(status: FireMapStatus.view, yourLocation: action.loc);
|
|
}
|
|
|
|
FireMapState _editYourLocationMap(
|
|
FireMapState state, EditYourLocationAction action) {
|
|
return state.copyWith(status: FireMapStatus.edit);
|
|
}
|
|
|
|
FireMapState _editConfirmYourLocationMap(
|
|
FireMapState state, EditConfirmYourLocationAction action) {
|
|
return state.copyWith(status: restoreStatusAfterSave(action.loc));
|
|
}
|
|
|
|
FireMapState _editCancelYourLocationMap(
|
|
FireMapState state, EditCancelYourLocationAction action) {
|
|
return state.copyWith(
|
|
status: restoreStatusAfterSave(action.loc), yourLocation: action.loc);
|
|
}
|
|
|
|
FireMapStatus restoreStatusAfterSave(loc) =>
|
|
loc.subscribed ? FireMapStatus.unsubscribe : FireMapStatus.view;
|
|
|
|
FireMapState _toggleMapLayer(FireMapState state, ToggleMapLayerAction action) {
|
|
FireMapLayer currentLayer = state.layer;
|
|
List<FireMapLayer> list = FireMapLayer.values;
|
|
int currentPos = list.indexOf(currentLayer);
|
|
currentPos++;
|
|
FireMapLayer next =
|
|
list.elementAt(currentPos >= list.length ? 0 : currentPos);
|
|
return state.copyWith(layer: next);
|
|
}
|