RockitoBuilder<T extends OkitoController> function

Widget RockitoBuilder<T extends OkitoController>({
  1. required ControllerCallback<T> builder,
  2. T? inject,
  3. bool watchAllStorageKeys = false,
  4. List<String> watchStorageKeys = const [],
  5. List<OkitoController> otherControllers = const [],
  6. FilterCallback<T>? filter,
})

The RockitoBuilder and other Rockitos are the way to use builders with Okito.inject().

// Usage is very simple as usual.
RockitoBuilder<CounterController>(
    builder: (controller) => Text('${controller.count}'),
  );

// If you didn't inject controller yet;
RockitoBuilder<CounterController>(
    inject: CounterController(), // Required only one and first time
    builder: (controller) => Text('${controller.count}'),
  );

Implementation

// ignore: non_constant_identifier_names
Widget RockitoBuilder<T extends OkitoController>({
  required ControllerCallback<T> builder,
  T? inject,
  bool watchAllStorageKeys = false,
  List<String> watchStorageKeys = const [],
  List<OkitoController> otherControllers = const [],
  FilterCallback<T>? filter,
}) {
  if (inject != null) Okito.inject(inject);

  final controller = Okito.use<T>();
  return OkitoBuilder(
    controller: controller,
    watchAllStorageKeys: watchAllStorageKeys,
    watchStorageKeys: watchStorageKeys,
    otherControllers: otherControllers,
    filter: filter,
    builder: () => builder(controller),
  );
}