Line data Source code
1 : import 'package:flutter_triple/flutter_triple.dart'; 2 : 3 : import 'injector_x.dart'; 4 : 5 : class _InjectHandlerStore extends Inject<_InjectHandlerStore> { 6 4 : _InjectHandlerStore({List<Needle>? needles}) : super(needles: needles); 7 : late InjectorX injectorX; 8 2 : @override 9 : void injector(InjectorX handler) { 10 2 : injectorX = handler; 11 : } 12 : } 13 : 14 : abstract class InjetorXTripleStore<E extends Object, T extends Object> { 15 : NotifierStore<E, T> getStore(); 16 : } 17 : 18 : class _InjetorXTripleStore<E extends Object, T extends Object> 19 : extends NotifierStore<E, T> { 20 4 : _InjetorXTripleStore(T initialState) : super(initialState); 21 4 : set value(T v) => update(v); 22 4 : T get value => state; 23 : } 24 : 25 : abstract class InjectorViewModelTriple< 26 : R extends InjectorViewModelTriple<R, E, T>, 27 : E extends Object, 28 : T extends Object> { 29 : late _InjetorXTripleStore<E, T> store; 30 : late _InjectHandlerStore handler; 31 2 : InjectorViewModelTriple(T initalState, {List<Needle>? needles}) { 32 4 : store = _InjetorXTripleStore<E, T>(initalState); 33 4 : handler = _InjectHandlerStore(needles: needles); 34 6 : this.injector(handler.injectorX); 35 : } 36 : 37 1 : R injectMocks(List<NeedleMock> needleMocks) { 38 2 : handler.injectMocks(needleMocks); 39 3 : this.injector(handler.injectorX); 40 : return this as R; 41 : } 42 : 43 : void injector(InjectorX handler); 44 : }