From ae5fc1304a209674ae643339f176e916ed820c24 Mon Sep 17 00:00:00 2001 From: juan Date: Thu, 8 Aug 2024 23:49:32 -0400 Subject: [PATCH] state bug fixed :)))) --- lib/api_service.dart | 134 +++++++++++++++++++++++++++---------------- 1 file changed, 83 insertions(+), 51 deletions(-) diff --git a/lib/api_service.dart b/lib/api_service.dart index 1dead75..59fffae 100644 --- a/lib/api_service.dart +++ b/lib/api_service.dart @@ -181,27 +181,27 @@ class _EmailPageState extends State { return content; } - Future _getThreadMessagesJson(String threadId) async { - String jsonResponse = ""; + // Future _getThreadMessagesJson(String threadId) async { + // String jsonResponse = ""; - try { - var url = - Uri.http('127.0.0.1:3001', 'get_thread_messages', {'id': threadId}); - // print(url); - var response = await http.get(url); - // print(response.statusCode); - // print(response.body); - if (response.statusCode == 200) { - jsonResponse = response.body; // Here you get the JSON response - } else { - throw Exception('Failed to load thread messages'); - } - } catch (e) { - print('_getThreadMessagesJson caught error: $e'); - } + // try { + // var url = + // Uri.http('127.0.0.1:3001', 'get_thread_messages', {'id': threadId}); + // // print(url); + // var response = await http.get(url); + // // print(response.statusCode); + // // print(response.body); + // if (response.statusCode == 200) { + // jsonResponse = response.body; // Here you get the JSON response + // } else { + // throw Exception('Failed to load thread messages'); + // } + // } catch (e) { + // print('_getThreadMessagesJson caught error: $e'); + // } - return jsonResponse; // Returns the JSON string - } + // return jsonResponse; // Returns the JSON string + // } Future> _getDrawerItems() async { List drawerItems = []; @@ -263,9 +263,10 @@ class _EmailPageState extends State { ), ), body: EmailListScreen( - emails: emails, - getEmailContent: _getEmailContent, - getJsonEmail: _getThreadMessagesJson), + emails: emails, + getEmailContent: _getEmailContent, + // getJsonEmail: _getThreadMessagesJson + ), ); } } @@ -273,12 +274,13 @@ class _EmailPageState extends State { class EmailListScreen extends StatelessWidget { final List emails; final Future Function(String) getEmailContent; - final Future Function(String) getJsonEmail; + // final Future Function(String) getJsonEmail; - EmailListScreen( - {required this.emails, - required this.getEmailContent, - required this.getJsonEmail}); + EmailListScreen({ + required this.emails, + required this.getEmailContent, + // required this.getJsonEmail + }); @override Widget build(BuildContext context) { @@ -302,27 +304,31 @@ class EmailListScreen extends StatelessWidget { trailing: Text(emails[index].date.toString()), onTap: () async { String emailContent = await getEmailContent(emails[index].id); - String jsonContent = - await getJsonEmail(emails[index].uid.toString()); + // String jsonContent = + // await getJsonEmail(emails[index].uid.toString()); // print(emails[index]); - String from = emails[index].from; - String name = emails[index].name; - String to = emails[index].to; - String cc = emails[index].cc; - String hash = emails[index].hash; - String subject = emails[index].subject; - String date = emails[index].date; - String uid = emails[index].uid; - String list = emails[index].list; - String id = emails[index].id; - String in_reply_to = emails[index].in_reply_to; - // String jsonbuilt = + String from = emails[index].from.toString(); + String name = emails[index].name.toString(); + String to = emails[index].to.toString(); + String cc = emails[index].cc.toString(); + String hash = emails[index].hash.toString(); + String subject = emails[index].subject.toString(); + String date = emails[index].date.toString(); + String uid = emails[index].uid.toString(); + String list = emails[index].list.toString(); + String id = emails[index].id.toString(); + String in_reply_to = emails[index].in_reply_to.toString(); + // String jsonbuilt = Navigator.push( context, MaterialPageRoute( builder: (context) => EmailView( emailContent: emailContent, - jsonEmail: jsonContent, + // jsonEmail: jsonContent, + from: from, name: name, to: to, cc: cc, hash: hash, + subject: subject, date: date, + uid: uid, list: list, id: id, + in_reply_to: in_reply_to, )), ); }); @@ -337,23 +343,49 @@ class EmailListScreen extends StatelessWidget { class EmailView extends StatefulWidget { final String emailContent; - final String jsonEmail; - - + // final String jsonEmail; + final String from; + final String name; + final String to; + final String cc; + final String hash; + final String subject; + final String date; + final String uid; + final String list; + final String id; + final String in_reply_to; const EmailView( - {Key? key, required this.emailContent, required this.jsonEmail}) + {Key? key, + required this.emailContent, + // required this.jsonEmail, + required this.from, + required this.name, + required this.to, + required this.cc, + required this.hash, + required this.subject, + required this.date, + required this.uid, + required this.list, + required this.id, + required this.in_reply_to}) : super(key: key); @override _EmailViewState createState() => _EmailViewState(); } class _EmailViewState extends State { + late Key iframeKey; + @override void initState() { super.initState(); + iframeKey = Key("iframe-${widget.id}"); ui.platformViewRegistry.registerViewFactory( - 'html-view33', + // 'html-view33' + iframeKey.toString(), (int viewId) => html.IFrameElement() ..width = '100%' ..height = '100%' @@ -368,10 +400,10 @@ class _EmailViewState extends State { appBar: AppBar( title: Text(widget.name), ), - body: Container( - child: HtmlElementView( - viewType: 'html-view33', - ), + body: HtmlElementView( + key: iframeKey, + viewType: iframeKey.toString(), + // 'html-view33', ), ); }