Initial Flutter project added

This commit is contained in:
Abhishek Mali
2025-11-28 10:14:30 +05:30
commit 1df218c097
141 changed files with 5679 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../services/auth_service.dart';
class AuthProvider extends ChangeNotifier {
final AuthService _service = AuthService();
bool _loading = false;
bool get loading => _loading;
String? _token;
Map<String, dynamic>? _user;
String? get token => _token;
Map<String, dynamic>? get user => _user;
bool get isLoggedIn => _token != null && _token!.isNotEmpty;
AuthProvider() {
_loadFromPrefs();
}
Future<void> _loadFromPrefs() async {
final prefs = await SharedPreferences.getInstance();
_token = prefs.getString('token');
final userJson = prefs.getString('user');
if (userJson != null) {
try {
_user = Map<String, dynamic>.from(jsonDecode(userJson));
} catch (_) {
_user = null;
}
}
notifyListeners();
}
Future<Map<String, dynamic>> login(String loginId, String password) async {
_loading = true;
notifyListeners();
final res = await _service.login(loginId, password);
_loading = false;
if (res['success'] == true) {
final token = res['token']?.toString();
final userMap = res['user'] is Map ? Map<String, dynamic>.from(res['user']) : null;
if (token != null && userMap != null) {
await _saveSession(token, userMap);
}
}
notifyListeners();
return res;
}
Future<void> _saveSession(String token, Map<String, dynamic> userMap) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setString('token', token);
await prefs.setString('user', jsonEncode(userMap));
_token = token;
_user = userMap;
}
Future<void> logout() async {
// optional: call API logout if implemented
if (_token != null) {
try {
await _service.logout(_token!);
} catch (_) {}
}
final prefs = await SharedPreferences.getInstance();
await prefs.remove('token');
await prefs.remove('user');
_token = null;
_user = null;
notifyListeners();
}
}