Skip to content

Commit 3fe39e6

Browse files
committed
adding disposing of valueNotifiers
1 parent f3ec058 commit 3fe39e6

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

lib/src/router/routes_manager.dart

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,18 +115,32 @@ abstract class RoutesManager {
115115
}
116116
}
117117

118+
/// Automatically dispose all listeners when no longer needed
119+
void disposeAll() {
120+
for (final refreshable in refreshables) {
121+
refreshable.dispose();
122+
}
123+
}
124+
118125
List<ChangeNotifier> get refreshables =>
119126
[isLoading, authState, appFlowNotifier];
120127
}
121128

122129
/// Provider function to create routes manager provider
123130
Provider<T> routesManagerProvider<T extends RoutesManager>(
124131
T Function(Ref) create) {
125-
return Provider<T>((ref) => create(ref));
126-
}
132+
return Provider<T>((ref) {
133+
final manager = create(ref);
127134

135+
ref.onDispose(() {
136+
manager.disposeAll();
137+
});
128138

129-
/// Provider to handle loading of initial data
139+
return manager;
140+
});
141+
}
142+
143+
/// Provider to load initial data before navigation
130144
final initialLoadProvider = FutureProvider<bool>((ref) async {
131145
final routesManager = ref.watch(activeRoutesManagerProvider);
132146

@@ -170,4 +184,3 @@ final activeRoutesManagerProvider = Provider<RoutesManager>((ref) {
170184
final routesManagerProviders = Provider<List<RoutesManager>>((ref) {
171185
return [];
172186
});
173-

pubspec.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
name: pod_router
22
description: "A Flutter navigation package that combines go_router with Riverpod for clean, testable routing with authentication support."
33
version: 0.0.1+4
4-
homepage: https://github.com/1farz1/pod_router
5-
repository: https://github.com/1farz1/pod_router
4+
# homepage: https://github.com/1farz1/pod_router
5+
repository: https://github.com/1farz1/pod_router/tree/main
6+
issue_tracker: https://github.com/1farz1/pod_router/issues
7+
documentation: https://github.com/1farz1/pod_router/blob/main/README.md
68
# issue_tracker: https://github.com/yourusername/pod_router/issues
79
# documentation: https://github.com/yourusername/pod_router#readme
810
license: MIT

0 commit comments

Comments
 (0)