login, agent and staff added

This commit is contained in:
Surendiran 2025-09-06 17:55:58 +05:30
parent 7ebf5356ad
commit 743c7af604
3 changed files with 57 additions and 14 deletions

View File

@ -1,3 +1,4 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
final managerIdProvider = StateProvider<int?>((ref) => null);
final userIdProvider = StateProvider<int?>((ref) => null);

View File

@ -14,10 +14,11 @@ class DashboardScreen extends ConsumerStatefulWidget {
class _DashboardScreenState extends ConsumerState<DashboardScreen> {
@override
Widget build(BuildContext context) {
final mangerId = ref.watch(managerIdProvider);
final managerId = ref.watch(managerIdProvider);
final userId = ref.watch(userIdProvider);
return MainLayout(
title: "Home",
body: Center(child: Text("Dashboard Page Content $mangerId")),
body: Center(child: Text("Dashboard Page Content $managerId $userId")),
);
}
}

View File

@ -131,24 +131,65 @@ class _LoginScreenState extends ConsumerState<LoginScreen> {
// final userRole = ref.watch(userRoleProvider);
}
Future<void> _saveManagerId(String token) async {
Map<String, dynamic>? decodedToken = await Jwt.parseJwt(token);
Future<void> _saveIdsFromToken(String token) async {
final Map<String, dynamic> decodedToken = Jwt.parseJwt(token);
print('decodedToken : $decodedToken');
final dynamic managerIdRaw = decodedToken['data']?['manager_id'];
final int? managerId = managerIdRaw is int
? managerIdRaw
: int.tryParse(managerIdRaw.toString());
if (managerId != null) {
ref.read(managerIdProvider.notifier).state = managerId;
print("Manager ID saved globally: $managerId");
final dynamic data = decodedToken['data'];
if (data != null) {
// Manager ID
final dynamic managerIdRaw = data['manager_id'];
final int? managerId = managerIdRaw is int
? managerIdRaw
: int.tryParse(managerIdRaw.toString());
if (managerId != null) {
ref.read(managerIdProvider.notifier).state = managerId;
print("✅ Manager ID saved globally: $managerId");
} else {
print("⚠️ Manager ID is null or invalid");
}
// User ID
final dynamic userIdRaw = data['id'];
final int? userId =
userIdRaw is int ? userIdRaw : int.tryParse(userIdRaw.toString());
if (userId != null) {
ref.read(userIdProvider.notifier).state = userId;
print("✅ User ID saved globally: $userId");
} else {
print("⚠️ User ID is null or invalid");
}
} else {
print("Manager ID is null or invalid");
print("⚠️ No data found in decodedToken");
}
print(managerId);
// final managerId = ref.watch(managerIdProvider);
// final userId = ref.watch(userIdProvider);
}
// Future<void> _saveManagerId(String token) async {
// Map<String, dynamic>? decodedToken = await Jwt.parseJwt(token);
// print('decodedToken : $decodedToken');
// final dynamic managerIdRaw = decodedToken['data']?['manager_id'];
// final int? managerId = managerIdRaw is int
// ? managerIdRaw
// : int.tryParse(managerIdRaw.toString());
//
// if (managerId != null) {
// ref.read(managerIdProvider.notifier).state = managerId;
// print("Manager ID saved globally: $managerId");
// } else {
// print("Manager ID is null or invalid");
// }
// print(managerId);
// // final managerId = ref.watch(managerIdProvider);
// }
Future<void> sendMobileOrEmailVerify(loginUser) async {
try {
if (_formKey.currentState!.validate()) {
@ -266,7 +307,7 @@ class _LoginScreenState extends ConsumerState<LoginScreen> {
ToastHelper.showSuccessToast(context, 'OTP verified successfully');
await AuthService.saveToken(token);
await _saveUserRole(token);
await _saveManagerId(token);
await _saveIdsFromToken(token);
final managerId = ref.watch(managerIdProvider);
print('managerId -- $managerId');
final userRole = ref.watch(userRoleProvider);