flutter_state_beacon 0.2.0 copy "flutter_state_beacon: ^0.2.0" to clipboard
flutter_state_beacon: ^0.2.0 copied to clipboard

discontinuedreplaced by: state_beacon
outdated

A simple state management library using beacons/signals

Usage #

Flutter web demo: https://flutter-beacon.surge.sh/

Click here for the full code.

Create a beacon

import 'package:flutter/material.dart';
import 'package:flutter_beacon/flutter_beacon.dart';

final counter = Beacon.writable(0);

// The future will be recomputed whenever the counter changes
final derivedFutureCounter = Beacon.derivedFuture(() async {
  final count = counter.value;
  return await counterFuture(count);
});

Future<String> counterFuture(int count) async {
  await Future.delayed(Duration(seconds: count));
  return '$count second has passed.';
}

Watch it in a widget

class Counter extends StatelessWidget {
  const Counter({super.key});

  @override
  Widget build(BuildContext context) {
    return Text(
      counter.watch(context).toString(),
      style: Theme.of(context).textTheme.headlineMedium!,
    );
  }
}

class FutureCounter extends StatelessWidget {
  const FutureCounter({super.key});

  @override
  Widget build(BuildContext context) {
    return switch (derivedFutureCounter.watch(context)) {
      AsyncData<String>(value: final v) => Text(v),
      AsyncError(error: final e) => Text('$e'),
      AsyncLoading() => const CircularProgressIndicator(),
    };
  }
}
0
likes
0
points
33
downloads

Publisher

unverified uploader

Weekly Downloads

A simple state management library using beacons/signals

Repository (GitHub)
View/report issues

Topics

#state #signal #reactive #beacon

License

unknown (license)

Dependencies

flutter, state_beacon

More

Packages that depend on flutter_state_beacon