diff --git a/lib/emailViewWeb.dart b/lib/emailViewWeb.dart index 08551eb..ace3e7f 100644 --- a/lib/emailViewWeb.dart +++ b/lib/emailViewWeb.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'dart:ui_web' as ui; import 'augment.dart'; // import 'dart:js_interop' as js; //eventually for manipulating css -import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'collapsableEmails.dart'; import 'api_service.dart'; @@ -44,6 +43,7 @@ class _EmailViewState extends State { {'id': 'marker2', 'x': 150, 'y': 200}, {'id': 'marker3', 'x': 250, 'y': 300}, ]; + String? _targetJumpNumbering; @override void initState() { @@ -55,39 +55,19 @@ class _EmailViewState extends State { // _registerViewFactory(currentContent); } - // void _registerViewFactory(List currentContent) { // i think this doesnt work anymore - // setState(() { //update to do item per item - // // each item to have itsviewtype ID - // // is this necessarey here?? - - // //could just move to collapsable - - // viewTypeId = 'iframe-${DateTime.now().millisecondsSinceEpoch}'; - // final emailHTML = web.document.createElement('div') as web.HTMLDivElement - // ..id = viewTypeId - // ..innerHTML = currentContent[0].toJS; // temporarily index because it has to do all of them - // emailHTML.style - // ..width = '100%' - // ..height = '100%' - // ..overflow = 'auto' - // ..scrollBehavior = 'smooth'; - - // ui.platformViewRegistry.registerViewFactory( - // viewTypeId, - // (int viewId) => emailHTML, - // ); - // }); - // } - void _scrollToNumber(String spanId) { AugmentClasses.handleJump(spanId); } + void _handleJumpRequest(String numbering) { + setState(() { + _targetJumpNumbering = numbering; + }); + } // TODO: void _invisibility(String ) //to make purple numbers not visible @override Widget build(BuildContext context) { - // print("thread id ${widget.id}"); ApiService.currThreadID = widget.id; return Scaffold( appBar: AppBar( @@ -98,28 +78,10 @@ class _EmailViewState extends State { Column( children: [ EmailToolbar( - onJumpToSpan: _scrollToNumber, - onButtonPressed: () => {}, - // AugmentClasses.handleJump(viewTypeId, '1'); - // print("button got pressed?"); - - // _registerViewFactory(r""" - //

Welcome to My Website

- //

This is a simple HTML page.

- //

What is HTML?

- //

HTML (HyperText Markup Language) is the most basic building~ block of the Web. It defines the meaning and structure of web content. Other technologies besides HTML are generally used to describe a web page's appearance/presentation (CSS) or functionality/behavior (JavaScript).

- //

Here's a simple list:

- //
    - //
  • HTML elements are the building blocks of HTML pages
  • - //
  • HTML uses tags like <tag> to organize and format content
  • - //
  • CSS is used with HTML to style pages
  • - //
- //

Copyright © 2023

- // """); - // print("change"); - // widget.emailContent = r" - - // + onJumpToSpan: _handleJumpRequest, + onButtonPressed: () => { + print("email tool bar pressed") + }, ), Row( // title of email @@ -162,79 +124,11 @@ class _EmailViewState extends State { thread: widget.messages, //this wont work in serializable threadHTML: widget.emailContent, threadIDs: widget.id, + targetJumpNumbering: _targetJumpNumbering, ), ), - // Expanded( - // child: HtmlElementView( - // key: UniqueKey(), - // viewType: viewTypeId, - // ), - // ), ], ), - - // Overlay widgets dynamically based on marker positions - // FutureBuilder>>( - // future: _markerPositionsFuture, - // builder: (context, snapshot) { - // print("FutureBuilder state: ${snapshot.connectionState}"); - // if (snapshot.connectionState == ConnectionState.waiting) { - // return Center(child: CircularProgressIndicator()); - // } - // if (snapshot.hasError) { - // print("Error in FutureBuilder: ${snapshot.error}"); - // return Center(child: Text('error loading markers')); - // } - // if (snapshot.hasData && snapshot.data != null) { - // final markers = snapshot.data!; - // return Stack( - // children: markers.map((marker) { - // return Positioned( - // left: marker['x'].toDouble(), - // top: marker['y'].toDouble(), - // child: GestureDetector( - // onTap: () { - // print('Tapped on ${marker['id']}'); - // }, - // child: Container( - // width: 50, - // height: 50, - // color: Colors.red, - // child: Center( - // child: Text( - // marker['id'], - // style: TextStyle(color: Colors.white), - // ), - // ), - // ), - // ), - // ); - // }).toList(), - // ); - // } - - // return SizedBox.shrink(); // No markers found - // }, - // ), - // Red widget overlay - // Positioned( - // left: 8, // Adjust based on your desired position - // top: 100 + 44 + 5, // Adjust based on your desired position - // child: IgnorePointer( - // ignoring: true, // Ensures the iframe remains interactive - // child: Container( - // color: Colors.red, - // width: 100, - // height: 50, - // child: Center( - // child: Text( - // 'Overlay', - // style: TextStyle(color: Colors.white), - // ), - // ), - // ), - // ), - // ), ], )); }