More work with redux, and location edit (wip)
This commit is contained in:
parent
e97a5a1a9f
commit
e55edce3d4
17 changed files with 311 additions and 186 deletions
|
|
@ -1,2 +1,3 @@
|
|||
export 'appActions.dart';
|
||||
export 'yourLocationActions.dart';
|
||||
export 'yourLocationActions.dart';
|
||||
export 'fireMapActions.dart';
|
||||
|
|
@ -36,6 +36,16 @@ void fetchYourLocationsMiddleware(
|
|||
createUser(store, store.state.user.lang, action.token);
|
||||
}
|
||||
|
||||
if (action is EditConfirmYourLocationAction) {
|
||||
if (action.loc.subscribed) {
|
||||
// FXIME save lat/lon
|
||||
} else {
|
||||
// No subscribed (only local)
|
||||
store.dispatch(new UpdateYourLocationAction(action.loc));
|
||||
persistYourLocations(store.state.yourLocations);
|
||||
}
|
||||
}
|
||||
|
||||
if (action is AddYourLocationAction) {
|
||||
if (action.loc.subscribed) {
|
||||
subscribeViaApi(store, action.loc,
|
||||
|
|
@ -64,25 +74,28 @@ void fetchYourLocationsMiddleware(
|
|||
.then((result) => store.dispatch(result));
|
||||
}
|
||||
|
||||
if (action is UpdateLocalYourLocationAction) {
|
||||
if (action is UpdateYourLocationAction) {
|
||||
if (action.loc.subscribed)
|
||||
Debounce.seconds(
|
||||
2,
|
||||
() => api
|
||||
.getYourLocationFireStats(store.state, action.loc)
|
||||
.then((result) => store.dispatch(result)));
|
||||
else {
|
||||
// FIXME do something?
|
||||
}
|
||||
}
|
||||
|
||||
if (action is SubscribeConfirmAction) {
|
||||
subscribeViaApi(store, action.loc, (sub) {
|
||||
store.dispatch(new UpdateLocalYourLocationAction(action.loc));
|
||||
store.dispatch(new UpdateYourLocationAction(action.loc));
|
||||
persistYourLocations(store.state.yourLocations);
|
||||
});
|
||||
}
|
||||
|
||||
if (action is UnSubscribeAction) {
|
||||
unsubsViaApi(store, action.loc.id, () {
|
||||
store.dispatch(new UpdateLocalYourLocationAction(action.loc));
|
||||
store.dispatch(new UpdateYourLocationAction(action.loc));
|
||||
persistYourLocations(store.state.yourLocations);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,13 @@ final fireMapReducer = combineReducers<FireMapState>([
|
|||
_subscribeConfirmYourLocationMap),
|
||||
new TypedReducer<FireMapState, UnSubscribeAction>(
|
||||
_unsubscribeYourLocationMap),
|
||||
new TypedReducer<FireMapState, EditYourLocationAction>(_editYourLocationMap),
|
||||
new TypedReducer<FireMapState, EditConfirmYourLocationAction>(
|
||||
_editConfirmYourLocationMap),
|
||||
new TypedReducer<FireMapState, EditCancelYourLocationAction>(
|
||||
_editCancelYourLocationMap),
|
||||
new TypedReducer<FireMapState, UpdateYourLocationMapAction>(
|
||||
_updateYourLocationMap)
|
||||
]);
|
||||
|
||||
FireMapState _updateYourLocationMapStats(
|
||||
|
|
@ -24,6 +31,11 @@ FireMapState _updateYourLocationMapStats(
|
|||
industries: action.industries);
|
||||
}
|
||||
|
||||
FireMapState _updateYourLocationMap(
|
||||
FireMapState state, UpdateYourLocationMapAction action) {
|
||||
return state.copyWith(yourLocation: action.loc);
|
||||
}
|
||||
|
||||
FireMapState _showYourLocationMap(
|
||||
FireMapState state, ShowYourLocationMapAction action) {
|
||||
return state.copyWith(
|
||||
|
|
@ -47,3 +59,21 @@ FireMapState _unsubscribeYourLocationMap(
|
|||
FireMapState state, UnSubscribeAction action) {
|
||||
return state.copyWith(status: FireMapStatus.view);
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
FireMapStatus restoreStatusAfterSave(loc) =>
|
||||
loc.subscribed ? FireMapStatus.unsubscribe : FireMapStatus.view;
|
||||
|
|
|
|||
|
|
@ -16,25 +16,6 @@ class AddedYourLocationAction extends YourLocationActions {
|
|||
AddedYourLocationAction(this.loc);
|
||||
}
|
||||
|
||||
class ShowYourLocationMapAction extends YourLocationActions {
|
||||
YourLocation loc;
|
||||
|
||||
ShowYourLocationMapAction(this.loc);
|
||||
}
|
||||
|
||||
class UpdateYourLocationMapStatsAction extends YourLocationActions {
|
||||
int numFires;
|
||||
List<dynamic> fires = [];
|
||||
List<dynamic> falsePos = [];
|
||||
List<dynamic> industries = [];
|
||||
|
||||
UpdateYourLocationMapStatsAction(
|
||||
{@required this.numFires,
|
||||
@required this.fires,
|
||||
@required this.falsePos,
|
||||
@required this.industries});
|
||||
}
|
||||
|
||||
class DeleteYourLocationAction extends YourLocationActions {
|
||||
YourLocation loc;
|
||||
|
||||
|
|
@ -47,10 +28,10 @@ class DeletedYourLocationAction extends YourLocationActions {
|
|||
DeletedYourLocationAction(this.id);
|
||||
}
|
||||
|
||||
class UpdateLocalYourLocationAction extends YourLocationActions {
|
||||
class UpdateYourLocationAction extends YourLocationActions {
|
||||
YourLocation loc;
|
||||
|
||||
UpdateLocalYourLocationAction(this.loc);
|
||||
UpdateYourLocationAction(this.loc);
|
||||
}
|
||||
|
||||
class ToggleSubscriptionAction extends YourLocationActions {
|
||||
|
|
@ -81,3 +62,19 @@ class UnSubscribeAction extends YourLocationActions {
|
|||
UnSubscribeAction(this.loc);
|
||||
}
|
||||
|
||||
class EditYourLocationAction extends YourLocationActions {
|
||||
YourLocation loc;
|
||||
|
||||
EditYourLocationAction(this.loc);
|
||||
}
|
||||
|
||||
class EditConfirmYourLocationAction extends YourLocationActions {
|
||||
YourLocation loc;
|
||||
|
||||
EditConfirmYourLocationAction(this.loc);
|
||||
}
|
||||
|
||||
class EditCancelYourLocationAction extends YourLocationActions {
|
||||
YourLocation loc;
|
||||
EditCancelYourLocationAction(this.loc);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ final yourLocationsReducer = combineReducers<List<YourLocation>>([
|
|||
_addedYourLocation),
|
||||
new TypedReducer<List<YourLocation>, DeletedYourLocationAction>(
|
||||
_deletedYourLocation),
|
||||
new TypedReducer<List<YourLocation>, UpdateLocalYourLocationAction>(
|
||||
_updateLocalYourLocation),
|
||||
new TypedReducer<List<YourLocation>, UpdateYourLocationAction>(
|
||||
_updateYourLocation),
|
||||
new TypedReducer<List<YourLocation>, ToggledSubscriptionAction>(
|
||||
_toggledSubscriptionAction)
|
||||
]);
|
||||
|
|
@ -26,8 +26,8 @@ List<YourLocation> _deletedYourLocation(
|
|||
.toList();
|
||||
}
|
||||
|
||||
List<YourLocation> _updateLocalYourLocation(
|
||||
List<YourLocation> yourLocations, UpdateLocalYourLocationAction action) {
|
||||
List<YourLocation> _updateYourLocation(
|
||||
List<YourLocation> yourLocations, UpdateYourLocationAction action) {
|
||||
return yourLocations
|
||||
.map((yourLocation) =>
|
||||
yourLocation.id == action.loc.id ? action.loc : yourLocation)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue