From 336f7e8788b056a1fdb730cc1799c76ffa6eff03 Mon Sep 17 00:00:00 2001 From: juan Date: Mon, 21 Oct 2024 19:47:29 -0400 Subject: [PATCH] added pages --- lib/api_service.dart | 8 +------- lib/email.dart | 34 +++++++++++++++++++++++++++++++--- lib/home_page.dart | 19 +++++++++++++++---- 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/lib/api_service.dart b/lib/api_service.dart index 04e49bd..dde1576 100644 --- a/lib/api_service.dart +++ b/lib/api_service.dart @@ -11,7 +11,6 @@ import 'dart:html' as html; class ApiService { - // List emails = []; Future> fetchEmailsFromFolder( String folder, int pagenitaion) async { @@ -44,11 +43,6 @@ class ApiService { print('_displayEmailsFromFolder caught error: $e'); return []; } - print("Done"); - - // setState(() { - // emails = allEmails; - // }); } Future fetchThreads( @@ -88,7 +82,7 @@ class ApiService { if (response.statusCode == 200) { content += response.body; - content += "

end of mail





"; + content += "
"; } } } catch (e) { diff --git a/lib/email.dart b/lib/email.dart index dce99ae..303dc24 100644 --- a/lib/email.dart +++ b/lib/email.dart @@ -51,7 +51,9 @@ class EmailListScreen extends StatelessWidget { class EmailPage extends StatefulWidget { EmailPage({Key? key}) : super(key: key); String selectedFolder = "INBOX"; - + int offset = 0; + int page = 1; + @override EmailPageState createState() => EmailPageState(); } @@ -60,6 +62,12 @@ class EmailPageState extends State { final ApiService apiService = ApiService(); List emails = []; + @override + void initState() { + super.initState(); + widget.page = widget.page; + } + void updateSelectedFolder(String folder) { setState(() { widget.selectedFolder = folder; @@ -68,11 +76,31 @@ class EmailPageState extends State { _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 { // print(selectedFolder) try { - List fetchedEmails = - await apiService.fetchEmailsFromFolder(widget.selectedFolder, 0); + List fetchedEmails = await apiService + .fetchEmailsFromFolder(widget.selectedFolder, widget.offset); setState(() { emails = fetchedEmails; // Update the list of emails }); diff --git a/lib/home_page.dart b/lib/home_page.dart index 43f34c2..ff80efb 100644 --- a/lib/home_page.dart +++ b/lib/home_page.dart @@ -9,7 +9,6 @@ class HomeScreen extends StatefulWidget { _HomeScreenState createState() => _HomeScreenState(); } - class _HomeScreenState extends State { final GlobalKey _scaffoldKey = GlobalKey(); final GlobalKey _emailPageKey = GlobalKey(); @@ -21,7 +20,6 @@ class _HomeScreenState extends State { super.initState(); } - @override Widget build(BuildContext context) { return Scaffold( @@ -116,12 +114,25 @@ class _HomeScreenState extends State { ), ), Container( + // alignment: Alignment.topLeft, padding: EdgeInsets.all(8.0), color: Colors.white, child: Row( children: [ - Container( - child: Text('hiiiiiii'), + ElevatedButton( + 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), ), ], ),