Description
Incohérence dans les patterns de subscription entre providers.
Problème
Certains providers écoutent ircSessionProvider, d'autres connectionProvider:
messagesProvider:
ref.listen(ircSessionProvider, (prev, next) { ... });
channelsProvider:
ref.listen(connectionProvider, (prev, next) { ... });
Impact
- Confusion sur quel provider écouter
- Comportements potentiellement incohérents
- Difficulté de maintenance
Solution proposée
Standardiser sur ircSessionProvider comme point unique de synchronisation:
// Pattern standard pour tous les providers
ref.listen(ircSessionProvider, (prev, next) {
if (next.isReady && (prev == null || !prev.isReady)) {
_subscribeToLines();
}
if (!next.isReady && (prev?.isReady ?? false)) {
_handleDisconnect();
}
});
Fichiers à modifier
lib/features/channels/providers/channels_provider.dart
lib/features/chat/providers/messages_provider.dart
- Tout autre provider qui écoute
connectionProvider directement
Effort estimé
2 heures
Référence
docs/CODE_REVIEW.md - Section 2.5
Description
Incohérence dans les patterns de subscription entre providers.
Problème
Certains providers écoutent
ircSessionProvider, d'autresconnectionProvider:messagesProvider:
ref.listen(ircSessionProvider, (prev, next) { ... });channelsProvider:
ref.listen(connectionProvider, (prev, next) { ... });Impact
Solution proposée
Standardiser sur
ircSessionProvidercomme point unique de synchronisation:Fichiers à modifier
lib/features/channels/providers/channels_provider.dartlib/features/chat/providers/messages_provider.dartconnectionProviderdirectementEffort estimé
2 heures
Référence
docs/CODE_REVIEW.md - Section 2.5