added pages
This commit is contained in:
		
							parent
							
								
									a34ca6512e
								
							
						
					
					
						commit
						336f7e8788
					
				
					 3 changed files with 47 additions and 14 deletions
				
			
		| 
						 | 
					@ -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) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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),
 | 
				
			||||||
                          ),
 | 
					                          ),
 | 
				
			||||||
                        ],
 | 
					                        ],
 | 
				
			||||||
                      ),
 | 
					                      ),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue