create folder

This commit is contained in:
Juan Marulanda De Los Rios 2024-10-22 01:23:49 -04:00
parent 336f7e8788
commit 55de9ea8b9
2 changed files with 74 additions and 2 deletions

View File

@ -9,9 +9,7 @@ import 'dart:ui_web' as ui;
import 'augment.dart';
import 'dart:html' as html;
class ApiService {
Future<List<GetThreadResponse>> fetchEmailsFromFolder(
String folder, int pagenitaion) async {
try {
@ -106,6 +104,29 @@ class ApiService {
return [];
}
}
Future<void> createFolder(String folderName) async {
var url = Uri.http('127.0.0.1:3001', 'create_folder');
Map<String, String> requestBody = {'name': folderName};
try {
var response = await http.post(
url,
headers: {
'Content-Type': 'application/json',
},
body: jsonEncode(requestBody),
);
if (response.statusCode == 200) {
print('response body: ${response.body}');
} else {
print('Error: ${response.statusCode}, response body: ${response.body}');
}
} catch (e) {
print('error making post req: $e');
}
}
}
class EmailView extends StatefulWidget {

View File

@ -1,6 +1,7 @@
//drawer with the folders for emails a.k.a mailboxes
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'api_service.dart';
class FolderDrawer extends StatefulWidget {
@ -50,6 +51,19 @@ class _FolderDrawerState extends State<FolderDrawer> {
},
);
}).toList(),
ListTile(
leading: Icon(Icons.add),
title: Text("New Mailbox"),
onTap: () {
showDialog(
context: context,
builder: (BuildContext context) {
return NewMailbox(apiService: widget.apiService);
},
);
// Navigator.of(context).pop();
},
),
ListTile(
leading: Icon(Icons.refresh),
title: Text('Refresh Folders'),
@ -63,3 +77,40 @@ class _FolderDrawerState extends State<FolderDrawer> {
);
}
}
class NewMailbox extends StatelessWidget {
final ApiService apiService;
// final Function(String) onFolderCreated;
final TextEditingController _textFieldController = TextEditingController();
NewMailbox({required this.apiService});
@override
Widget build(BuildContext context) {
return AlertDialog(
title: const Text("Create a new Mailbox"),
content: TextField(
controller: _textFieldController,
decoration: const InputDecoration(
hintText: "EPIC FOLDER", // Your custom hint text here
),
),
actions: <Widget>[
TextButton(
onPressed: () {
print("Folder name: ${_textFieldController.text}");
String folderName = _textFieldController.text;
if (folderName.isNotEmpty) {
apiService.createFolder(folderName);
// onFolderCreated(folderName);
}
// apiService.createFolder(_textFieldController.text);
Navigator.of(context).pop();
},
child: const Text("Approve"),
),
],
);
}
}