From 033039d171a59d2c64ed0926fddd70ad28260b26 Mon Sep 17 00:00:00 2001 From: Tomas Baran Date: Mon, 4 Aug 2025 10:30:54 +0200 Subject: [PATCH 1/2] Update key-value-data.md Remove unnecessary try & catch blocks since the repo classes always return the Result type (and never leak an Exception) --- .../design-patterns/key-value-data.md | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/content/app-architecture/design-patterns/key-value-data.md b/src/content/app-architecture/design-patterns/key-value-data.md index 6f1e56e53b..cfa06b1346 100644 --- a/src/content/app-architecture/design-patterns/key-value-data.md +++ b/src/content/app-architecture/design-patterns/key-value-data.md @@ -148,29 +148,19 @@ class ThemeSwitchViewModel extends ChangeNotifier { /// Load the current theme setting from the repository Future> _load() async { - try { final result = await _themeRepository.isDarkMode(); if (result is Ok) { _isDarkMode = result.value; } - return result; - } on Exception catch (e) { - return Result.error(e); - } finally { notifyListeners(); - } + return result; } /// Toggle the theme setting Future> _toggle() async { - try { _isDarkMode = !_isDarkMode; - return await _themeRepository.setDarkMode(_isDarkMode); - } on Exception catch (e) { - return Result.error(e); - } finally { notifyListeners(); - } + return await _themeRepository.setDarkMode(_isDarkMode); } } ``` @@ -317,16 +307,11 @@ class MainAppViewModel extends ChangeNotifier { bool get isDarkMode => _isDarkMode; Future _load() async { - try { final result = await _themeRepository.isDarkMode(); if (result is Ok) { _isDarkMode = result.value; } - } on Exception catch (_) { - // handle error - } finally { notifyListeners(); - } } @override From 4710f9588a965d8a1b2809ceaeb106f739e89758 Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Thu, 28 Aug 2025 18:59:20 -0500 Subject: [PATCH 2/2] Update excerpt sources as well --- .../lib/main_app_viewmodel.dart | 13 +++------ .../viewmodel/theme_switch_viewmodel.dart | 27 ++++++----------- .../design-patterns/key-value-data.md | 29 ++++++++++--------- 3 files changed, 28 insertions(+), 41 deletions(-) diff --git a/examples/app-architecture/todo_data_service/lib/main_app_viewmodel.dart b/examples/app-architecture/todo_data_service/lib/main_app_viewmodel.dart index 215584c2a6..70a2cce200 100644 --- a/examples/app-architecture/todo_data_service/lib/main_app_viewmodel.dart +++ b/examples/app-architecture/todo_data_service/lib/main_app_viewmodel.dart @@ -24,16 +24,11 @@ class MainAppViewModel extends ChangeNotifier { bool get isDarkMode => _isDarkMode; Future _load() async { - try { - final result = await _themeRepository.isDarkMode(); - if (result is Ok) { - _isDarkMode = result.value; - } - } on Exception catch (_) { - // handle error - } finally { - notifyListeners(); + final result = await _themeRepository.isDarkMode(); + if (result is Ok) { + _isDarkMode = result.value; } + notifyListeners(); } @override diff --git a/examples/app-architecture/todo_data_service/lib/ui/theme_config/viewmodel/theme_switch_viewmodel.dart b/examples/app-architecture/todo_data_service/lib/ui/theme_config/viewmodel/theme_switch_viewmodel.dart index d1c5518d6f..072d08919a 100644 --- a/examples/app-architecture/todo_data_service/lib/ui/theme_config/viewmodel/theme_switch_viewmodel.dart +++ b/examples/app-architecture/todo_data_service/lib/ui/theme_config/viewmodel/theme_switch_viewmodel.dart @@ -26,29 +26,20 @@ class ThemeSwitchViewModel extends ChangeNotifier { /// Load the current theme setting from the repository Future> _load() async { - try { - final result = await _themeRepository.isDarkMode(); - if (result is Ok) { - _isDarkMode = result.value; - } - return result; - } on Exception catch (e) { - return Result.error(e); - } finally { - notifyListeners(); + final result = await _themeRepository.isDarkMode(); + if (result is Ok) { + _isDarkMode = result.value; } + notifyListeners(); + return result; } /// Toggle the theme setting Future> _toggle() async { - try { - _isDarkMode = !_isDarkMode; - return await _themeRepository.setDarkMode(_isDarkMode); - } on Exception catch (e) { - return Result.error(e); - } finally { - notifyListeners(); - } + _isDarkMode = !_isDarkMode; + final result = await _themeRepository.setDarkMode(_isDarkMode); + notifyListeners(); + return result; } } diff --git a/src/content/app-architecture/design-patterns/key-value-data.md b/src/content/app-architecture/design-patterns/key-value-data.md index affd5aa992..dd673f9e7f 100644 --- a/src/content/app-architecture/design-patterns/key-value-data.md +++ b/src/content/app-architecture/design-patterns/key-value-data.md @@ -148,19 +148,20 @@ class ThemeSwitchViewModel extends ChangeNotifier { /// Load the current theme setting from the repository Future> _load() async { - final result = await _themeRepository.isDarkMode(); - if (result is Ok) { - _isDarkMode = result.value; - } - notifyListeners(); - return result; + final result = await _themeRepository.isDarkMode(); + if (result is Ok) { + _isDarkMode = result.value; + } + notifyListeners(); + return result; } /// Toggle the theme setting Future> _toggle() async { - _isDarkMode = !_isDarkMode; - notifyListeners(); - return await _themeRepository.setDarkMode(_isDarkMode); + _isDarkMode = !_isDarkMode; + final result = await _themeRepository.setDarkMode(_isDarkMode); + notifyListeners(); + return result; } } ``` @@ -307,11 +308,11 @@ class MainAppViewModel extends ChangeNotifier { bool get isDarkMode => _isDarkMode; Future _load() async { - final result = await _themeRepository.isDarkMode(); - if (result is Ok) { - _isDarkMode = result.value; - } - notifyListeners(); + final result = await _themeRepository.isDarkMode(); + if (result is Ok) { + _isDarkMode = result.value; + } + notifyListeners(); } @override