fix(mining-app): sellRestrictionProvider 绑定用户身份,避免跨账号缓存污染
[问题] sellRestrictionProvider 未绑定用户身份。若先用预种账号(isRestricted=true) 测试,再切换为正式认种账号,Riverpod keepAlive 缓存会在 2 分钟内残留上一个用户 的 true 值,导致正式认种用户错误看到预种卖出限制提示。 [修复] 在 provider 内 watch userNotifierProvider.select((s) => s.accountSequence), accountSequence 变化(登录/切换账号)时 provider 自动失效并重新请求。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
59097203ae
commit
2b07219046
|
|
@ -8,6 +8,7 @@ import '../../domain/entities/kline.dart';
|
||||||
import '../../domain/repositories/trading_repository.dart';
|
import '../../domain/repositories/trading_repository.dart';
|
||||||
import '../../data/models/trade_order_model.dart';
|
import '../../data/models/trade_order_model.dart';
|
||||||
import '../../core/di/injection.dart';
|
import '../../core/di/injection.dart';
|
||||||
|
import 'user_providers.dart';
|
||||||
|
|
||||||
// Repository Provider
|
// Repository Provider
|
||||||
final tradingRepositoryProvider = Provider<TradingRepository>((ref) {
|
final tradingRepositoryProvider = Provider<TradingRepository>((ref) {
|
||||||
|
|
@ -32,7 +33,11 @@ final buyEnabledProvider = FutureProvider<bool>((ref) async {
|
||||||
});
|
});
|
||||||
|
|
||||||
// 预种卖出限制状态 Provider (2分钟缓存,fail-open)
|
// 预种卖出限制状态 Provider (2分钟缓存,fail-open)
|
||||||
|
// 依赖当前用户 accountSequence,账号切换时自动重新请求,避免跨账号缓存污染
|
||||||
final sellRestrictionProvider = FutureProvider<bool>((ref) async {
|
final sellRestrictionProvider = FutureProvider<bool>((ref) async {
|
||||||
|
// 绑定用户身份:accountSequence 变化(登录/切换账号)时自动失效重新请求
|
||||||
|
ref.watch(userNotifierProvider.select((s) => s.accountSequence));
|
||||||
|
|
||||||
final repository = ref.watch(tradingRepositoryProvider);
|
final repository = ref.watch(tradingRepositoryProvider);
|
||||||
final result = await repository.getSellRestriction();
|
final result = await repository.getSellRestriction();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue