A simple package to implement mutations for riverpod
- Intended to be a stop-gap measure intended to be replaced by official riverpod mutations, once they are implemented.
- Intended to be hopefully api-compatible with riverpod mutations once they are implemented.
Features
Simply and intuitively handle the state of any async function
Getting started
dependencies:
riverpod_mutations: ^1.0.0
# or flutter_riverpod or hooks_riverpod
riverpod: ^2.2.0
# For generator
riverpod_annotation: ^1.2.1
# Generator
dev_dependencies:
riverpod_generator: ^1.2.0
build_runner: ^2.3.3
Usage
import 'package:riverpod/riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:riverpod_mutations/riverpod_mutations.dart';
part 'riverpod_mutations_example.g.dart';
@riverpod
MutationState<double, String> stringToDouble(StringToDoubleRef ref) {
// user passes in a String
// the string gets parsed.
// if successful, you get a MutationData
// if failed (invalid input) you get a MutationError
return MutationState.create(ref, (something) async {
await Future.delayed(Duration(seconds: 1));
print('Got $something');
return double.parse(something);
});
}
example(ref) {
final stringToDouble = ref.watch(stringToDoubleProvider);
stringToDouble('4.7');
}
Additional information
File issues on github.
This package is intended to be superseded by riverpod's own eventual implementation
Libraries
- riverpod_mutations
- A Library that provides a way to handle mutations with riverpod