@@ -3,7 +3,6 @@ import 'dart:async';
33import  'package:basics/basics.dart' ;
44import  'package:flutter/material.dart' ;
55import  'package:flutter_riverpod/flutter_riverpod.dart' ;
6- import  'package:flutter_riverpod/legacy.dart' ;
76import  'package:flutter_svg/flutter_svg.dart' ;
87
98import  'catalogue/catalogue.dart' ;
@@ -31,7 +30,7 @@ class SidebarKeyNotifier extends Notifier<String> {
3130
3231  void  set (String  key) {
3332    if  (key.sidebarVmName !=  null ) {
34-       ref.read (vmVisitedProvider (key).notifier).state  =   true ;
33+       ref.read (vmVisitedProvider (key).notifier).setVisited () ;
3534    }
3635    state =  key;
3736  }
@@ -41,9 +40,55 @@ final sidebarKeyProvider = NotifierProvider<SidebarKeyNotifier, String>(
4140  SidebarKeyNotifier .new ,
4241);
4342
44- final  vmVisitedProvider =  StateProvider .family <bool , String >((_, __) =>  false );
45- final  sidebarExpandedProvider =  StateProvider ((_) =>  false );
46- final  sidebarPushContentProvider =  StateProvider ((_) =>  false );
43+ class  VmVisitedNotifier  extends  Notifier <bool > {
44+   VmVisitedNotifier (this .arg);
45+   final  String  arg;
46+ 
47+   @override 
48+   bool  build () {
49+     return  false ;
50+   }
51+ 
52+   void  setVisited () {
53+     state =  true ;
54+   }
55+ }
56+ 
57+ final  vmVisitedProvider = 
58+     NotifierProvider .family <VmVisitedNotifier , bool , String >(
59+   VmVisitedNotifier .new ,
60+ );
61+ 
62+ class  SidebarExpandedNotifier  extends  Notifier <bool > {
63+   @override 
64+   bool  build () {
65+     return  false ;
66+   }
67+ 
68+   void  setExpanded (bool  value) {
69+     state =  value;
70+   }
71+ }
72+ 
73+ final  sidebarExpandedProvider =  NotifierProvider <SidebarExpandedNotifier , bool >(
74+   SidebarExpandedNotifier .new ,
75+ );
76+ 
77+ class  SidebarPushContentNotifier  extends  Notifier <bool > {
78+   @override 
79+   bool  build () {
80+     return  false ;
81+   }
82+ 
83+   void  setPushContent (bool  value) {
84+     state =  value;
85+   }
86+ }
87+ 
88+ final  sidebarPushContentProvider = 
89+     NotifierProvider <SidebarPushContentNotifier , bool >(
90+   SidebarPushContentNotifier .new ,
91+ );
4792Timer ?  sidebarExpandTimer;
4893
4994class  SideBar  extends  ConsumerWidget  {
@@ -113,7 +158,7 @@ class SideBar extends ConsumerWidget {
113158        ),
114159        onPressed:  () =>  ref
115160            .read (sidebarPushContentProvider.notifier)
116-             .update ((state)  =>   ! state ),
161+             .setPushContent ( ! pushContent ),
117162      ),
118163    );
119164
@@ -169,13 +214,13 @@ class SideBar extends ConsumerWidget {
169214        if  (pushContent) return ;
170215        sidebarExpandTimer? .cancel ();
171216        sidebarExpandTimer =  Timer (const  Duration (milliseconds:  200 ), () {
172-           ref.read (sidebarExpandedProvider.notifier).state  =   true ;
217+           ref.read (sidebarExpandedProvider.notifier).setExpanded ( true ) ;
173218        });
174219      },
175220      onExit:  (_) {
176221        if  (pushContent) return ;
177222        sidebarExpandTimer? .cancel ();
178-         ref.read (sidebarExpandedProvider.notifier).state  =   false ;
223+         ref.read (sidebarExpandedProvider.notifier).setExpanded ( false ) ;
179224      },
180225      child:  AnimatedContainer (
181226        duration:  SideBar .animationDuration,
0 commit comments