From 743c7af60416349e6edbc8f49024e30b6caf4c90 Mon Sep 17 00:00:00 2001 From: SurendarSuri30 Date: Sat, 6 Sep 2025 17:55:58 +0530 Subject: [PATCH] login, agent and staff added --- .../providers/manager_provider.dart | 1 + .../screens/dashboard/dashboard.dart | 5 +- .../screens/login/login_screen.dart | 65 +++++++++++++++---- 3 files changed, 57 insertions(+), 14 deletions(-) diff --git a/lib/presentation/providers/manager_provider.dart b/lib/presentation/providers/manager_provider.dart index 518db52..a03cf55 100644 --- a/lib/presentation/providers/manager_provider.dart +++ b/lib/presentation/providers/manager_provider.dart @@ -1,3 +1,4 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; final managerIdProvider = StateProvider((ref) => null); +final userIdProvider = StateProvider((ref) => null); diff --git a/lib/presentation/screens/dashboard/dashboard.dart b/lib/presentation/screens/dashboard/dashboard.dart index e12c329..cce3f59 100644 --- a/lib/presentation/screens/dashboard/dashboard.dart +++ b/lib/presentation/screens/dashboard/dashboard.dart @@ -14,10 +14,11 @@ class DashboardScreen extends ConsumerStatefulWidget { class _DashboardScreenState extends ConsumerState { @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")), ); } } diff --git a/lib/presentation/screens/login/login_screen.dart b/lib/presentation/screens/login/login_screen.dart index f57868e..47d2cbb 100644 --- a/lib/presentation/screens/login/login_screen.dart +++ b/lib/presentation/screens/login/login_screen.dart @@ -131,24 +131,65 @@ class _LoginScreenState extends ConsumerState { // final userRole = ref.watch(userRoleProvider); } - Future _saveManagerId(String token) async { - Map? decodedToken = await Jwt.parseJwt(token); + Future _saveIdsFromToken(String token) async { + final Map 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 _saveManagerId(String token) async { + // Map? 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 sendMobileOrEmailVerify(loginUser) async { try { if (_formKey.currentState!.validate()) { @@ -266,7 +307,7 @@ class _LoginScreenState extends ConsumerState { 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);