Refactor theme management to use ListenableBuilder for dynamic theme updates

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2025-07-01 17:05:05 +02:00
parent b0c9fe7b98
commit 707a4c7956
2 changed files with 166 additions and 154 deletions
@@ -82,6 +82,16 @@ class ArcaneReactiveTheme extends ArcaneService {
final ValueNotifier<bool> _followingSystemThemeNotifier =
ValueNotifier<bool>(false);
/// Combined Listenable that merges all theme-related changes.
/// Use this for widgets that need to rebuild on any theme change.
Listenable get themeChanges => I._combinedThemeListenable;
late final Listenable _combinedThemeListenable = Listenable.merge([
_effectiveThemeNotifier,
_followingSystemThemeNotifier,
_themeModeNotifier,
]);
// ************************************************************************ //
// * MARK: Light/Dark theme
// ************************************************************************ //