fasq_riverpod 0.3.0 copy "fasq_riverpod: ^0.3.0" to clipboard
fasq_riverpod: ^0.3.0 copied to clipboard

Riverpod adapter for FASQ (Flutter Async State Query) - async state management with Riverpod

fasq_riverpod #

Riverpod adapter for FASQ (Flutter Async State Query).

Seamlessly integrate FASQ's powerful caching and async management into your Riverpod application.

Current Version: 0.2.4+1

πŸ“š Documentation #

For full documentation and API reference, visit:
https://fasq.shafi.dev/adapters/riverpod

✨ Features #

  • πŸ”Œ queryProvider: Create type-safe query providers.
  • ♾️ infiniteQueryProvider: Paginated lists with Riverpod.
  • πŸ”„ mutationProvider: Handle server side-effects.
  • πŸ”€ combineQueries: Merge multiple queries into a single state.
  • ⚑ Riverpod Integration: Works with ref.watch, ConsumerWidget, and .family.

πŸ“¦ Installation #

dependencies:
  fasq_riverpod: ^0.2.4+1

πŸš€ Quick Start #

1. Define a Provider #

Create a queryProvider for your data source.

final usersProvider = queryProvider<List<User>>(
  'users',
  () => api.fetchUsers(),
  options: QueryOptions(
    staleTime: Duration(minutes: 5),
  ),
);

2. Watch in Widget #

Use ConsumerWidget or Consumer to listen to the provider.

class UsersScreen extends ConsumerWidget {
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final state = ref.watch(usersProvider);
    
    if (state.isLoading) return CircularProgressIndicator();
    if (state.hasError) return Text('Error: ${state.error}');
    
    return ListView.builder(
      itemCount: state.data!.length,
      itemBuilder: (context, index) => Text(state.data![index].name),
    );
  }
}

3. Mutations #

Use mutationProvider for actions.

final createUserProvider = mutationProvider<User, String>(
  (name) => api.createUser(name),
  options: MutationOptions(
    onSuccess: (user) {
      QueryClient().invalidateQuery('users');
    },
  ),
);

🧩 Advanced Features #

  • Parameterized Queries: queryProvider.family.
  • Prefetching: ref.prefetchQuery.
  • Dependent Queries: enabled: ref.watch(otherProvider).isSuccess.

See the main documentation for more.

πŸ“„ License #

MIT

1
likes
150
points
60
downloads

Publisher

verified publishershafi.dev

Weekly Downloads

Riverpod adapter for FASQ (Flutter Async State Query) - async state management with Riverpod

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

fasq, flutter, flutter_riverpod

More

Packages that depend on fasq_riverpod