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

fix: store member or librarian id in user state

parent 63f2dfc2
class User {
int id;
int accountId;
String username;
String email;
String? firstName;
String? lastName;
bool isStaff;
User(this.id, this.username, this.email, this.firstName, this.lastName,
this.isStaff);
User(this.id, this.accountId, this.username, this.email, this.firstName,
this.lastName, this.isStaff);
factory User.fromJson(Map<String, dynamic> data) {
return User(
data['id'] as int,
data['account_id'] as int,
data['username'] as String,
data['email'] as String,
data['first_name'] as String?,
......@@ -23,6 +25,7 @@ class User {
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['account_id'] = id;
data['email'] = email;
data['first_name'] = firstName;
data['last_name'] = lastName;
......@@ -33,6 +36,7 @@ class User {
final User initialUser = User(
1,
2,
"test_user",
"test@email.com",
"Test",
......
......@@ -160,7 +160,7 @@ class AuthProvider with ChangeNotifier {
Future<void> getMemberLoan(int id) async {
try {
final response = await http.get(
Uri.parse('$baseUrl/members/2/loans/'),
Uri.parse('$baseUrl/members/$id/loans/'),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ${token?.key}'
......
......@@ -51,7 +51,7 @@ class ListScreen extends StatelessWidget {
const BookList(),
// Loans
LoanList(
memberId: authProvider.user!.id,
memberId: authProvider.user?.accountId ?? 0,
),
// Profile
const Profile(),
......
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/widgets/card_shortcut.dart';
import 'package:library_app/src/widgets/navigations.dart';
import 'package:provider/provider.dart';
class HomePage extends StatelessWidget {
class HomePage extends StatefulWidget {
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
Widget build(BuildContext context) {
const title = "Home";
......
......@@ -5,23 +5,9 @@ import 'package:library_app/src/screens/form_screen.dart';
import 'package:library_app/src/widgets/navigations.dart';
import 'package:provider/provider.dart';
class Profile extends StatefulWidget {
class Profile extends StatelessWidget {
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
Widget build(BuildContext context) {
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