debug_kit_riverpod 0.5.1 copy "debug_kit_riverpod: ^0.5.1" to clipboard
debug_kit_riverpod: ^0.5.1 copied to clipboard

Riverpod provider observer adapter for DebugKit. Records provider state events into the State tab with sanitization and optional log mirroring.

example/main.dart

import 'package:debug_kit/debug_kit.dart';
import 'package:debug_kit_riverpod/debug_kit_riverpod.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

final counterProvider = NotifierProvider<CounterNotifier, int>(
  CounterNotifier.new,
  name: 'counterProvider',
);

final profileProvider = FutureProvider<Map<String, Object?>>(
  (ref) async => {'id': 42, 'name': 'Ada'},
  name: 'profileProvider',
);

void main() {
  DebugKit.init(enabled: kDebugMode);

  runApp(
    ProviderScope(
      observers: [
        DebugKitRiverpodObserver(
          config: DebugKitRiverpodConfig(
            includeValuePreview: true,
            valueSerializer: (value) {
              if (value is AsyncValue) {
                return value.when(
                  data: (data) => {'state': 'data', 'value': data},
                  loading: () => {'state': 'loading'},
                  error: (error, _) => {
                    'state': 'error',
                    'error': error.toString(),
                  },
                );
              }
              return value;
            },
          ),
        ),
      ],
      child: const DebugKitOverlay(child: RiverpodExampleApp()),
    ),
  );
}

class CounterNotifier extends Notifier<int> {
  @override
  int build() => 0;

  void increment() => state++;
}

class RiverpodExampleApp extends ConsumerWidget {
  const RiverpodExampleApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final count = ref.watch(counterProvider);
    ref.watch(profileProvider);

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Riverpod example')),
        body: Center(
          child: FilledButton(
            onPressed: () => ref.read(counterProvider.notifier).increment(),
            child: Text('Count: $count'),
          ),
        ),
      ),
    );
  }
}
0
likes
160
points
59
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Riverpod provider observer adapter for DebugKit. Records provider state events into the State tab with sanitization and optional log mirroring.

Repository (GitHub)
View/report issues
Contributing

Topics

#logging #riverpod #state-management #devtools #debug-kit

License

MIT (license)

Dependencies

debug_kit, flutter, flutter_riverpod

More

Packages that depend on debug_kit_riverpod