persist professional mode across page refreshes
isProModeActive was in-memory only — a browser refresh reset it to false even when the URL was a professional route. Fix: read/write 'isProModeActive' from SharedPreferences in ProfessionalProvider (constructor, toggleProMode, setIsProModeActive, logout). Also clear the flag in AuthProvider.isAuthenticated() when the user's proState is not active, so a stale value can't trap a non-pro user in professional mode. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
1870159dea
commit
577c4737ae
@@ -1,11 +1,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:prosapp_web_app/models/pro_state.dart';
|
||||
import 'package:prosapp_web_app/models/usuario.dart';
|
||||
import 'package:prosapp_web_app/providers/professional_form_provider.dart';
|
||||
import 'package:prosapp_web_app/providers/professional_provider.dart';
|
||||
import 'package:prosapp_web_app/providers/services_provider.dart';
|
||||
import 'package:prosapp_web_app/router/router.dart';
|
||||
import 'package:prosapp_web_app/services/api_service.dart';
|
||||
import 'package:prosapp_web_app/services/local_storage.dart';
|
||||
import 'package:prosapp_web_app/services/navigation_service.dart';
|
||||
import 'package:prosapp_web_app/services/notifications_service.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -179,6 +181,11 @@ class AuthProvider extends ChangeNotifier {
|
||||
final data = await _api.get('/auth/me');
|
||||
user = Usuario.fromDocument(data as Map<String, dynamic>);
|
||||
userAverageScore = await _loadAverageScore(user!.id);
|
||||
// If the user is not an active professional, clear the persisted pro mode
|
||||
// flag so a stale value doesn't leave them stuck in professional mode.
|
||||
if (user!.proState != ProState.active) {
|
||||
LocalStorage.prefs.setBool('isProModeActive', false);
|
||||
}
|
||||
authStatus = AuthStatus.authenticated;
|
||||
notifyListeners();
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user