diff --git a/lib/features/caching/caching_manager.dart b/lib/features/caching/caching_manager.dart index bc33b7362..0708ae0d7 100644 --- a/lib/features/caching/caching_manager.dart +++ b/lib/features/caching/caching_manager.dart @@ -1,4 +1,5 @@ +import 'package:flutter/foundation.dart'; import 'package:tmail_ui_user/features/caching/email_cache_client.dart'; import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart'; import 'package:tmail_ui_user/features/caching/state_cache_client.dart'; @@ -16,10 +17,18 @@ class CachingManager { ); Future clearAll() async { - await Future.wait([ - _stateCacheClient.deleteBox(), - _mailboxCacheClient.deleteBox(), - _emailCacheClient.deleteBox(), - ]); + if (kIsWeb) { + await Future.wait([ + _stateCacheClient.clearAllData(), + _mailboxCacheClient.clearAllData(), + _emailCacheClient.clearAllData(), + ]); + } else { + await Future.wait([ + _stateCacheClient.deleteBox(), + _mailboxCacheClient.deleteBox(), + _emailCacheClient.deleteBox(), + ]); + } } } \ No newline at end of file diff --git a/lib/features/caching/config/hive_cache_client.dart b/lib/features/caching/config/hive_cache_client.dart index 45575db70..f21399cd6 100644 --- a/lib/features/caching/config/hive_cache_client.dart +++ b/lib/features/caching/config/hive_cache_client.dart @@ -30,4 +30,6 @@ abstract class HiveCacheClient { Future deleteBox() { return Hive.deleteBoxFromDisk(tableName); } + + Future clearAllData(); } \ No newline at end of file diff --git a/lib/features/caching/email_cache_client.dart b/lib/features/caching/email_cache_client.dart index 32b81ec3e..3de49285a 100644 --- a/lib/features/caching/email_cache_client.dart +++ b/lib/features/caching/email_cache_client.dart @@ -135,4 +135,14 @@ class EmailCacheClient extends HiveCacheClient { throw error; }); } + + @override + Future clearAllData() { + return Future.sync(() async { + final boxEmail = await openBox(); + boxEmail.clear(); + }).catchError((error) { + throw error; + }); + } } \ No newline at end of file diff --git a/lib/features/caching/mailbox_cache_client.dart b/lib/features/caching/mailbox_cache_client.dart index 3301772d3..b4fe02ff7 100644 --- a/lib/features/caching/mailbox_cache_client.dart +++ b/lib/features/caching/mailbox_cache_client.dart @@ -118,4 +118,14 @@ class MailboxCacheClient extends HiveCacheClient { throw error; }); } + + @override + Future clearAllData() { + return Future.sync(() async { + final boxMailbox = await openBox(); + boxMailbox.clear(); + }).catchError((error) { + throw error; + }); + } } \ No newline at end of file diff --git a/lib/features/caching/state_cache_client.dart b/lib/features/caching/state_cache_client.dart index cd54ea422..1ae9168e5 100644 --- a/lib/features/caching/state_cache_client.dart +++ b/lib/features/caching/state_cache_client.dart @@ -118,4 +118,14 @@ class StateCacheClient extends HiveCacheClient { throw error; }); } + + @override + Future clearAllData() { + return Future.sync(() async { + final boxState = await openBox(); + boxState.clear(); + }).catchError((error) { + throw error; + }); + } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart index f5ffff77b..be2355e47 100644 --- a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart @@ -430,8 +430,8 @@ class MailboxDashBoardController extends ReloadableController { void logoutAction() { _deleteCredential(); - if (!kIsWeb) _clearAllCache(); - pushAndPopAll(AppRoutes.LOGIN); + _clearAllCache(); + goToLogin(); } @override diff --git a/lib/features/session/presentation/session_controller.dart b/lib/features/session/presentation/session_controller.dart index b045bbc0d..1f4e0d0db 100644 --- a/lib/features/session/presentation/session_controller.dart +++ b/lib/features/session/presentation/session_controller.dart @@ -1,4 +1,3 @@ -import 'package:flutter/foundation.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/caching/caching_manager.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart'; @@ -41,8 +40,8 @@ class SessionController extends GetxController { void _goToLogin() { _deleteCredential(); - if (!kIsWeb) _clearAllCache(); - pushAndPop(AppRoutes.LOGIN); + _clearAllCache(); + pushAndPopAll(AppRoutes.LOGIN); } void _goToMailboxDashBoard(GetSessionSuccess getSessionSuccess) {