|
@@ -181,27 +181,27 @@ class _EmailPageState extends State<EmailPage> {
|
|
|
return content;
|
|
|
}
|
|
|
|
|
|
- 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');
|
|
|
- }
|
|
|
-
|
|
|
- return jsonResponse; // Returns the JSON string
|
|
|
- }
|
|
|
+ // 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');
|
|
|
+ // }
|
|
|
+
|
|
|
+ // 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',
|
|
|
),
|
|
|
);
|
|
|
}
|