invoice/lib/redux/static/static_reducer.dart

61 lines
1.8 KiB
Dart

import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/static/static_state.dart';
import 'package:redux/redux.dart';
Reducer<StaticState> staticReducer = combineReducers([
TypedReducer<StaticState, LoadStaticSuccess>(staticLoadedReducer),
]);
StaticState staticLoadedReducer(
StaticState staticState, LoadStaticSuccess action) {
final data = action.data;
return StaticState().rebuild((b) => b
..updatedAt = DateTime.now().millisecondsSinceEpoch
..templateMap.replace(data.templates)
..currencyMap.addAll(Map.fromIterable(
data.currencies,
key: (dynamic item) => item.id,
value: (dynamic item) => item,
))
..sizeMap.addAll(Map.fromIterable(
data.sizes,
key: (dynamic item) => item.id,
value: (dynamic item) => item,
))
..industryMap.addAll(Map.fromIterable(
data.industries,
key: (dynamic item) => item.id,
value: (dynamic item) => item,
))
..timezoneMap.addAll(Map.fromIterable(
data.timezones,
key: (dynamic item) => item.id,
value: (dynamic item) => item,
))
..dateFormatMap.addAll(Map.fromIterable(
data.dateFormats,
key: (dynamic item) => item.id,
value: (dynamic item) => item,
))
..languageMap.addAll(Map.fromIterable(
data.languages,
key: (dynamic item) => item.id,
value: (dynamic item) => item,
))
..paymentTypeMap.addAll(Map.fromIterable(
data.paymentTypes,
key: (dynamic item) => item.id,
value: (dynamic item) => item,
))
..countryMap.addAll(Map.fromIterable(
data.countries,
key: (dynamic item) => item.id,
value: (dynamic item) => item,
))
..gatewayMap.addAll(Map.fromIterable(
data.gateways,
key: (dynamic item) => item.id,
value: (dynamic item) => item,
)));
}