got back the functionality of switching between folders
This commit is contained in:
		
							parent
							
								
									83592472d4
								
							
						
					
					
						commit
						a34ca6512e
					
				
					 4 changed files with 40 additions and 160 deletions
				
			
		| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
import 'api_service.dart';
 | 
					import 'api_service.dart';
 | 
				
			||||||
import 'structs.dart';
 | 
					import 'structs.dart';
 | 
				
			||||||
import 'folder_drawer.dart';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class EmailListScreen extends StatelessWidget {
 | 
					class EmailListScreen extends StatelessWidget {
 | 
				
			||||||
  final List<GetThreadResponse> emails;
 | 
					  final List<GetThreadResponse> emails;
 | 
				
			||||||
| 
						 | 
					@ -13,15 +11,13 @@ class EmailListScreen extends StatelessWidget {
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  Widget build(BuildContext context) {
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
    return Scaffold(
 | 
					    return Scaffold(
 | 
				
			||||||
      appBar: AppBar(
 | 
					 | 
				
			||||||
        title: Text('Emails'),
 | 
					 | 
				
			||||||
      ),
 | 
					 | 
				
			||||||
      body: ListView.separated(
 | 
					      body: ListView.separated(
 | 
				
			||||||
        itemCount: emails.length,
 | 
					        itemCount: emails.length,
 | 
				
			||||||
        itemBuilder: (context, index) {
 | 
					        itemBuilder: (context, index) {
 | 
				
			||||||
          final email = emails[index];
 | 
					          final email = emails[index];
 | 
				
			||||||
          return ListTile(
 | 
					          return ListTile(
 | 
				
			||||||
            title: Text(email.from_name, style: TextStyle(fontWeight: FontWeight.bold)),
 | 
					            title: Text(email.from_name,
 | 
				
			||||||
 | 
					                style: TextStyle(fontWeight: FontWeight.bold)),
 | 
				
			||||||
            subtitle: Column(
 | 
					            subtitle: Column(
 | 
				
			||||||
              crossAxisAlignment: CrossAxisAlignment.start,
 | 
					              crossAxisAlignment: CrossAxisAlignment.start,
 | 
				
			||||||
              children: [Text(email.subject)],
 | 
					              children: [Text(email.subject)],
 | 
				
			||||||
| 
						 | 
					@ -52,32 +48,43 @@ class EmailListScreen extends StatelessWidget {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
class EmailPage extends StatefulWidget {
 | 
					class EmailPage extends StatefulWidget {
 | 
				
			||||||
 | 
					  EmailPage({Key? key}) : super(key: key);
 | 
				
			||||||
 | 
					  String selectedFolder = "INBOX";
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  _EmailPageState createState() => _EmailPageState();
 | 
					  EmailPageState createState() => EmailPageState();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class _EmailPageState extends State<EmailPage> {
 | 
					class EmailPageState extends State<EmailPage> {
 | 
				
			||||||
  final ApiService apiService = ApiService();
 | 
					  final ApiService apiService = ApiService();
 | 
				
			||||||
  List<GetThreadResponse> emails = [];
 | 
					  List<GetThreadResponse> emails = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Function to handle folder selection
 | 
					  void updateSelectedFolder(String folder) {
 | 
				
			||||||
  void _onFolderSelected(String folder) async {
 | 
					 | 
				
			||||||
    List<GetThreadResponse> fetchedEmails = await apiService.fetchEmailsFromFolder(folder, 0);
 | 
					 | 
				
			||||||
    setState(() {
 | 
					    setState(() {
 | 
				
			||||||
      emails = fetchedEmails;
 | 
					      widget.selectedFolder = folder;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					    print(folder);
 | 
				
			||||||
 | 
					    _fetchEmails();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void _fetchEmails() async {
 | 
				
			||||||
 | 
					    // print(selectedFolder)
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					      List<GetThreadResponse> fetchedEmails =
 | 
				
			||||||
 | 
					          await apiService.fetchEmailsFromFolder(widget.selectedFolder, 0);
 | 
				
			||||||
 | 
					      setState(() {
 | 
				
			||||||
 | 
					        emails = fetchedEmails; // Update the list of emails
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    } catch (e) {
 | 
				
			||||||
 | 
					      print('Error fetching emails: $e');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  Widget build(BuildContext context) {
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
 | 
					    _fetchEmails();
 | 
				
			||||||
    return Scaffold(
 | 
					    return Scaffold(
 | 
				
			||||||
      appBar: AppBar(title: Text('Email Page')),
 | 
					 | 
				
			||||||
      drawer: FolderDrawer(
 | 
					 | 
				
			||||||
        apiService: apiService,
 | 
					 | 
				
			||||||
        onFolderTap: _onFolderSelected,
 | 
					 | 
				
			||||||
      ),
 | 
					 | 
				
			||||||
      body: EmailListScreen(
 | 
					      body: EmailListScreen(
 | 
				
			||||||
        emails: emails,
 | 
					        emails: emails,
 | 
				
			||||||
        getEmailContent: apiService.fetchEmailContent,
 | 
					        getEmailContent: apiService.fetchEmailContent,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,7 +45,8 @@ class _FolderDrawerState extends State<FolderDrawer> {
 | 
				
			||||||
              title: Text(folder),
 | 
					              title: Text(folder),
 | 
				
			||||||
              onTap: () {
 | 
					              onTap: () {
 | 
				
			||||||
                widget.onFolderTap(folder);
 | 
					                widget.onFolderTap(folder);
 | 
				
			||||||
                Navigator.pop(context); // Close the drawer after selecting a folder
 | 
					                Navigator.pop(
 | 
				
			||||||
 | 
					                    context); // Close the drawer after selecting a folder
 | 
				
			||||||
              },
 | 
					              },
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
          }).toList(),
 | 
					          }).toList(),
 | 
				
			||||||
| 
						 | 
					@ -53,7 +54,7 @@ class _FolderDrawerState extends State<FolderDrawer> {
 | 
				
			||||||
            leading: Icon(Icons.refresh),
 | 
					            leading: Icon(Icons.refresh),
 | 
				
			||||||
            title: Text('Refresh Folders'),
 | 
					            title: Text('Refresh Folders'),
 | 
				
			||||||
            onTap: () {
 | 
					            onTap: () {
 | 
				
			||||||
              _fetchFolders();  // Refresh folders when this tile is tapped
 | 
					              _fetchFolders(); // Refresh folders when this tile is tapped
 | 
				
			||||||
              Navigator.pop(context); // Close the drawer after refresh
 | 
					              Navigator.pop(context); // Close the drawer after refresh
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
          ),
 | 
					          ),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,59 +1,37 @@
 | 
				
			||||||
// import 'package:crab_ui/email.dart';
 | 
					 | 
				
			||||||
import 'package:crab_ui/folder_drawer.dart';
 | 
					import 'package:crab_ui/folder_drawer.dart';
 | 
				
			||||||
 | 
					import 'package:flutter/widgets.dart';
 | 
				
			||||||
import 'api_service.dart';
 | 
					import 'api_service.dart';
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
import 'email.dart';
 | 
					import 'email.dart';
 | 
				
			||||||
import 'dart:html' as html;
 | 
					 | 
				
			||||||
import 'dart:ui_web' as ui;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HomeScreen extends StatefulWidget {
 | 
					class HomeScreen extends StatefulWidget {
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  _HomeScreenState createState() => _HomeScreenState();
 | 
					  _HomeScreenState createState() => _HomeScreenState();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//TODO: ADD ALL THE DIFF FOLDERS TO THE SIDEBAR
 | 
					
 | 
				
			||||||
class _HomeScreenState extends State<HomeScreen> {
 | 
					class _HomeScreenState extends State<HomeScreen> {
 | 
				
			||||||
  // final _emailPageState = EmailPageState();
 | 
					 | 
				
			||||||
  final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
 | 
					  final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
 | 
				
			||||||
 | 
					  final GlobalKey<EmailPageState> _emailPageKey = GlobalKey<EmailPageState>();
 | 
				
			||||||
  ApiService apiService = ApiService();
 | 
					  ApiService apiService = ApiService();
 | 
				
			||||||
 | 
					  bool _isSidebarOpen = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  void initState() {
 | 
					  void initState() {
 | 
				
			||||||
    super.initState();
 | 
					    super.initState();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool _isSidebarOpen = true;
 | 
					 | 
				
			||||||
  // void holder() async {
 | 
					 | 
				
			||||||
  //   List<Widget> drawerItems = await EmailPageState.getDrawerItems(context);
 | 
					 | 
				
			||||||
  // }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Method to handle what happens when a folder is tapped
 | 
					 | 
				
			||||||
  void _onFolderSelected(String folder) async {
 | 
					 | 
				
			||||||
    // Fetch emails from the selected folder using the ApiService
 | 
					 | 
				
			||||||
    // List fetchedEmails = await apiService.fetchEmailsFromFolder(folder);
 | 
					 | 
				
			||||||
    // setState(() {
 | 
					 | 
				
			||||||
    //   emails = fetchedEmails; // Update the email list
 | 
					 | 
				
			||||||
    // });
 | 
					 | 
				
			||||||
    print(folder);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  Widget build(BuildContext context) {
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
    final List<String> emails = [
 | 
					 | 
				
			||||||
      'Welcome to Flutter!',
 | 
					 | 
				
			||||||
      'You have new updates',
 | 
					 | 
				
			||||||
      'Your order is shipped',
 | 
					 | 
				
			||||||
      'Important: Security update',
 | 
					 | 
				
			||||||
      'Meeting tomorrow',
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
    return Scaffold(
 | 
					    return Scaffold(
 | 
				
			||||||
      key: _scaffoldKey,
 | 
					      key: _scaffoldKey,
 | 
				
			||||||
      drawer: FolderDrawer(
 | 
					      drawer: FolderDrawer(
 | 
				
			||||||
        apiService: apiService,
 | 
					        apiService: apiService,
 | 
				
			||||||
        onFolderTap: _onFolderSelected,
 | 
					        onFolderTap: (folder) {
 | 
				
			||||||
 | 
					          _emailPageKey.currentState?.updateSelectedFolder(folder);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
      ),
 | 
					      ),
 | 
				
			||||||
 | 
					 | 
				
			||||||
      body: Stack(
 | 
					      body: Stack(
 | 
				
			||||||
        children: [
 | 
					        children: [
 | 
				
			||||||
          Row(
 | 
					          Row(
 | 
				
			||||||
| 
						 | 
					@ -78,119 +56,13 @@ class _HomeScreenState extends State<HomeScreen> {
 | 
				
			||||||
                          // Navigate to Settings
 | 
					                          // Navigate to Settings
 | 
				
			||||||
                        },
 | 
					                        },
 | 
				
			||||||
                      ),
 | 
					                      ),
 | 
				
			||||||
                      // EmailPage(),
 | 
					 | 
				
			||||||
                      // GestureDetector(
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                      //     // onTapDown: (TapDownDetails details) {
 | 
					 | 
				
			||||||
                      //     //   _showPopupMenu(context, details.globalPosition);
 | 
					 | 
				
			||||||
                      //     // },
 | 
					 | 
				
			||||||
                      //   // child: Expanded(
 | 
					 | 
				
			||||||
                      //   child: Scaffold(
 | 
					 | 
				
			||||||
                      //     appBar: AppBar(
 | 
					 | 
				
			||||||
                      //       // leading: Icon(Icons.email),
 | 
					 | 
				
			||||||
                      //       // flexibleSpace: Padding(
 | 
					 | 
				
			||||||
                      //       //   padding: const EdgeInsets.only(
 | 
					 | 
				
			||||||
                      //       //       top: 40), // Adjust padding as needed
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                      //         // child: Wrap(
 | 
					 | 
				
			||||||
                      //         //   spacing: 10.0,
 | 
					 | 
				
			||||||
                      //         //   alignment: WrapAlignment.center,
 | 
					 | 
				
			||||||
                      //         //   // children: [
 | 
					 | 
				
			||||||
                      //         //   //   ListTile(leading: Icon(Icons.mail),),
 | 
					 | 
				
			||||||
                      //         //   //   ListTile(leading: Icon(Icons.mail),),
 | 
					 | 
				
			||||||
                      //         //   //   ListTile(leading: Icon(Icons.mail),),
 | 
					 | 
				
			||||||
                      //         //   // ],
 | 
					 | 
				
			||||||
                      //         // ),
 | 
					 | 
				
			||||||
                      //       // ),
 | 
					 | 
				
			||||||
                      //       // ],
 | 
					 | 
				
			||||||
                      //     ),
 | 
					 | 
				
			||||||
                      //     body: ListView.separated(
 | 
					 | 
				
			||||||
                      //       itemBuilder: (context, index) {
 | 
					 | 
				
			||||||
                      //         return ListTile(
 | 
					 | 
				
			||||||
                      //           leading: Icon(Icons.mail),
 | 
					 | 
				
			||||||
                      //           title: Text(emails[index]),
 | 
					 | 
				
			||||||
                      //         );
 | 
					 | 
				
			||||||
                      //       },
 | 
					 | 
				
			||||||
                      //       separatorBuilder: (context, index) => Divider(),
 | 
					 | 
				
			||||||
                      //       itemCount: 5,
 | 
					 | 
				
			||||||
                      //     ),
 | 
					 | 
				
			||||||
                      //   )
 | 
					 | 
				
			||||||
                      ListTile(
 | 
					                      ListTile(
 | 
				
			||||||
                        leading: Icon(Icons.email),
 | 
					                        leading: Icon(Icons.email),
 | 
				
			||||||
                        onTap: () {
 | 
					                        onTap: () {
 | 
				
			||||||
                          _scaffoldKey.currentState?.openDrawer();
 | 
					                          _scaffoldKey.currentState?.openDrawer();
 | 
				
			||||||
                        },
 | 
					                        },
 | 
				
			||||||
                      ),
 | 
					                      ),
 | 
				
			||||||
                      
 | 
					 | 
				
			||||||
                      // leading: SizedBox(
 | 
					 | 
				
			||||||
                      //   width: 20,
 | 
					 | 
				
			||||||
                      //   child: GestureDetector(
 | 
					 | 
				
			||||||
                      //       onTapDown: (TapDownDetails details) {
 | 
					 | 
				
			||||||
                      //         _showPopupMenu(context, details.globalPosition);
 | 
					 | 
				
			||||||
                      //       },
 | 
					 | 
				
			||||||
                      //       child: SizedBox(
 | 
					 | 
				
			||||||
                      //         width: 40,
 | 
					 | 
				
			||||||
                      //         child: Icon(Icons.email)
 | 
					 | 
				
			||||||
                      // ),
 | 
					 | 
				
			||||||
                      // ),
 | 
					 | 
				
			||||||
                      // ),
 | 
					 | 
				
			||||||
                      // ),
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                      // trailing: SizedBox(
 | 
					 | 
				
			||||||
                      //   width: 20,
 | 
					 | 
				
			||||||
                      //   child: PopupMenuButton<String>(
 | 
					 | 
				
			||||||
                      //     onSelected: (value) {
 | 
					 | 
				
			||||||
                      //       print(value);
 | 
					 | 
				
			||||||
                      //       print('ajdsnv');
 | 
					 | 
				
			||||||
                      //     },
 | 
					 | 
				
			||||||
                      //     itemBuilder: (BuildContext context) {
 | 
					 | 
				
			||||||
                      //       return <PopupMenuEntry<String>>[
 | 
					 | 
				
			||||||
                      //         PopupMenuItem<String>(
 | 
					 | 
				
			||||||
                      //           value: 'Open',
 | 
					 | 
				
			||||||
                      //           child: Text('Open'),
 | 
					 | 
				
			||||||
                      //         )
 | 
					 | 
				
			||||||
                      //       ];
 | 
					 | 
				
			||||||
                      //     },
 | 
					 | 
				
			||||||
                      //   ),
 | 
					 | 
				
			||||||
                      // ),
 | 
					 | 
				
			||||||
                      // ),
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                      // onTap: () {
 | 
					 | 
				
			||||||
                      //   Navigator.push(
 | 
					 | 
				
			||||||
                      //     context,
 | 
					 | 
				
			||||||
                      //     MaterialPageRoute(
 | 
					 | 
				
			||||||
                      //         builder: (context) => EmailPage()),
 | 
					 | 
				
			||||||
                      //   );
 | 
					 | 
				
			||||||
                      // },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                      // ),
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                      // Drawer(
 | 
					 | 
				
			||||||
                      //     child: FutureBuilder<List<Widget>>()
 | 
					 | 
				
			||||||
                      //   future: _emailPageState.getDrawerItems(context), // call the async function to get the future
 | 
					 | 
				
			||||||
                      //   builder: (BuildContext context,
 | 
					 | 
				
			||||||
                      //       AsyncSnapshot<List<Widget>> snapshot) {
 | 
					 | 
				
			||||||
                      //     if (snapshot.connectionState ==
 | 
					 | 
				
			||||||
                      //         ConnectionState.waiting) {
 | 
					 | 
				
			||||||
                      //       // While data is loading, show a progress indicator
 | 
					 | 
				
			||||||
                      //       return Center(child: CircularProgressIndicator());
 | 
					 | 
				
			||||||
                      //     } else if (snapshot.hasError) {
 | 
					 | 
				
			||||||
                      //       // If something went wrong, show an error message
 | 
					 | 
				
			||||||
                      //       return Center(
 | 
					 | 
				
			||||||
                      //           child: Text('Error: ${snapshot.error}'));
 | 
					 | 
				
			||||||
                      //     } else {
 | 
					 | 
				
			||||||
                      //       // When data is fetched successfully, display the items
 | 
					 | 
				
			||||||
                      //       return ListView(
 | 
					 | 
				
			||||||
                      //         padding: EdgeInsets.zero,
 | 
					 | 
				
			||||||
                      //         children: snapshot
 | 
					 | 
				
			||||||
                      //             .data!, // Unwrap the data once confirmed it's there
 | 
					 | 
				
			||||||
                      //       );
 | 
					 | 
				
			||||||
                      //     }
 | 
					 | 
				
			||||||
                      //   },
 | 
					 | 
				
			||||||
                      // )
 | 
					 | 
				
			||||||
                      // ),
 | 
					 | 
				
			||||||
                      Spacer(),
 | 
					                      Spacer(),
 | 
				
			||||||
                      
 | 
					 | 
				
			||||||
                      Padding(
 | 
					                      Padding(
 | 
				
			||||||
                        padding: const EdgeInsets.all(8.0),
 | 
					                        padding: const EdgeInsets.all(8.0),
 | 
				
			||||||
                        child: Align(
 | 
					                        child: Align(
 | 
				
			||||||
| 
						 | 
					@ -251,12 +123,11 @@ class _HomeScreenState extends State<HomeScreen> {
 | 
				
			||||||
                          Container(
 | 
					                          Container(
 | 
				
			||||||
                            child: Text('hiiiiiii'),
 | 
					                            child: Text('hiiiiiii'),
 | 
				
			||||||
                          ),
 | 
					                          ),
 | 
				
			||||||
                          
 | 
					 | 
				
			||||||
                        ],
 | 
					                        ],
 | 
				
			||||||
                      ),
 | 
					                      ),
 | 
				
			||||||
                    ),
 | 
					                    ),
 | 
				
			||||||
                    Expanded(
 | 
					                    Expanded(
 | 
				
			||||||
                      child: EmailPage(selectedFolder: "INBOX",),
 | 
					                      child: EmailPage(key: _emailPageKey),
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
                  ],
 | 
					                  ],
 | 
				
			||||||
                ),
 | 
					                ),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,9 @@
 | 
				
			||||||
import 'package:crab_ui/contact.dart';
 | 
					import 'package:crab_ui/contact.dart';
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
import 'home_page.dart';
 | 
					import 'home_page.dart';
 | 
				
			||||||
import 'api_service.dart';
 | 
					// import 'api_service.dart';
 | 
				
			||||||
import 'login.dart';
 | 
					import 'login.dart';
 | 
				
			||||||
 | 
					import 'email.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void main() {
 | 
					void main() {
 | 
				
			||||||
  WidgetsFlutterBinding.ensureInitialized();
 | 
					  WidgetsFlutterBinding.ensureInitialized();
 | 
				
			||||||
| 
						 | 
					@ -25,7 +26,7 @@ class HyM extends StatelessWidget {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      routes: {
 | 
					      routes: {
 | 
				
			||||||
        "/login": (context) => const LoginPage(),
 | 
					        "/login": (context) => const LoginPage(),
 | 
				
			||||||
        "/email": (context) => EmailPage(),
 | 
					        // "/email": (context) => EmailPage(),
 | 
				
			||||||
        "/contacts": (context) => ContactsPage(),
 | 
					        "/contacts": (context) => ContactsPage(),
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue