disposeComponent method

void disposeComponent(
  1. StarkComponent<StatefulWidget> component
)

Implementation

void disposeComponent(StarkComponent component) {
  logger.info('Disposing component ${component.runtimeType}');
  _factories.forEach((key, bind) {
    final List<StarkComponent> toDispose = [];
    bind.instances.forEach((instanceComponent, Object? instance) {
      if (instanceComponent == component) {
        if (instance is Disposable) {
          instance.dispose();
        }
        toDispose.add(instanceComponent);
      }
    });
    bind.instances.removeWhere(
      (componentKey, Object? instance) => toDispose.contains(componentKey),
    );
  });
}