phase3: null-safe store/ (AppState fields + reducers nullable)

This commit is contained in:
2026-07-24 13:31:34 +08:00
parent 4f9aa4f683
commit cef00db911
11 changed files with 42 additions and 42 deletions

View File

@@ -4,10 +4,10 @@ import 'package:redux/redux.dart';
import '../actions.dart'; import '../actions.dart';
final cartInfoReducer = combineReducers<List<CartInfo>>([ final cartInfoReducer = combineReducers<List<CartInfo>?>([
TypedReducer<List<CartInfo>, UpdateCartInfo>(_updateCartInfo) TypedReducer<List<CartInfo>?, UpdateCartInfo>(_updateCartInfo)
]); ]);
List<CartInfo> _updateCartInfo(List<CartInfo> cartInfos, action) { List<CartInfo>? _updateCartInfo(List<CartInfo>? cartInfos, action) {
return action.cartInfos; return action.cartInfos;
} }

View File

@@ -3,10 +3,10 @@ import 'package:flutter/material.dart';
import 'package:flutter_wisetronic/store/actions.dart'; import 'package:flutter_wisetronic/store/actions.dart';
import 'package:redux/redux.dart'; import 'package:redux/redux.dart';
final contextReducer = combineReducers<BuildContext>([ final contextReducer = combineReducers<BuildContext?>([
TypedReducer<BuildContext, UpdateContext>(_updateContext) TypedReducer<BuildContext?, UpdateContext>(_updateContext)
]); ]);
BuildContext _updateContext(BuildContext context, action) { BuildContext? _updateContext(BuildContext? context, action) {
return action.context; return action.context;
} }

View File

@@ -2,10 +2,10 @@ import 'package:redux/redux.dart';
import '../actions.dart'; import '../actions.dart';
final deviceIdReducer = combineReducers<String>([ final deviceIdReducer = combineReducers<String?>([
TypedReducer<String, UpdateDeviceId>(_updateDeviceId) TypedReducer<String?, UpdateDeviceId>(_updateDeviceId)
]); ]);
String _updateDeviceId(String deviceId, action) { String? _updateDeviceId(String? deviceId, action) {
return action.deviceId; return action.deviceId;
} }

View File

@@ -2,10 +2,10 @@ import 'package:redux/redux.dart';
import '../actions.dart'; import '../actions.dart';
final fcmtokenReducer = combineReducers<String>([ final fcmtokenReducer = combineReducers<String?>([
TypedReducer<String, UpdateFcmToken>(_updateFcmToken) TypedReducer<String?, UpdateFcmToken>(_updateFcmToken)
]); ]);
String _updateFcmToken(String token, action) { String? _updateFcmToken(String? token, action) {
return action.token; return action.token;
} }

View File

@@ -2,10 +2,10 @@ import 'package:redux/redux.dart';
import '../actions.dart'; import '../actions.dart';
final lastVisitReducer = combineReducers<List<int>>([ final lastVisitReducer = combineReducers<List<int>?>([
TypedReducer<List<int>, UpdateLastVisit>(_updateLastVisit) TypedReducer<List<int>?, UpdateLastVisit>(_updateLastVisit)
]); ]);
List<int> _updateLastVisit(List<int> lastVisit, action) { List<int>? _updateLastVisit(List<int>? lastVisit, action) {
return action.lastVisit; return action.lastVisit;
} }

View File

@@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
import 'package:flutter_wisetronic/store/actions.dart'; import 'package:flutter_wisetronic/store/actions.dart';
import 'package:redux/redux.dart'; import 'package:redux/redux.dart';
final localeReducer = combineReducers<Locale>([ final localeReducer = combineReducers<Locale?>([
TypedReducer<Locale, UpdateLocale>(_updateLocale) TypedReducer<Locale?, UpdateLocale>(_updateLocale)
]); ]);
Locale _updateLocale(Locale locale, action) { Locale? _updateLocale(Locale? locale, action) {
return action.locale; return action.locale;
} }

