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

fix: combine member list screen and user list screen

parent cda1cc72
...@@ -2,14 +2,13 @@ import 'package:flutter/material.dart'; ...@@ -2,14 +2,13 @@ import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:library_app/src/screens/admin_list_screen.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:library_app/src/providers/auth_provider.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/providers/book_provider.dart'; import 'package:library_app/src/providers/book_provider.dart';
import 'package:library_app/src/screens/form_screen.dart'; import 'package:library_app/src/screens/form_screen.dart';
import 'package:library_app/src/screens/list_screen.dart'; import 'package:library_app/src/screens/list/list_screen.dart';
void main() { void main() {
runApp(const LibraryApp()); runApp(const LibraryApp());
...@@ -44,14 +43,9 @@ class _LibraryApp extends State<LibraryApp> { ...@@ -44,14 +43,9 @@ class _LibraryApp extends State<LibraryApp> {
), ),
home: Consumer<AuthProvider>( home: Consumer<AuthProvider>(
builder: (context, authProvider, child) { builder: (context, authProvider, child) {
final user = authProvider.user;
final isAuthenticated = authProvider.isAuthenticated; final isAuthenticated = authProvider.isAuthenticated;
return isAuthenticated return isAuthenticated ? const ListScreen() : const LoginScreen();
? user != null && user.isStaff
? const AdminListScreen()
: const ListScreen()
: const LoginScreen();
}, },
), ),
scrollBehavior: AdaptiveScrollBehavior(), scrollBehavior: AdaptiveScrollBehavior(),
......
...@@ -39,12 +39,19 @@ class AuthProvider with ChangeNotifier { ...@@ -39,12 +39,19 @@ class AuthProvider with ChangeNotifier {
String? token = await getAccessToken(); String? token = await getAccessToken();
bool isValid = token != null; bool isValid = token != null;
if (isValid) { if (!isValid) {
isAuthenticated = true; isAuthenticated = false;
} }
isAuthenticated = true;
} }
Future<void> signIn(String username, String password) async { Future<void> signIn(String username, String password) async {
final token = await getAccessToken();
if (token != null) {
validateToken();
}
try { try {
final response = await http.post( final response = await http.post(
Uri.parse('$baseUrl/auth/login'), Uri.parse('$baseUrl/auth/login'),
...@@ -56,11 +63,6 @@ class AuthProvider with ChangeNotifier { ...@@ -56,11 +63,6 @@ class AuthProvider with ChangeNotifier {
final data = jsonDecode(response.body); final data = jsonDecode(response.body);
await storeAccessToken(Token.fromJson(data)!.key); await storeAccessToken(Token.fromJson(data)!.key);
final token = await getAccessToken();
if (token != null) {
validateToken();
}
invalidUsernameOrPassword = false; invalidUsernameOrPassword = false;
debugPrint("Login successful $token"); debugPrint("Login successful $token");
} else if (response.statusCode == 401) { } else if (response.statusCode == 401) {
......
import 'package:flutter/material.dart';
import 'package:library_app/src/providers/auth_provider.dart';
import 'package:library_app/src/screens/list/admin_list_screen.dart';
import 'package:library_app/src/screens/list/member_list_screen.dart';
import 'package:provider/provider.dart';
class ListScreen extends StatelessWidget {
const ListScreen({super.key});
@override
Widget build(BuildContext context) {
final user = Provider.of<AuthProvider>(context).user;
if (user != null && user.isStaff) {
return const AdminListScreen();
}
return const MemberListScreen();
}
}
...@@ -10,14 +10,14 @@ import 'package:library_app/src/widgets/loans/loan_list.dart'; ...@@ -10,14 +10,14 @@ import 'package:library_app/src/widgets/loans/loan_list.dart';
import 'package:library_app/src/widgets/profile.dart'; import 'package:library_app/src/widgets/profile.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class ListScreen extends StatefulWidget { class MemberListScreen extends StatefulWidget {
const ListScreen({super.key}); const MemberListScreen({super.key});
@override @override
State<ListScreen> createState() => _ListScreen(); State<MemberListScreen> createState() => _MemberListScreen();
} }
class _ListScreen extends State<ListScreen> { class _MemberListScreen extends State<MemberListScreen> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
......
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