bloc_signals_jaspr 0.1.1 copy "bloc_signals_jaspr: ^0.1.1" to clipboard
bloc_signals_jaspr: ^0.1.1 copied to clipboard

Jaspr web component integration and state binding for BlocSignal state containers.

example/example.dart

import 'package:bloc_signals_jaspr/bloc_signals_jaspr.dart';
import 'package:jaspr/dom.dart';
import 'package:jaspr/jaspr.dart';

/// A CounterCubit for the Jaspr web example.
class CounterCubit extends CubitSignal<int> {
  CounterCubit() : super(initialState: 0);

  void increment() => emit(stateValue + 1);
  void decrement() => emit(stateValue - 1);
}

/// Root Jaspr web component providing CounterCubit.
class CounterApp extends StatelessComponent {
  const CounterApp({super.key});

  @override
  Component build(BuildContext context) {
    return BlocSignalProvider(
      create: (context) => CounterCubit(),
      child: const CounterView(),
    );
  }
}

/// View component consuming CounterCubit via BlocSignalBuilder.
class CounterView extends StatelessComponent {
  const CounterView({super.key});

  @override
  Component build(BuildContext context) {
    return div([
      BlocSignalBuilder<CounterCubit, int>(
        builder: (context, count) {
          return h1([Component.text('Count: $count')]);
        },
      ),
      button(
        onClick: () => context.read<CounterCubit>().increment(),
        [Component.text('Increment')],
      ),
    ]);
  }
}
0
likes
0
points
129
downloads

Publisher

verified publisherstonehenge.com

Weekly Downloads

Jaspr web component integration and state binding for BlocSignal state containers.

Repository (GitHub)
View/report issues

Topics

#bloc #signals #jaspr #web #state-management

License

unknown (license)

Dependencies

bloc_signals, jaspr, meta, signals_core

More

Packages that depend on bloc_signals_jaspr