add the compose widget to sidebar

This commit is contained in:
Juan Marulanda De Los Rios 2025-07-23 10:29:13 -04:00
parent 214a60ce1b
commit c025fbe07a

View File

@ -5,6 +5,7 @@ import 'structs.dart';
import 'api_service.dart';
import 'package:flutter/material.dart';
import 'email.dart';
import 'Compose.dart';
class HomeScreen extends StatefulWidget {
@override
@ -65,7 +66,8 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
setState(() {
_selectedOption = value;
});
Navigator.of(context).pop(); // Close the dialog on selection
Navigator.of(context)
.pop(); // Close the dialog on selection
},
),
);
@ -84,9 +86,9 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
],
);
},
);}
);
}
}
// Remove a tab
void _removeTab(int index) {
@ -135,24 +137,21 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
//call the foldable
List<String> emailContent = // list of the html
await apiService.fetchEmailContent([email.id], email.list);
await apiService
.fetchEmailContent([email.id], email.list);
// List<String> emailIds = email.messages;
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SonicEmailView(
email: email,
emailHTML: emailContent[0])
),
email: email, emailHTML: emailContent[0])),
);
},
);
},
separatorBuilder: (context, index) => Divider(),
),
);
}
},
@ -195,6 +194,12 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ListTile(
leading: Icon(Icons.edit_note_sharp),
onTap: () {
OverlayService()
.showPersistentWidget(context);
}),
ListTile(
leading: Icon(Icons.home),
onTap: () {
@ -219,7 +224,8 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
child: Align(
alignment: Alignment.bottomLeft,
child: IconButton(
icon: Icon(Icons.close, color: Colors.white),
icon:
Icon(Icons.close, color: Colors.white),
onPressed: () {
setState(() {
_isSidebarOpen = false;
@ -256,7 +262,8 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
),
onSubmitted: (value) {
if (value.isNotEmpty) {
_performSearch(value, _selectedOption);
_performSearch(
value, _selectedOption);
}
//this is the input box i mentioned
// if (value == '') {
@ -314,8 +321,10 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
Text(entry.value),
if (entry.value != 'Emails')
GestureDetector(
onTap: () => _removeTab(entry.key),
child: Icon(Icons.close, size: 16),
onTap: () =>
_removeTab(entry.key),
child: Icon(Icons.close,
size: 16),
),
],
),
@ -333,14 +342,17 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
children: [
ElevatedButton(
onPressed: () {
_emailPageKey.currentState!.isBackDisabled ? null: _emailPageKey.currentState
_emailPageKey.currentState!.isBackDisabled
? null
: _emailPageKey.currentState
?.updatePagenation('back');
},
child: Icon(Icons.navigate_before),
),
Builder(
builder: (context) {
final emailState = _emailPageKey.currentState;
final emailState =
_emailPageKey.currentState;
if (emailState == null) {
// Schedule a rebuild once the state is available
Future.microtask(() => setState(() {}));
@ -348,8 +360,10 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
}
return ValueListenableBuilder<int>(
valueListenable: emailState.currentPageNotifier,
builder: (context, value, _) => Text('$value'),
valueListenable:
emailState.currentPageNotifier,
builder: (context, value, _) =>
Text('$value'),
);
},
),