didUpdateProvider method

  1. @override
void didUpdateProvider(
  1. ProviderBase<Object?> provider,
  2. Object? previousValue,
  3. Object? newValue,
  4. ProviderContainer container,
)

Called by providers when they emit a notification.

  • newValue will be null if the provider threw during initialization.
  • previousValue will be null if the previous build threw during initialization.

Implementation

@override
void didUpdateProvider(
  ProviderBase<Object?> provider,
  Object? previousValue,
  Object? newValue,
  ProviderContainer container,
) {
  assert(() {
    final context = CausalityZone.currentContext();
    TrinityEventBus.instance.emit(CausalEvent(
      parentId: context?.eventId,
      type: CausalEventType.stateChange,
      description:
          'Riverpod: ${provider.name ?? provider.runtimeType} updated',
      metadata: {
        'provider_name': provider.name ?? 'unnamed',
        'provider_type': provider.runtimeType.toString(),
        'previous_value_type': previousValue.runtimeType.toString(),
        'new_value_type': newValue.runtimeType.toString(),
        'action': 'update',
      },
    ));
    return true;
  }());
}