diff --git a/lib/api_service.dart b/lib/api_service.dart index 3ad7da9..350a4e4 100644 --- a/lib/api_service.dart +++ b/lib/api_service.dart @@ -5,7 +5,6 @@ import 'dart:ui_web' as ui; import 'dart:html' as html; import 'augment.dart'; import 'dart:js' as js; -// import 'package:flutter_web_plugins/flutter_web_plugins.dart'; class MailAddress { final String? name; @@ -368,6 +367,7 @@ class _EmailViewState extends State { @override Widget build(BuildContext context) { + // print(currentContent); return Scaffold( appBar: AppBar( title: Text(widget.name), diff --git a/lib/augment.dart b/lib/augment.dart index cb0b93c..1cb9e92 100644 --- a/lib/augment.dart +++ b/lib/augment.dart @@ -5,31 +5,207 @@ import 'dart:ui_web' as ui; import 'dart:html' as html; import 'dart:js' as js; -class EmailToolbar extends StatelessWidget { +class EmailToolbar extends StatefulWidget { final VoidCallback onButtonPressed; - const EmailToolbar({Key? key, required this.onButtonPressed}) : super(key: key); + EmailToolbar({Key? key, required this.onButtonPressed}) : super(key: key); + + @override + _DynamicClassesAugment createState() => _DynamicClassesAugment(); +} + +class _DynamicClassesAugment extends State { + String selectedClass = 'Class 1'; + late final FocusNode _JumpItemfocusNode; + late final FocusNode _viewSpecsfocusNode; + + bool _jumpItemHasFocus = false; + bool _viewSpecsHasFocus = false; + + @override + void initState() { + super.initState(); + _JumpItemfocusNode = FocusNode(); + _viewSpecsfocusNode = FocusNode(); + + _JumpItemfocusNode.addListener(() { + setState(() => _jumpItemHasFocus = _JumpItemfocusNode.hasFocus); + }); + + _viewSpecsfocusNode.addListener(() { + setState(() => _viewSpecsHasFocus = _viewSpecsfocusNode.hasFocus); + }); + } + + @override + void dispose() { + _JumpItemfocusNode.dispose(); + _viewSpecsfocusNode.dispose(); + super.dispose(); + } @override Widget build(BuildContext context) { - return Row( - children: [ - ElevatedButton( - onPressed: onButtonPressed, - child: Text('Home'), - ), - SizedBox(width: 8), - ElevatedButton( - onPressed: onButtonPressed, - child: Text('Reload'), - ), - Spacer(), - ElevatedButton( - onPressed: onButtonPressed, - child: Text('Options'), - ) - - ], - ); + const animationDuration = Duration(milliseconds: 250); + + return Column(children: [ + Row( + children: [ + ElevatedButton( + onPressed: () => AugmentClasses.handleHome(context), + child: Text('Home'), + ), + SizedBox(width: 8), + ElevatedButton( + onPressed: AugmentClasses.handleReload, + child: Text('Reload'), + ), + ElevatedButton( + onPressed: AugmentClasses.handleImages, + child: Text('Images'), + ), + SizedBox(width: 8), + ElevatedButton( + onPressed: AugmentClasses.handleOpen, + child: Text('Open'), + ), + // SizedBox(width: 8), + ElevatedButton( + onPressed: AugmentClasses.handleFind, + child: Text('Find'), + ), + // SizedBox(width: 8), + ElevatedButton( + onPressed: AugmentClasses.handleStop, + child: Text('Stop'), + ), + Spacer(), + PopupMenuButton( + onSelected: (String value) { + setState(() { + selectedClass = value; + print(selectedClass); + }); + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'Class 1', + child: Text('Class 1'), + ), + const PopupMenuItem( + value: 'Class 2', + child: Text('Class 2'), + ), + const PopupMenuItem( + value: 'Turbo 3', + child: Text('Turbo 3'), + ), + ], + // child: ElevatedButton( + // onPressed: () {}, + child: Text('Options'), + ), + ], + ), + if (selectedClass == 'Class 2') + Stack(children: [ + Row( + children: [ + Container( + width: 150, + height: 30, + child: TextField( + decoration: InputDecoration( + labelText: 'Jump Item', + border: OutlineInputBorder(), + suffixIcon: Icon(Icons.search)), + ), + ), + //TODO: Make an animation to make the button a textfield + // AnimatedSwitcher( + // duration: animationDuration, + // transitionBuilder: (Widget child, Animation animation) { + // return FadeTransition(opacity: animation, child: child); + // }, + // child: _jumpItemHasFocus + // ? Container( + // key: ValueKey('TextField1'), + // width: 150, + // child: TextField( + // focusNode: _JumpItemfocusNode, + // decoration: InputDecoration( + // hintText: 'Enter Text', + // border: OutlineInputBorder(), + // ), + // ), + + // ) + // : Container( + // key: ValueKey('Button1'), + // child: ElevatedButton( + // onPressed: () => _JumpItemfocusNode.requestFocus(), + // child: Text('Jump Item:'), + // ), + // ), + // ), + SizedBox(width: 8), + Container( + width: 150, + height: 30, + child: TextField( + decoration: InputDecoration( + labelText: 'viewSpecs', + border: OutlineInputBorder(), + suffixIcon: Icon(Icons.style_rounded)), + ), + ), + ElevatedButton( + onPressed: AugmentClasses.handleImages, + child: Text('Filter'), + ), + SizedBox(width: 8), + ElevatedButton( + onPressed: AugmentClasses.handleOpen, + child: Text('Lookup'), + ), + // SizedBox(width: 8), + ElevatedButton( + onPressed: AugmentClasses.handleFind, + child: Text('Create Link'), + ), + ElevatedButton( + onPressed: AugmentClasses.handleFind, + child: Text('Paste Link'), + ), + ], + ) + ]) + ]); + } +} + +class AugmentClasses { + static void handleHome(BuildContext context) { + Navigator.of(context).popUntil((route) => route.isFirst); + } + + static void handleReload() { + print("Reload button pressed"); + } + + static void handleImages() { + print("Images button pressed"); + } + + static void handleOpen() { + print("Open button pressed"); + } + + static void handleFind() { + print("Find button pressed"); + } + + static void handleStop() { + print("Stop button pressed"); } } diff --git a/lib/main.dart b/lib/main.dart index 3abf8db..5caf612 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -20,6 +20,7 @@ class HyM extends StatelessWidget { title: 'HyM', home: HomeScreen(), routes: { + // '/': (context) => HomeScreen(), "/email": (context) => EmailPage(), "/contacts": (context) => ContactsPage(), },