added pages

This commit is contained in:
Juan Marulanda De Los Rios 2024-10-21 19:47:29 -04:00
parent a34ca6512e
commit 336f7e8788
3 changed files with 47 additions and 14 deletions

View File

@ -11,7 +11,6 @@ import 'dart:html' as html;
class ApiService { class ApiService {
// List emails = [];
Future<List<GetThreadResponse>> fetchEmailsFromFolder( Future<List<GetThreadResponse>> fetchEmailsFromFolder(
String folder, int pagenitaion) async { String folder, int pagenitaion) async {
@ -44,11 +43,6 @@ class ApiService {
print('_displayEmailsFromFolder caught error: $e'); print('_displayEmailsFromFolder caught error: $e');
return []; return [];
} }
print("Done");
// setState(() {
// emails = allEmails;
// });
} }
Future<void> fetchThreads( Future<void> fetchThreads(
@ -88,7 +82,7 @@ class ApiService {
if (response.statusCode == 200) { if (response.statusCode == 200) {
content += response.body; content += response.body;
content += "<p>end of mail</p><br><br><br><hr>"; content += "<hr>";
} }
} }
} catch (e) { } catch (e) {

View File

@ -51,6 +51,8 @@ class EmailListScreen extends StatelessWidget {
class EmailPage extends StatefulWidget { class EmailPage extends StatefulWidget {
EmailPage({Key? key}) : super(key: key); EmailPage({Key? key}) : super(key: key);
String selectedFolder = "INBOX"; String selectedFolder = "INBOX";
int offset = 0;
int page = 1;
@override @override
EmailPageState createState() => EmailPageState(); EmailPageState createState() => EmailPageState();
@ -60,6 +62,12 @@ class EmailPageState extends State<EmailPage> {
final ApiService apiService = ApiService(); final ApiService apiService = ApiService();
List<GetThreadResponse> emails = []; List<GetThreadResponse> emails = [];
@override
void initState() {
super.initState();
widget.page = widget.page;
}
void updateSelectedFolder(String folder) { void updateSelectedFolder(String folder) {
setState(() { setState(() {
widget.selectedFolder = folder; widget.selectedFolder = folder;
@ -68,11 +76,31 @@ class EmailPageState extends State<EmailPage> {
_fetchEmails(); _fetchEmails();
} }
String getPage() {
return widget.page.toString();
}
void updatePagenation(String option) {
if (option == "next") {
setState(() {
widget.offset += 20;
widget.page += 1;
});
} else if (option == "back") {
setState(() {
widget.offset -= 20;
widget.page -= 1;
});
}
// print(currentPage);
_fetchEmails();
}
void _fetchEmails() async { void _fetchEmails() async {
// print(selectedFolder) // print(selectedFolder)
try { try {
List<GetThreadResponse> fetchedEmails = List<GetThreadResponse> fetchedEmails = await apiService
await apiService.fetchEmailsFromFolder(widget.selectedFolder, 0); .fetchEmailsFromFolder(widget.selectedFolder, widget.offset);
setState(() { setState(() {
emails = fetchedEmails; // Update the list of emails emails = fetchedEmails; // Update the list of emails
}); });

View File

@ -9,7 +9,6 @@ class HomeScreen extends StatefulWidget {
_HomeScreenState createState() => _HomeScreenState(); _HomeScreenState createState() => _HomeScreenState();
} }
class _HomeScreenState extends State<HomeScreen> { class _HomeScreenState extends State<HomeScreen> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>(); final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
final GlobalKey<EmailPageState> _emailPageKey = GlobalKey<EmailPageState>(); final GlobalKey<EmailPageState> _emailPageKey = GlobalKey<EmailPageState>();
@ -21,7 +20,6 @@ class _HomeScreenState extends State<HomeScreen> {
super.initState(); super.initState();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
@ -116,12 +114,25 @@ class _HomeScreenState extends State<HomeScreen> {
), ),
), ),
Container( Container(
// alignment: Alignment.topLeft,
padding: EdgeInsets.all(8.0), padding: EdgeInsets.all(8.0),
color: Colors.white, color: Colors.white,
child: Row( child: Row(
children: [ children: [
Container( ElevatedButton(
child: Text('hiiiiiii'), onPressed: () {
_emailPageKey.currentState
?.updatePagenation('back');
},
child: Icon(Icons.navigate_before),
),
Text(_emailPageKey.currentState?.getPage() ?? '1'),
ElevatedButton(
onPressed: () {
_emailPageKey.currentState
?.updatePagenation('next');
},
child: Icon(Icons.navigate_next),
), ),
], ],
), ),