state bug fixed :))))
This commit is contained in:
		
							parent
							
								
									45c605f464
								
							
						
					
					
						commit
						ae5fc1304a
					
				
					 1 changed files with 83 additions and 51 deletions
				
			
		| 
						 | 
					@ -181,27 +181,27 @@ class _EmailPageState extends State<EmailPage> {
 | 
				
			||||||
    return content;
 | 
					    return content;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Future<String> _getThreadMessagesJson(String threadId) async {
 | 
					  // Future<String> _getThreadMessagesJson(String threadId) async {
 | 
				
			||||||
    String jsonResponse = "";
 | 
					  //   String jsonResponse = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
					  //   try {
 | 
				
			||||||
      var url =
 | 
					  //     var url =
 | 
				
			||||||
          Uri.http('127.0.0.1:3001', 'get_thread_messages', {'id': threadId});
 | 
					  //         Uri.http('127.0.0.1:3001', 'get_thread_messages', {'id': threadId});
 | 
				
			||||||
      // print(url);
 | 
					  //     // print(url);
 | 
				
			||||||
      var response = await http.get(url);
 | 
					  //     var response = await http.get(url);
 | 
				
			||||||
      // print(response.statusCode);
 | 
					  //     // print(response.statusCode);
 | 
				
			||||||
      // print(response.body);
 | 
					  //     // print(response.body);
 | 
				
			||||||
      if (response.statusCode == 200) {
 | 
					  //     if (response.statusCode == 200) {
 | 
				
			||||||
        jsonResponse = response.body; // Here you get the JSON response
 | 
					  //       jsonResponse = response.body; // Here you get the JSON response
 | 
				
			||||||
      } else {
 | 
					  //     } else {
 | 
				
			||||||
        throw Exception('Failed to load thread messages');
 | 
					  //       throw Exception('Failed to load thread messages');
 | 
				
			||||||
      }
 | 
					  //     }
 | 
				
			||||||
    } catch (e) {
 | 
					  //   } catch (e) {
 | 
				
			||||||
      print('_getThreadMessagesJson caught error: $e');
 | 
					  //     print('_getThreadMessagesJson caught error: $e');
 | 
				
			||||||
    }
 | 
					  //   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return jsonResponse; // Returns the JSON string
 | 
					  //   return jsonResponse; // Returns the JSON string
 | 
				
			||||||
  }
 | 
					  // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Future<List<Widget>> _getDrawerItems() async {
 | 
					  Future<List<Widget>> _getDrawerItems() async {
 | 
				
			||||||
    List<String> drawerItems = [];
 | 
					    List<String> drawerItems = [];
 | 
				
			||||||
| 
						 | 
					@ -265,7 +265,8 @@ class _EmailPageState extends State<EmailPage> {
 | 
				
			||||||
      body: EmailListScreen(
 | 
					      body: EmailListScreen(
 | 
				
			||||||
        emails: emails,
 | 
					        emails: emails,
 | 
				
			||||||
        getEmailContent: _getEmailContent,
 | 
					        getEmailContent: _getEmailContent,
 | 
				
			||||||
          getJsonEmail: _getThreadMessagesJson),
 | 
					        // getJsonEmail: _getThreadMessagesJson
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -273,12 +274,13 @@ class _EmailPageState extends State<EmailPage> {
 | 
				
			||||||
class EmailListScreen extends StatelessWidget {
 | 
					class EmailListScreen extends StatelessWidget {
 | 
				
			||||||
  final List emails;
 | 
					  final List emails;
 | 
				
			||||||
  final Future<String> Function(String) getEmailContent;
 | 
					  final Future<String> Function(String) getEmailContent;
 | 
				
			||||||
  final Future<String> Function(String) getJsonEmail;
 | 
					  // final Future<String> Function(String) getJsonEmail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  EmailListScreen(
 | 
					  EmailListScreen({
 | 
				
			||||||
      {required this.emails,
 | 
					    required this.emails,
 | 
				
			||||||
    required this.getEmailContent,
 | 
					    required this.getEmailContent,
 | 
				
			||||||
      required this.getJsonEmail});
 | 
					    // required this.getJsonEmail
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  Widget build(BuildContext context) {
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
| 
						 | 
					@ -302,27 +304,31 @@ class EmailListScreen extends StatelessWidget {
 | 
				
			||||||
              trailing: Text(emails[index].date.toString()),
 | 
					              trailing: Text(emails[index].date.toString()),
 | 
				
			||||||
              onTap: () async {
 | 
					              onTap: () async {
 | 
				
			||||||
                String emailContent = await getEmailContent(emails[index].id);
 | 
					                String emailContent = await getEmailContent(emails[index].id);
 | 
				
			||||||
                String jsonContent =
 | 
					                // String jsonContent =
 | 
				
			||||||
                    await getJsonEmail(emails[index].uid.toString());
 | 
					                //     await getJsonEmail(emails[index].uid.toString());
 | 
				
			||||||
                // print(emails[index]);
 | 
					                // print(emails[index]);
 | 
				
			||||||
                String from = emails[index].from;
 | 
					                String from = emails[index].from.toString();
 | 
				
			||||||
                String name = emails[index].name;
 | 
					                String name = emails[index].name.toString();
 | 
				
			||||||
                String to = emails[index].to;
 | 
					                String to = emails[index].to.toString();
 | 
				
			||||||
                String cc = emails[index].cc;
 | 
					                String cc = emails[index].cc.toString();
 | 
				
			||||||
                String hash = emails[index].hash;
 | 
					                String hash = emails[index].hash.toString();
 | 
				
			||||||
                String subject = emails[index].subject;
 | 
					                String subject = emails[index].subject.toString();
 | 
				
			||||||
                String date = emails[index].date;
 | 
					                String date = emails[index].date.toString();
 | 
				
			||||||
                String uid = emails[index].uid;
 | 
					                String uid = emails[index].uid.toString();
 | 
				
			||||||
                String list = emails[index].list;
 | 
					                String list = emails[index].list.toString();
 | 
				
			||||||
                String id = emails[index].id;
 | 
					                String id = emails[index].id.toString();
 | 
				
			||||||
                String in_reply_to = emails[index].in_reply_to;
 | 
					                String in_reply_to = emails[index].in_reply_to.toString();
 | 
				
			||||||
                // String jsonbuilt =
 | 
					                // String jsonbuilt =
 | 
				
			||||||
                Navigator.push(
 | 
					                Navigator.push(
 | 
				
			||||||
                  context,
 | 
					                  context,
 | 
				
			||||||
                  MaterialPageRoute(
 | 
					                  MaterialPageRoute(
 | 
				
			||||||
                      builder: (context) => EmailView(
 | 
					                      builder: (context) => EmailView(
 | 
				
			||||||
                            emailContent: emailContent,
 | 
					                            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 {
 | 
					class EmailView extends StatefulWidget {
 | 
				
			||||||
  final String emailContent;
 | 
					  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(
 | 
					  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);
 | 
					      : super(key: key);
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  _EmailViewState createState() => _EmailViewState();
 | 
					  _EmailViewState createState() => _EmailViewState();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class _EmailViewState extends State<EmailView> {
 | 
					class _EmailViewState extends State<EmailView> {
 | 
				
			||||||
 | 
					  late Key iframeKey;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  void initState() {
 | 
					  void initState() {
 | 
				
			||||||
    super.initState();
 | 
					    super.initState();
 | 
				
			||||||
 | 
					    iframeKey = Key("iframe-${widget.id}");
 | 
				
			||||||
    ui.platformViewRegistry.registerViewFactory(
 | 
					    ui.platformViewRegistry.registerViewFactory(
 | 
				
			||||||
      'html-view33',
 | 
					      // 'html-view33'
 | 
				
			||||||
 | 
					      iframeKey.toString(),
 | 
				
			||||||
      (int viewId) => html.IFrameElement()
 | 
					      (int viewId) => html.IFrameElement()
 | 
				
			||||||
        ..width = '100%'
 | 
					        ..width = '100%'
 | 
				
			||||||
        ..height = '100%'
 | 
					        ..height = '100%'
 | 
				
			||||||
| 
						 | 
					@ -368,10 +400,10 @@ class _EmailViewState extends State<EmailView> {
 | 
				
			||||||
      appBar: AppBar(
 | 
					      appBar: AppBar(
 | 
				
			||||||
        title: Text(widget.name),
 | 
					        title: Text(widget.name),
 | 
				
			||||||
      ),
 | 
					      ),
 | 
				
			||||||
      body: Container(
 | 
					      body: HtmlElementView(
 | 
				
			||||||
        child: HtmlElementView(
 | 
					        key: iframeKey,
 | 
				
			||||||
          viewType: 'html-view33',
 | 
					        viewType: iframeKey.toString(), 
 | 
				
			||||||
        ),
 | 
					        // 'html-view33',
 | 
				
			||||||
      ),
 | 
					      ),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue