import 'dart:convert'; import 'package:flutter/material.dart'; import '../services/auth_service.dart'; class AuthProvider with ChangeNotifier { final AuthService _authService; String _token = ''; bool _isLoading = false; String _error = ''; AuthProvider({AuthService? authService}) : _authService = authService ?? AuthService(); String get token => _token; bool get isLoggedIn => _token.isNotEmpty; bool get isLoading => _isLoading; String get error => _error; Future login(String login, String password) async { _isLoading = true; _error = ''; notifyListeners(); try { var response = await _authService.login(login, password); var data = jsonDecode(response); _token = data['token']; notifyListeners(); } catch (e) { _error = e.toString(); notifyListeners(); rethrow; } finally { _isLoading = false; notifyListeners(); } } Future register( String login, String password, String secretKeyHash, ) async { _isLoading = true; _error = ''; notifyListeners(); try { await _authService.register(login, password, secretKeyHash); notifyListeners(); } catch (e) { _error = e.toString(); notifyListeners(); rethrow; } finally { _isLoading = false; notifyListeners(); } } void setError(String message) { _error = message; notifyListeners(); } void logout() { _token = ''; notifyListeners(); } }