state bug fixed :))))

This commit is contained in:
Juan Marulanda De Los Rios 2024-08-08 23:49:32 -04:00
parent 45c605f464
commit ae5fc1304a

View File

@ -181,27 +181,27 @@ class _EmailPageState extends State<EmailPage> {
return content;
}
Future<String> _getThreadMessagesJson(String threadId) async {
String jsonResponse = "";
// Future<String> _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<List<Widget>> _getDrawerItems() async {
List<String> drawerItems = [];
@ -263,9 +263,10 @@ class _EmailPageState extends State<EmailPage> {
),
),
body: EmailListScreen(
emails: emails,
getEmailContent: _getEmailContent,
getJsonEmail: _getThreadMessagesJson),
emails: emails,
getEmailContent: _getEmailContent,
// getJsonEmail: _getThreadMessagesJson
),
);
}
}
@ -273,12 +274,13 @@ class _EmailPageState extends State<EmailPage> {
class EmailListScreen extends StatelessWidget {
final List emails;
final Future<String> Function(String) getEmailContent;
final Future<String> Function(String) getJsonEmail;
// final Future<String> 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<EmailView> {
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<EmailView> {
appBar: AppBar(
title: Text(widget.name),
),
body: Container(
child: HtmlElementView(
viewType: 'html-view33',
),
body: HtmlElementView(
key: iframeKey,
viewType: iframeKey.toString(),
// 'html-view33',
),
);
}