Commit d2603bdf authored by Ilham Maulana's avatar Ilham Maulana 💻

fix: store member or librarian id in user state

parent 63f2dfc2
class User { class User {
int id; int id;
int accountId;
String username; String username;
String email; String email;
String? firstName; String? firstName;
String? lastName; String? lastName;
bool isStaff; bool isStaff;
User(this.id, this.username, this.email, this.firstName, this.lastName, User(this.id, this.accountId, this.username, this.email, this.firstName,
this.isStaff); this.lastName, this.isStaff);
factory User.fromJson(Map<String, dynamic> data) { factory User.fromJson(Map<String, dynamic> data) {
return User( return User(
data['id'] as int, data['id'] as int,
data['account_id'] as int,
data['username'] as String, data['username'] as String,
data['email'] as String, data['email'] as String,
data['first_name'] as String?, data['first_name'] as String?,
...@@ -23,6 +25,7 @@ class User { ...@@ -23,6 +25,7 @@ class User {
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{}; final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id; data['id'] = id;
data['account_id'] = id;
data['email'] = email; data['email'] = email;
data['first_name'] = firstName; data['first_name'] = firstName;
data['last_name'] = lastName; data['last_name'] = lastName;
...@@ -33,6 +36,7 @@ class User { ...@@ -33,6 +36,7 @@ class User {
final User initialUser = User( final User initialUser = User(
1, 1,
2,
"test_user", "test_user",
"test@email.com", "test@email.com",
"Test", "Test",
......
...@@ -160,7 +160,7 @@ class AuthProvider with ChangeNotifier { ...@@ -160,7 +160,7 @@ class AuthProvider with ChangeNotifier {
Future<void> getMemberLoan(int id) async { Future<void> getMemberLoan(int id) async {
try { try {
final response = await http.get( final response = await http.get(
Uri.parse('$baseUrl/members/2/loans/'), Uri.parse('$baseUrl/members/$id/loans/'),
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'Authorization': 'Bearer ${token?.key}' 'Authorization': 'Bearer ${token?.key}'
......
...@@ -51,7 +51,7 @@ class ListScreen extends StatelessWidget { ...@@ -51,7 +51,7 @@ class ListScreen extends StatelessWidget {
const BookList(), const BookList(),
// Loans // Loans
LoanList( LoanList(
memberId: authProvider.user!.id, memberId: authProvider.user?.accountId ?? 0,
), ),
// Profile // Profile
const Profile(), const Profile(),
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:library_app/src/providers/auth_provider.dart';
import 'package:library_app/src/providers/navigations_provider.dart'; import 'package:library_app/src/providers/navigations_provider.dart';
import 'package:library_app/src/widgets/card_shortcut.dart'; import 'package:library_app/src/widgets/card_shortcut.dart';
import 'package:library_app/src/widgets/navigations.dart'; import 'package:library_app/src/widgets/navigations.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class HomePage extends StatelessWidget { class HomePage extends StatefulWidget {
const HomePage({super.key}); const HomePage({super.key});
@override
State<HomePage> createState() => _HomePage();
}
class _HomePage extends State<HomePage> {
@override
void initState() {
super.initState();
Future.delayed(
Duration.zero,
() => Provider.of<AuthProvider>(context, listen: false).getUserDetail(),
);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
const title = "Home"; const title = "Home";
......
...@@ -5,23 +5,9 @@ import 'package:library_app/src/screens/form_screen.dart'; ...@@ -5,23 +5,9 @@ import 'package:library_app/src/screens/form_screen.dart';
import 'package:library_app/src/widgets/navigations.dart'; import 'package:library_app/src/widgets/navigations.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class Profile extends StatefulWidget { class Profile extends StatelessWidget {
const Profile({super.key}); const Profile({super.key});
@override
State<Profile> createState() => _Profile();
}
class _Profile extends State<Profile> {
@override
void initState() {
super.initState();
Future.delayed(
Duration.zero,
() => Provider.of<AuthProvider>(context, listen: false).getUserDetail(),
);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<AuthProvider>( return Consumer<AuthProvider>(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment