Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
library-app-flutter
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ilham Maulana
library-app-flutter
Commits
6c33449f
Commit
6c33449f
authored
Jul 31, 2024
by
Ilham Maulana
💻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: drawer categories
parent
f3277584
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
56 additions
and
8 deletions
+56
-8
book_provider.dart
lib/src/providers/book_provider.dart
+5
-5
list_screen.dart
lib/src/screens/list_screen.dart
+43
-3
book_list.dart
lib/src/widgets/books/book_list.dart
+8
-0
No files found.
lib/src/providers/book_provider.dart
View file @
6c33449f
...
...
@@ -6,6 +6,8 @@ import 'package:http/http.dart' as http;
class
BookProvider
with
ChangeNotifier
{
String
baseUrl
=
'http://localhost:8000/api/v1'
;
List
<
dynamic
>?
books
;
List
<
dynamic
>?
categories
;
Category
?
category
;
BookProvider
({
this
.
books
});
...
...
@@ -60,10 +62,9 @@ class BookProvider with ChangeNotifier {
if
(
response
.
statusCode
==
200
)
{
final
data
=
jsonDecode
(
response
.
body
);
book
s
=
data
[
"results"
];
categorie
s
=
data
[
"results"
];
}
else
{
final
code
=
response
.
statusCode
;
debugPrint
(
"Error: Fetch books failed,
$code
"
);
debugPrint
(
"Error: Fetch books failed,
${response.statusCode}
"
);
}
notifyListeners
();
...
...
@@ -81,8 +82,7 @@ class BookProvider with ChangeNotifier {
if
(
response
.
statusCode
==
200
)
{
final
data
=
jsonDecode
(
response
.
body
);
var
category
=
data
[
"results"
];
return
category
;
category
=
data
;
}
else
{
final
code
=
response
.
statusCode
;
debugPrint
(
"Error: Fetch books failed,
$code
"
);
...
...
lib/src/screens/list_screen.dart
View file @
6c33449f
import
'package:flutter/material.dart'
;
import
'package:library_app/src/models/category.dart'
;
import
'package:library_app/src/providers/auth_provider.dart'
;
import
'package:library_app/src/providers/book_provider.dart'
;
import
'package:library_app/src/providers/navigations_provider.dart'
;
import
'package:library_app/src/widgets/books/book_list.dart'
;
...
...
@@ -8,13 +10,32 @@ import 'package:library_app/src/widgets/loans/loan_list.dart';
import
'package:library_app/src/widgets/profile.dart'
;
import
'package:provider/provider.dart'
;
class
ListScreen
extends
State
less
Widget
{
class
ListScreen
extends
State
ful
Widget
{
const
ListScreen
({
super
.
key
});
@override
State
<
ListScreen
>
createState
()
=>
_ListScreen
();
}
class
_ListScreen
extends
State
<
ListScreen
>
{
@override
void
initState
()
{
super
.
initState
();
Provider
.
of
<
BookProvider
>(
context
,
listen:
false
).
getCategories
();
}
@override
Widget
build
(
BuildContext
context
)
{
return
Consumer2
<
NavigationsProvider
,
AuthProvider
>(
builder:
(
context
,
navProvider
,
authProvider
,
child
)
{
return
Consumer3
<
NavigationsProvider
,
AuthProvider
,
BookProvider
>(
builder:
(
context
,
navProvider
,
authProvider
,
bookProvider
,
child
)
{
Iterable
<
Category
>?
category
;
if
(
bookProvider
.
categories
!=
null
)
{
category
=
bookProvider
.
categories
!.
map
(
(
data
)
{
return
Category
(
data
[
"name"
]);
},
);
}
return
Scaffold
(
bottomNavigationBar:
NavigationBar
(
onDestinationSelected:
(
int
index
)
{
...
...
@@ -56,6 +77,25 @@ class ListScreen extends StatelessWidget {
// Profile
const
Profile
(),
][
navProvider
.
currentPageIndex
],
drawer:
Drawer
(
child:
ListView
(
padding:
EdgeInsets
.
zero
,
children:
List
.
generate
(
category
!=
null
?
category
.
length
:
0
,
(
index
)
{
if
(
category
!=
null
)
{
return
ListTile
(
title:
Text
(
category
.
elementAt
(
index
).
name
),
onTap:
()
{
Navigator
.
pop
(
context
);
},
);
}
return
Container
();
},
),
),
),
);
},
);
...
...
lib/src/widgets/books/book_list.dart
View file @
6c33449f
...
...
@@ -116,6 +116,14 @@ class _TopAppBar extends State<TopAppBar> {
],
),
],
leading:
!
showWidget
?
IconButton
(
onPressed:
()
{
Scaffold
.
of
(
context
).
openDrawer
();
},
icon:
const
Icon
(
Icons
.
menu
),
)
:
null
,
elevation:
10.0
,
automaticallyImplyLeading:
false
,
expandedHeight:
50
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment