hym_ui/lib/routingHandler.dart

206 lines
5.5 KiB
Dart

import 'package:crab_ui/collapsableEmails.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:markdown/markdown.dart' as md;
import 'package:markdown_widget/markdown_widget.dart';
import 'api_service.dart';
class Routinghandler extends StatefulWidget {
Routinghandler(String link, emailID) {
bool anchorDone = false;
bool docNameDone = false;
bool viewspecsDone = false;
bool targetDone = false;
for (int letter = 0; letter < link.length; letter++) {
if (!anchorDone) {
if (link[letter] != '<') {
//when the anchor hasnt been dissected
anchor += link[letter];
} else {
anchorDone = true;
}
} else if (!docNameDone) {
if (link[letter] != ',') {
//when the docName hasnt been dissected
docName += link[letter];
} else {
docNameDone = true;
}
} else if (!targetDone) {
if (link[letter] != ':') {
target += link[letter];
} else {
targetDone = true;
}
} else if (!viewspecsDone) {
if (link[letter] != '>') {
//when the docName hasnt been dissected
viewspecs += link[letter];
} else {
viewspecsDone = true;
}
}
}
anchor = anchor.trim();
docName = docName.trim();
target = target.trim();
viewspecs = viewspecs.trim();
print("inside constructor uwu $emailID");
emailID = emailID.trim();
}
Routinghandler.fromParameters(String anchor, String docName, String target,
String viewspecs, String emailID) {
this.anchor = anchor;
this.docName = docName;
this.viewspecs = viewspecs;
this.target = target;
this.emailID = emailID;
}
Routinghandler.copyConstructor(Routinghandler other) {
anchor = other.anchor;
docName = other.docName;
viewspecs = other.viewspecs;
target = other.target;
emailID = other.emailID;
}
String anchor = '';
String docName = '';
String viewspecs = '';
String target = '';
String emailID = '';
void goToLink() {
// bool anchorDone = false;
// bool docNameDone = false;
// bool viewspecsDone = false;
// bool targetDone = false;
// for (int letter = 0; letter < link.length; letter++) {
// if (!anchorDone) {
// if (link[letter] != '<') {
// //when the anchor hasnt been dissected
// anchor += link[letter];
// } else {
// anchorDone = true;
// }
// } else if (!docNameDone) {
// if (link[letter] != ',') {
// //when the docName hasnt been dissected
// docName += link[letter];
// } else {
// docNameDone = true;
// }
// } else if (!targetDone) {
// if (link[letter] != ':') {
// target += link[letter];
// } else {
// targetDone = true;
// }
// } else if (!viewspecsDone) {
// if (link[letter] != '>') {
// //when the docName hasnt been dissected
// viewspecs += link[letter];
// } else {
// viewspecsDone = true;
// }
// }
// }
print("anchor $anchor");
print("docName $docName");
print("target $target");
print("viewspecs $viewspecs");
print("emailID $emailID");
//now it should open a widget in that part
//maybe i need a rewrite
}
String getEmailID() {
return emailID;
}
@override
State<StatefulWidget> createState() => _RoutingHandlerState();
}
class _RoutingHandlerState extends State<Routinghandler> {
List<String> markdownContent = [];
bool _isLoaded = false;
@override
void initState() {
// TODO: implement initState
super.initState();
_loadMarkdown();
}
Future<void> _loadMarkdown() async {
String folder = ApiService.currFolder;
// print(folder);
print(widget.getEmailID());
String emailID = widget.emailID;
print("inside _loadMarkdown in routinghandler $emailID");
markdownContent =
await ApiService().fetchMarkdownContent([emailID], "INBOX");
// print(markdownContent);
setState(() {
_isLoaded = true;
});
}
@override
Widget build(BuildContext context) {
if (!_isLoaded) {
return const Center(
child: CircularProgressIndicator(),
);
}
return Scaffold(
appBar: AppBar(
title: Text("Routing Handler"),
leading: IconButton(
onPressed: () {
GoRouter.of(context).go('/home');
},
icon: const Icon(Icons.arrow_back_ios)),
),
body: ConstrainedBox(
constraints: BoxConstraints(
minHeight: 100,
maxHeight: MediaQuery.of(context).size.height * 0.7,
),
child: SingleChildScrollView(
child:MarkdownBlock(data: markdownContent[0]))),
);
}
}
class LinkViewer extends StatefulWidget {
const LinkViewer({super.key});
@override
State<StatefulWidget> createState() => _LinkViewerState();
}
class _LinkViewerState extends State<LinkViewer> {
@override
Widget build(BuildContext context) {
// this should be a class that opens a popup of the email on the view it wants
return Scaffold(
appBar: AppBar(
title: Text('url viewer'),
),
body: Column(
children: [],
));
}
}