advanced_value_notifier 0.0.4 copy "advanced_value_notifier: ^0.0.4" to clipboard
advanced_value_notifier: ^0.0.4 copied to clipboard

A value notifier which has super powers, like allows to see past value along with the new

Advanced value notifier package gives notifiers some extra capabilities.

Features #

  • Build specific UI part based on some condition using buildWhen
  • Listen to the specific value based on some condition listenWhen
  • Transform values in notifier
  • Optimally show data in UI by using previously available value and current value.

Usage #

AdvancedValueListenableListener #

    AdvancedValueListenableListener<int>(
      valueListenable: valueNotifier,
      listener: (value) {
        print("Advanced Value listener $value");
      },
      listenWhen: (int value) {
        if (value.isEven) {
          return true;
        }
        return false;
      },
      child: const Text("Advanced Value Listenable"),
    ),

AdvancedValueListenableBuilder #

    AdvancedValueListenableBuilder(
      valueListenable: valueNotifier,
      buildWhen: (int value) {
        if (value.isEven) {
          return true;
        }
        return false;
      },
      builder: (BuildContext context, int value, Widget? child) {
        return Text("$value");
      },
    ),

HistoryValueListenableListener #

    HistoryValueListenableListener<int>(
      historyValueListenable: counter,
      historyValueWidgetListener: (int? prevValue, int value) {
        ScaffoldMessenger.of(context).showMaterialBanner(MaterialBanner(
            content: Text("Simple Prev $prevValue Curr $value"),
            actions: [
              GestureDetector(
                child: const Text("Cancel"),
                onTap: () {
                  ScaffoldMessenger.of(context).clearMaterialBanners();
                },
              )
            ]));
      },
      child: const Text(
        'Simple Listener',
      ),
    )

HistoryValueListenableBuilder #

    HistoryValueListenableBuilder<int>(
      historyValueListenable: counter,
      historyValueBuilder: (BuildContext context, int? prevValue,
          int value, Widget? child) {
        return Text(
          "Prev $prevValue Curr $value",
        );
      },
    )

TransformerHistoryValueListenableBuilder #

    TransformerHistoryValueListenableBuilder<int, int>(
      transformerHistoryValueListenable: transformerHistoryValueNotifier,
      transformerHistoryValueBuilder: (BuildContext context,
          int? prevValue,
          int? prevTransformedValue,
          int value,
          int transformedValue,
          Widget? child) {
        return Text(
          "Prev $prevValue PrevTransformed $prevTransformedValue Curr $value Transformed $transformedValue",
        );
      },
    )

TransformerHistoryValueListenableListener #

    TransformerHistoryValueListenableListener<int, int>(
      transformerHistoryValueListenable: transformerHistoryValueNotifier,
      transformerHistoryValueWidgetListener: (
        int? prevValue,
        int? prevTransformedValue,
        int value,
        int transformedValue,
      ) {
        ScaffoldMessenger.of(context).clearSnackBars();
        ScaffoldMessenger.of(context).showSnackBar(SnackBar(
            content: Text(
          "Prev $prevValue PrevTransformed $prevTransformedValue "
          "Curr $value Transformed $transformedValue",
        )));
      },
      child: const Text(
        "Transformer Listener",
      ),
    )

Additional information #

Connect with Author over Linkedin

1
likes
150
points
33
downloads

Publisher

verified publisherabhishak.in

Weekly Downloads

A value notifier which has super powers, like allows to see past value along with the new

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on advanced_value_notifier