View File

@@ -3,10 +3,10 @@ import 'package:redux/redux.dart';
import '../../models/located_address.dart'; import '../../models/located_address.dart';
import '../actions.dart'; import '../actions.dart';
final locatedAddressReducer = combineReducers<LocatedAddress>([ final locatedAddressReducer = combineReducers<LocatedAddress?>([
TypedReducer<LocatedAddress, UpdateLocatedAddress>(_updateLocatedAddress) TypedReducer<LocatedAddress?, UpdateLocatedAddress>(_updateLocatedAddress)
]); ]);
LocatedAddress _updateLocatedAddress(LocatedAddress locatedAddress, action) { LocatedAddress? _updateLocatedAddress(LocatedAddress? locatedAddress, action) {
return action.locatedAddress; return action.locatedAddress;
} }

View File

@@ -2,10 +2,10 @@
import 'package:redux/redux.dart'; import 'package:redux/redux.dart';
import '../actions.dart'; import '../actions.dart';
final redirectRouteReducer = combineReducers<String>([ final redirectRouteReducer = combineReducers<String?>([
TypedReducer<String, UpdateRedirectRoute>(_updateRedirectRoute) TypedReducer<String?, UpdateRedirectRoute>(_updateRedirectRoute)
]); ]);
String _updateRedirectRoute(String route, action) { String? _updateRedirectRoute(String? route, action) {
return action.route; return action.route;
} }

View File

@@ -2,10 +2,10 @@ import 'package:redux/redux.dart';
import '../actions.dart'; import '../actions.dart';
final tableNumberReducer = combineReducers<String>([ final tableNumberReducer = combineReducers<String?>([
TypedReducer<String, UpdateTableNumber>(_updateTableNumber) TypedReducer<String?, UpdateTableNumber>(_updateTableNumber)
]); ]);
String _updateTableNumber(String tableNumber, action) { String? _updateTableNumber(String? tableNumber, action) {
return action.tableNumber; return action.tableNumber;
} }

View File

@@ -4,10 +4,10 @@ import 'package:flutter_wisetronic/models/user.dart';
import '../actions.dart'; import '../actions.dart';
final userReducer = combineReducers<User>([ final userReducer = combineReducers<User?>([
TypedReducer<User, UpdateCurrentUser>(_updateCurrentUser) TypedReducer<User?, UpdateCurrentUser>(_updateCurrentUser)
]); ]);
User _updateCurrentUser(User user, action) { User? _updateCurrentUser(User? user, action) {
return action.user; return action.user;
} }

View File

@@ -6,16 +6,16 @@ import '../../models/user.dart';
@immutable @immutable
class AppState { class AppState {
final BuildContext context; final BuildContext? context;
final Locale locale; final Locale? locale;
final User user; final User? user;
final String redirectRoute; final String? redirectRoute;
final List<CartInfo> cartInfos; final List<CartInfo>? cartInfos;
final LocatedAddress locatedAddress; final LocatedAddress? locatedAddress;
final String fcmToken; final String? fcmToken;
final List<int> lastVisit; final List<int>? lastVisit;
final String deviceId; final String? deviceId;
final String tableNumber; final String? tableNumber;
AppState({this.context, this.locale, this.user, this.redirectRoute, AppState({this.context, this.locale, this.user, this.redirectRoute,
this.cartInfos, this.locatedAddress, this.fcmToken, this.lastVisit, this.cartInfos, this.locatedAddress, this.fcmToken, this.lastVisit,
@@ -24,8 +24,8 @@ class AppState {
factory AppState.init() => AppState(); factory AppState.init() => AppState();
AppState copyWith({ AppState copyWith({
BuildContext context, BuildContext? context,
Locale locale}) { Locale? locale}) {
return AppState( return AppState(
context: context ?? this.context, context: context ?? this.context,
locale: locale ?? this.locale, locale: locale ?? this.locale,