I hereby claim:
- I am chimon2000 on github.
- I am chimon (https://keybase.io/chimon) on keybase.
- I have a public key ASBC8JzAWtEGVqem8e2M5UfYTFCO2XaY42p0bce6fCtpdgo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
{"lastUpload":"2020-03-05T07:06:07.448Z","extensionVersion":"v3.4.3"} |
import 'package:flutter/material.dart'; | |
void main() => runApp( | |
Center( | |
child: Text( | |
'Hello Charlotte Devs!', | |
textDirection: TextDirection.ltr, | |
), | |
), | |
); |
import 'dart:async'; | |
import 'package:state_notifier/state_notifier.dart'; | |
class ReducerNotifier<State> extends StateNotifier<State> { | |
final Reducer<State> reducer; | |
ReducerNotifier(state, this.reducer) : super(state); | |
FutureOr<void> dispatch(Action action) async { |
import 'package:flutter_hooks/flutter_hooks.dart'; | |
import 'package:state_notifier/state_notifier.dart'; | |
T useStateNotifier<T>(StateNotifier<T> notifier) { | |
final state = useState<T>(null); | |
useEffect(() { | |
return notifier.addListener((s) => state.value = s); | |
}, [notifier]); |
class CounterPage extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
appBar: AppBar(title: const Text('Counter')), | |
body: BlocBuilder<CounterCubit, int>( | |
builder: (context, count) => Center(child: Text('$count')), | |
), | |
floatingActionButton: FloatingActionButton( | |
child: const Icon(Icons.add), |
enum CounterEvent { increment } | |
class CounterBloc extends Bloc<CounterEvent, int> { | |
CounterBloc() : super(0); | |
@override | |
Stream<int> mapEventToState(CounterEvent event) async* { | |
switch (event) { | |
case CounterEvent.increment: | |
yield state + 1; |
class CounterCubit extends Cubit<int> { | |
CounterCubit() : super(0); | |
void increment() => emit(state + 1); | |
} |
abstract class BaseCommand<T> { | |
BuildContext _context; | |
BaseCommand(BuildContext context) { | |
/// Get root context | |
/// If we're passed a context that is known to be root, skip the lookup, it will throw an error otherwise. | |
_context = (context == _lastKnownRoot) ? context : context.read(); | |
_lastKnownRoot = _context; | |
} |
import 'package:get_it/get_it.dart'; | |
abstract class BaseCommand<T> { | |
GetIt getIt = GetIt.instance; | |
D locate<D>() => getIt.get<D>(); | |
Future<T> run(); | |
} |