More redux work

This commit is contained in:
vjrj 2018-06-28 18:52:48 +02:00
parent 7dddf03e32
commit 657fecdf17
9 changed files with 278 additions and 219 deletions

View file

@ -78,7 +78,12 @@ class AppState extends Object with _$AppStateSerializerMixin {
typedef void AddYourLocationFunction(YourLocation loc);
typedef void DeleteYourLocationFunction(ObjectId id);
typedef void UpdateYourLocationFunction(ObjectId id, YourLocation loc);
typedef void ToggleSubscriptionFunction(YourLocation loc);
typedef void SubscribeFunction(ObjectId id);
typedef void UnSubscribeFunction(ObjectId id);
typedef void OnLocationTapFunction(YourLocation loc);
typedef void OnSubscribeFunction(YourLocation loc);
typedef void OnUnSubscribeFunction(YourLocation loc);
typedef void OnSubscribeConfirmedFunction(YourLocation loc);
// unused
// typedef void UpdateYourLocationFunction(ObjectId id, YourLocation loc);

View file

@ -1,27 +1,33 @@
import 'package:meta/meta.dart';
enum FireMapOperation { view, subscriptionConfirm, unsubscribe }
import 'package:fires_flutter/models/yourLocation.dart';
import 'package:redux/redux.dart';
enum FireMapStatus { view, subscriptionConfirm, unsubscribe }
@immutable
class FireMapState {
final FireMapOperation currentOperation;
final FireMapStatus status;
final YourLocation yourLocation;
const FireMapState.initial(): this.currentOperation = FireMapOperation.view;
const FireMapState.initial(): this.status = FireMapStatus.view, this.yourLocation = null;
FireMapState({this.currentOperation: FireMapOperation.view});
FireMapState({this.status: FireMapStatus.view, this.yourLocation});
FireMapState copyWith({FireMapStatus status, YourLocation yourLocation}) {
return new FireMapState(
yourLocation: yourLocation ?? this.yourLocation,
status: status ?? this.status);
}
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is FireMapState &&
runtimeType == other.runtimeType &&
currentOperation == other.currentOperation;
status == other.status &&
yourLocation == other.yourLocation;
@override
int get hashCode => currentOperation.hashCode;
FireMapState copyWith({FireMapOperation currentOperation}) {
return new FireMapState(
currentOperation: currentOperation ?? this.currentOperation);
}
int get hashCode =>
status.hashCode ^
yourLocation.hashCode;
}

View file

@ -51,7 +51,6 @@ class FiresApi {
var el = dataSubscriptions[i];
var lat = el['location']['lat'];
var lon = el['location']['lon'];
var id = el['_id']['_str'];
subscribed.add(new YourLocation(
id: ObjectId.fromHexString(el['_id']['_str']),
lat: lat,