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 createState() => _RoutingHandlerState(); } class _RoutingHandlerState extends State { List markdownContent = []; bool _isLoaded = false; @override void initState() { // TODO: implement initState super.initState(); _loadMarkdown(); } Future _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 createState() => _LinkViewerState(); } class _LinkViewerState extends State { @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: [], )); } }