feat(folders): Improve folder management and parsing logic
This commit is contained in:
@@ -770,8 +770,10 @@ class _ChatsDrawerState extends ConsumerState<ChatsDrawer> {
|
||||
try {
|
||||
final api = ref.read(apiServiceProvider);
|
||||
if (api == null) throw Exception('No API service');
|
||||
await api.createFolder(name: name);
|
||||
final created = await api.createFolder(name: name);
|
||||
final folder = Folder.fromJson(Map<String, dynamic>.from(created));
|
||||
HapticFeedback.lightImpact();
|
||||
ref.read(foldersProvider.notifier).upsertFolder(folder);
|
||||
refreshConversationsCache(ref, includeFolders: true);
|
||||
} catch (e, stackTrace) {
|
||||
if (!mounted) return;
|
||||
@@ -1094,6 +1096,13 @@ class _ChatsDrawerState extends ConsumerState<ChatsDrawer> {
|
||||
if (api == null) throw Exception('No API service');
|
||||
await api.updateFolder(folderId, name: newName);
|
||||
HapticFeedback.selectionClick();
|
||||
ref
|
||||
.read(foldersProvider.notifier)
|
||||
.updateFolder(
|
||||
folderId,
|
||||
(folder) =>
|
||||
folder.copyWith(name: newName, updatedAt: DateTime.now()),
|
||||
);
|
||||
refreshConversationsCache(ref, includeFolders: true);
|
||||
} catch (e, stackTrace) {
|
||||
if (!mounted) return;
|
||||
@@ -1129,6 +1138,7 @@ class _ChatsDrawerState extends ConsumerState<ChatsDrawer> {
|
||||
if (api == null) throw Exception('No API service');
|
||||
await api.deleteFolder(folderId);
|
||||
HapticFeedback.mediumImpact();
|
||||
ref.read(foldersProvider.notifier).removeFolder(folderId);
|
||||
refreshConversationsCache(ref, includeFolders: true);
|
||||
} catch (e, stackTrace) {
|
||||
if (!mounted) return;
|
||||
|
||||
Reference in New Issue
Block a user